Sha256: a6fbdb21542bb491d0d13723f76960c2eb0116d3e97bb5ba40160f3320b2fb41
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
module Cucumber module TagExpressions # Literal expression node class Literal def initialize(value) @value = value end def evaluate(variables) variables.include?(@value) end def to_s @value .gsub(/\\/, "\\\\\\\\") .gsub(/\(/, "\\(") .gsub(/\)/, "\\)") .gsub(/\s/, "\\ ") end end # Not expression node class Not def initialize(expression) @expression = expression end def evaluate(variables) !@expression.evaluate(variables) end def to_s "not ( #{@expression} )" end end # Or expression node class Or def initialize(left, right) @left = left @right = right end def evaluate(variables) @left.evaluate(variables) || @right.evaluate(variables) end def to_s "( #{@left} or #{@right} )" end end # And expression node class And def initialize(left, right) @left = left @right = right end def evaluate(variables) @left.evaluate(variables) && @right.evaluate(variables) end def to_s "( #{@left} and #{@right} )" end end class True def evaluate(variables) true end def to_s "true" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cucumber-tag-expressions-5.0.1 | lib/cucumber/tag_expressions/expressions.rb |
cucumber-tag-expressions-5.0.0 | lib/cucumber/tag_expressions/expressions.rb |