class Cucumber::CucumberExpressions::CucumberExpression

Constants

ALTERNATIVE_NON_WHITESPACE_TEXT_REGEXP
DOUBLE_ESCAPE
ESCAPE_REGEXP

Does not include (){} characters because they have special meaning

OPTIONAL_REGEXP
PARAMETER_REGEXP
PARAMETER_TYPES_CANNOT_BE_ALTERNATIVE
PARAMETER_TYPES_CANNOT_BE_OPTIONAL

Attributes

source[R]

Public Class Methods

new(expression, parameter_type_registry) click to toggle source
# File lib/cucumber/cucumber_expressions/cucumber_expression.rb, line 19
def initialize(expression, parameter_type_registry)
  @source = expression
  @parameter_types = []
  
  expression = process_escapes(expression)
  expression = process_optional(expression)
  expression = process_alternation(expression)
  expression = process_parameters(expression, parameter_type_registry)
  expression = "^#{expression}$"

  @tree_regexp = TreeRegexp.new(expression)
end

Public Instance Methods

match(text) click to toggle source
# File lib/cucumber/cucumber_expressions/cucumber_expression.rb, line 32
def match(text)
  Argument.build(@tree_regexp, text, @parameter_types)
end
regexp() click to toggle source
# File lib/cucumber/cucumber_expressions/cucumber_expression.rb, line 36
def regexp
  @tree_regexp.regexp
end
to_s() click to toggle source
# File lib/cucumber/cucumber_expressions/cucumber_expression.rb, line 40
def to_s
  @source.inspect
end