Sha256: 968900681cc070acc8136de8f750b2a723ab1024af2de50f0071f7b6c4f2d3f5

Contents?: true

Size: 1.2 KB

Versions: 10

Compression:

Stored size: 1.2 KB

Contents

module Cucumber
  module TagExpressions
    # Literal expression node
    class Literal
      def initialize(value)
        @value = value.gsub(/\\\(/, '(').gsub(/\\\)/, ')')
      end

      def evaluate(variables)
        variables.include?(@value)
      end

      def to_s
        @value.gsub(/\(/, '\\(').gsub(/\)/, '\\)')
      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
  end
end

Version data entries

10 entries across 10 versions & 3 rubygems

Version Path
cucumber-tag-expressions-4.0.2 lib/cucumber/tag_expressions/expressions.rb
cucumber-tag-expressions-4.0.0 lib/cucumber/tag_expressions/expressions.rb
cucumber-tag-expressions-3.0.1 lib/cucumber/tag_expressions/expressions.rb
cucumber-tag-expressions-2.0.4 lib/cucumber/tag_expressions/expressions.rb
cucumber-tag-expressions-2.0.3 lib/cucumber/tag_expressions/expressions.rb
honeybadger-4.5.3 vendor/bundle/ruby/2.6.0/gems/cucumber-tag_expressions-1.1.1/lib/cucumber/tag_expressions/expressions.rb
cucumber-tag_expressions-2.0.2 lib/cucumber/tag_expressions/expressions.rb
cucumber-tag_expressions-2.0.1 lib/cucumber/tag_expressions/expressions.rb
cucumber-tag_expressions-1.1.1 lib/cucumber/tag_expressions/expressions.rb
cucumber-tag_expressions-1.1.0 lib/cucumber/tag_expressions/expressions.rb