Class: Code::Node::Ternary
- Inherits:
-
Code::Node
- Object
- Code::Node
- Code::Node::Ternary
- Defined in:
- lib/code/node/ternary.rb
Instance Method Summary collapse
- #evaluate(**args) ⇒ Object
-
#initialize(parsed) ⇒ Ternary
constructor
A new instance of Ternary.
Methods inherited from Code::Node
Constructor Details
#initialize(parsed) ⇒ Ternary
Returns a new instance of Ternary.
6 7 8 9 10 11 12 13 14 |
# File 'lib/code/node/ternary.rb', line 6 def initialize(parsed) return if parsed.blank? @left = Node::Statement.new(parsed.delete(:left).presence) @middle = Node::Statement.new(parsed.delete(:middle).presence) return unless parsed.key?(:right) @right = Node::Statement.new(parsed.delete(:right).presence) end |
Instance Method Details
#evaluate(**args) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/code/node/ternary.rb', line 16 def evaluate(**args) if (@left&.evaluate(**args) || Object::Nothing.new).truthy? @middle&.evaluate(**args) || Object::Nothing.new elsif @right @right.evaluate(**args) else ::Code::Object::Nothing.new end end |