class TPPlus::Nodes::WaitUntilNode
Public Class Methods
new(expression, timeout_options)
click to toggle source
# File lib/tp_plus/nodes/wait_until_node.rb, line 4 def initialize(expression, timeout_options) @expression = expression @timeout_options = timeout_options || {} end
Public Instance Methods
eval(context)
click to toggle source
# File lib/tp_plus/nodes/wait_until_node.rb, line 56 def eval(context) "#{wait_timeout(context)}WAIT #{string_value(context)}#{timeout(context)}" end
string_value(context)
click to toggle source
# File lib/tp_plus/nodes/wait_until_node.rb, line 52 def string_value(context) "(#{@expression.eval(context)})" end
timeout(context)
click to toggle source
# File lib/tp_plus/nodes/wait_until_node.rb, line 9 def timeout(context) return "" if @timeout_options[:label].nil? " TIMEOUT,LBL[#{context.labels[@timeout_options[:label].to_sym]}]" end
val(context)
click to toggle source
# File lib/tp_plus/nodes/wait_until_node.rb, line 15 def val(context) value_node = @timeout_options[:timeout][0] units = @timeout_options[:timeout][1] if value_node.is_a?(VarNode) value = value_node.eval(context) case units when "s" value = "#{value}*100" when "ms" value = "#{value}*.1" else raise "invalid units" end else value = value_node.eval(context).to_i case units when "s" value = (value * 100).to_i when "ms" value = (value * 0.1).to_i else raise "invalid units" end end value end
wait_timeout(context)
click to toggle source
# File lib/tp_plus/nodes/wait_until_node.rb, line 46 def wait_timeout(context) return "" if @timeout_options[:timeout].nil? "$WAITTMOUT=(#{val(context)}) ;\n" end