ReadTimeout
, a subclass of Timeout::Error
, is raised if a chunk of the response cannot be read within the read_timeout.
WriteTimeout
, a subclass of Timeout::Error
, is raised if a chunk of the response cannot be written within the write_timeout. Not raised on Windows.
A compiler is a visitor that returns the value of each node as it visits. This is as opposed to a visitor which will only walk the tree. This can be useful when you are trying to compile a tree into a different format.
For example, to build a representation of the tree as s-expressions, you could write:
class SExpressions < Prism::Compiler def visit_arguments_node(node) = [:arguments, super] def visit_call_node(node) = [:call, super] def visit_integer_node(node) = [:integer] def visit_program_node(node) = [:program, super] end Prism.parse("1 + 2").value.accept(SExpressions.new) # => [:program, [[[:call, [[:integer], [:arguments, [[:integer]]]]]]]]
Represents the use of the ‘&&=` operator for assignment to a class variable.
@@target &&= value ^^^^^^^^^^^^^^^^^^
Represents the use of the ‘||=` operator for assignment to a class variable.
@@target ||= value ^^^^^^^^^^^^^^^^^^
Represents the use of the ‘&&=` operator for assignment to a constant.
Target &&= value ^^^^^^^^^^^^^^^^
Represents the use of the ‘||=` operator for assignment to a constant.
Target ||= value ^^^^^^^^^^^^^^^^
Represents the use of the ‘&&=` operator for assignment to a global variable.
$target &&= value ^^^^^^^^^^^^^^^^^
Represents the use of the ‘||=` operator for assignment to a global variable.
$target ||= value ^^^^^^^^^^^^^^^^^
Represents the use of the ‘&&=` operator for assignment to an instance variable.
@target &&= value ^^^^^^^^^^^^^^^^^
Represents the use of the ‘||=` operator for assignment to an instance variable.
@target ||= value ^^^^^^^^^^^^^^^^^
Represents the use of the ‘&&=` operator for assignment to a local variable.
target &&= value ^^^^^^^^^^^^^^^^
Represents the use of the ‘||=` operator for assignment to a local variable.
target ||= value ^^^^^^^^^^^^^^^^
Here we are going to patch StringQuery
to put in the class-level methods so that it can maintain a consistent interface
Query methods that allow categorizing strings based on their context for where they could be valid in a Ruby syntax tree.
Represents the use of the ‘alias` keyword to alias a global variable.
alias $foo $bar ^^^^^^^^^^^^^^^
Represents a set of arguments to a method or a keyword.
return foo, bar, baz ^^^^^^^^^^^^^
Represents an array literal. This can be a regular array using brackets or a special array using % like %w or %i.
[1, 2, 3] ^^^^^^^^^