class Metamorpher::Builders::AST::LiteralBuilder
Public Instance Methods
literal!(name, *children)
click to toggle source
# File lib/metamorpher/builders/ast/literal_builder.rb, line 7 def literal!(name, *children) Terms::Literal.new(name: name, children: children.map(&method(:termify))) end
method_missing(method, *arguments, &block)
click to toggle source
Calls superclass method
# File lib/metamorpher/builders/ast/literal_builder.rb, line 15 def method_missing(method, *arguments, &block) if shorthand?(method, *arguments, &block) literal!(method, *arguments) else super.method_missing(method, *arguments, &block) end end
shorthand?(method, *_arguments, &_block)
click to toggle source
# File lib/metamorpher/builders/ast/literal_builder.rb, line 11 def shorthand?(method, *_arguments, &_block) !method[/\p{Upper}/] end
Private Instance Methods
termify(item)
click to toggle source
# File lib/metamorpher/builders/ast/literal_builder.rb, line 25 def termify(item) item.is_a?(Terms::Term) ? item.dup : literal!(item) end