Method: StyleScript::RangeNode#compile_node

Defined in:
lib/style_script/nodes.rb

#compile_node(o) ⇒ Object



464
465
466
467
468
469
470
471
472
473
# File 'lib/style_script/nodes.rb', line 464

def compile_node(o)
  return compile_array(o) unless o[:index]
  idx, step = o.delete(:index), o.delete(:step)
  vars      = "#{idx}=#{@from_var}"
  step      = step ? step.compile(o) : '1'
  equals    = @exclusive ? '' : '='
  compare   = "(#{@from_var} <= #{@to_var} ? #{idx} <#{equals} #{@to_var} : #{idx} >#{equals} #{@to_var})"
  incr      = "(#{@from_var} <= #{@to_var} ? #{idx} += #{step} : #{idx} -= #{step})"
  write("#{vars}; #{compare}; #{incr}")
end