Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
module · Ruby 3.3
Prism::DSL
149 instance methods
The DSL module provides a set of methods that can be used to create prism nodes in a more concise manner. For example, instead of writing:
Example
source = Prism::Source.new("[1]") Prism::ArrayNode.new( [ Prism::IntegerNode.new( Prism::IntegerBaseFlags::DECIMAL, Prism::Location.new(source, 1, 1), ) ], Prism::Location.new(source, 0, 1), Prism::Location.new(source, 2, 1) )
you could instead write:
source = Prism::Source.new("[1]")
ArrayNode(
IntegerNode(Prism::IntegerBaseFlags::DECIMAL, Location(source, 1, 1))),
Location(source, 0, 1),
Location(source, 2, 1)
)
This is mostly helpful in the context of writing tests, but can also be used to generate trees programmatically.
Instance methods 149
#AliasGlobalVariableNode
#AliasMethodNode
#AlternationPatternNode
#AndNode
#ArgumentsNode
#ArrayNode
#ArrayPatternNode
#AssocNode
#AssocSplatNode
#BackReferenceReadNode
#BeginNode
#BlockArgumentNode
#BlockLocalVariableNode
#BlockNode
#BlockParameterNode
#BlockParametersNode
#BreakNode
#CallAndWriteNode
#CallNode
#CallOperatorWriteNode
#CallOrWriteNode
#CallTargetNode
#CapturePatternNode
#CaseMatchNode
#CaseNode
#ClassNode
#ClassVariableAndWriteNode
#ClassVariableOperatorWriteNode
#ClassVariableOrWriteNode
#ClassVariableReadNode
#ClassVariableTargetNode
#ClassVariableWriteNode
#ConstantAndWriteNode
#ConstantOperatorWriteNode
#ConstantOrWriteNode
#ConstantPathAndWriteNode
#ConstantPathNode
#ConstantPathOperatorWriteNode
#ConstantPathOrWriteNode
#ConstantPathTargetNode
#ConstantPathWriteNode
#ConstantReadNode
#ConstantTargetNode
#ConstantWriteNode
#DefinedNode
#DefNode
#ElseNode
#EmbeddedStatementsNode
#EmbeddedVariableNode
#EnsureNode
#FalseNode
#FindPatternNode
#FlipFlopNode
#FloatNode
#ForNode
#ForwardingArgumentsNode
#ForwardingParameterNode
#ForwardingSuperNode
#GlobalVariableAndWriteNode
#GlobalVariableOperatorWriteNode
#GlobalVariableOrWriteNode
#GlobalVariableReadNode
#GlobalVariableTargetNode
#GlobalVariableWriteNode
#HashNode
#HashPatternNode
#IfNode
#ImaginaryNode
#ImplicitNode
#ImplicitRestNode
#IndexAndWriteNode
#IndexOperatorWriteNode
#IndexOrWriteNode
#IndexTargetNode
#InNode
#InstanceVariableAndWriteNode
#InstanceVariableOperatorWriteNode
#InstanceVariableOrWriteNode
#InstanceVariableReadNode
#InstanceVariableTargetNode
#InstanceVariableWriteNode
#IntegerNode
#InterpolatedMatchLastLineNode
#InterpolatedRegularExpressionNode
#InterpolatedStringNode
#InterpolatedSymbolNode
#InterpolatedXStringNode
#KeywordHashNode
#KeywordRestParameterNode
#LambdaNode
#LocalVariableAndWriteNode
#LocalVariableOperatorWriteNode
#LocalVariableOrWriteNode
#LocalVariableReadNode
#LocalVariableTargetNode
#LocalVariableWriteNode
#Location
#MatchLastLineNode
#MatchPredicateNode
#MatchRequiredNode
#MatchWriteNode
#MissingNode
#ModuleNode
#MultiTargetNode
#MultiWriteNode
#NextNode
#NilNode
#NoKeywordsParameterNode
#NumberedParametersNode
#NumberedReferenceReadNode
#OptionalKeywordParameterNode
#OptionalParameterNode
#OrNode
#ParametersNode
#ParenthesesNode
#PinnedExpressionNode
#PinnedVariableNode
#PostExecutionNode
#PreExecutionNode
#ProgramNode
#RangeNode
#RationalNode
#RedoNode
#RegularExpressionNode
#RequiredKeywordParameterNode
#RequiredParameterNode
#RescueModifierNode
#RescueNode
#RestParameterNode
#RetryNode
#ReturnNode
#SelfNode
#SingletonClassNode
#SourceEncodingNode
#SourceFileNode
#SourceLineNode
#SplatNode
#StatementsNode
#StringNode
#SuperNode
#SymbolNode
#TrueNode
#UndefNode
#UnlessNode
#UntilNode
#WhenNode
#WhileNode
#XStringNode
#YieldNode