class SFRP::Low::DSL::IfChainProxy
Public Class Methods
new()
click to toggle source
# File lib/sfrp/low/dsl.rb, line 97 def initialize @finised = false @cond_exps = [] @exps = [] end
Public Instance Methods
append_case(cond_exp, exp)
click to toggle source
# File lib/sfrp/low/dsl.rb, line 109 def append_case(cond_exp, exp) return if @finised @cond_exps << cond_exp @exps << exp end
finish(exp)
click to toggle source
# File lib/sfrp/low/dsl.rb, line 103 def finish(exp) return if @finished @exps << exp @finised = true end
to_exp()
click to toggle source
# File lib/sfrp/low/dsl.rb, line 115 def to_exp raise if @exps.empty? @cond_exps.pop unless @finised @finised = true xs = @cond_exps.zip(@exps).map { |ce, e| "(#{ce}) ? (#{e}) :" } last = "(#{@exps[-1]})" (xs + [last]).join(' ') end