Sha256: 3ddedee3589921eacafd67e5ad2d31176a6b2bb1e8a5ca7b1e9228bfe99ee80d
Contents?: true
Size: 744 Bytes
Versions: 2
Compression:
Stored size: 744 Bytes
Contents
require "metamorpher/terms/literal" module Metamorpher module Builders module AST class LiteralBuilder def literal!(name, *children) Terms::Literal.new(name: name, children: children.map(&method(:termify))) end def shorthand?(method, *_arguments, &_block) !method[/\p{Upper}/] end def method_missing(method, *arguments, &block) if shorthand?(method, *arguments, &block) literal!(method, *arguments) else super.method_missing(method, *arguments, &block) end end private def termify(item) item.is_a?(Terms::Term) ? item.dup : literal!(item) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
metamorpher-0.2.6 | lib/metamorpher/builders/ast/literal_builder.rb |
metamorpher-0.2.5 | lib/metamorpher/builders/ast/literal_builder.rb |