class Smartdown::Engine::ConditionalResolver
Public Instance Methods
call(node, state)
click to toggle source
# File lib/smartdown/engine/conditional_resolver.rb, line 4 def call(node, state) node.dup.tap do |new_node| new_node.elements = resolve_conditionals(node.elements, state) end end
Private Instance Methods
evaluate(conditional, state)
click to toggle source
# File lib/smartdown/engine/conditional_resolver.rb, line 11 def evaluate(conditional, state) if conditional.predicate.evaluate(state) selected_branch = conditional.true_case else selected_branch = conditional.false_case end resolve_conditionals selected_branch, state end
resolve_conditionals(elements, state)
click to toggle source
# File lib/smartdown/engine/conditional_resolver.rb, line 20 def resolve_conditionals(elements, state) return unless elements elements.map do |element| if element.is_a? Smartdown::Model::Element::Conditional evaluate(element, state) else element end end.flatten.compact end