Module: Kalculator::Transform
- Defined in:
- lib/kalculator/transform.rb
Class Method Summary collapse
Class Method Details
.is_terminal?(node) ⇒ Boolean
10 11 12 13 |
# File 'lib/kalculator/transform.rb', line 10 def self.is_terminal?(node) return false if node.is_a?(Array) && node.first.is_a?(Symbol) true end |
.run(node, &block) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/kalculator/transform.rb', line 3 def self.run(node, &block) new_node = yield node return new_node if is_terminal?(new_node) args = new_node[1..-1].map{ |arg| run(arg, &block) } args.unshift(new_node.first) end |