lib/cucumber/rb_support/rb_language.rb in cucumber-0.3.103 vs lib/cucumber/rb_support/rb_language.rb in cucumber-0.3.104
- old
+ new
@@ -32,10 +32,11 @@
include LanguageSupport::LanguageMethods
attr_reader :current_world
def initialize(step_mother)
@step_mother = step_mother
+ @step_definitions = []
RbDsl.rb_language = self
end
def alias_adverbs(adverbs)
adverbs.each do |adverb|
@@ -54,14 +55,24 @@
ensure
@step_definitions = nil
end
end
+ def step_matches(step_name, formatted_step_name)
+ @step_definitions.map do |step_definition|
+ step_definition.step_match(step_name, formatted_step_name)
+ end.compact
+ end
+
def arguments_from(regexp, step_name)
@regexp_argument_matcher.arguments_from(regexp, step_name)
end
+ def unmatched_step_definitions
+ @step_definitions.select{|step_definition| !step_definition.matched?}
+ end
+
def snippet_text(step_keyword, step_name, multiline_arg_class = nil)
escaped = Regexp.escape(step_name).gsub('\ ', ' ').gsub('/', '\/')
escaped = escaped.gsub(PARAM_PATTERN, ESCAPED_PARAM_PATTERN)
n = 0
@@ -92,11 +103,13 @@
def register_rb_transform(regexp, proc)
add_transform(RbTransform.new(self, regexp, proc))
end
def register_rb_step_definition(regexp, proc)
- add_step_definition(RbStepDefinition.new(self, regexp, proc))
+ step_definition = RbStepDefinition.new(self, regexp, proc)
+ @step_definitions << step_definition
+ step_definition
end
def build_rb_world_factory(world_modules, proc)
if(proc)
raise MultipleWorld.new(@world_proc, proc) if @world_proc
@@ -104,14 +117,14 @@
end
@world_modules ||= []
@world_modules += world_modules
end
- protected
-
def load_code_file(code_file)
require code_file # This will cause self.add_step_definition, self.add_hook, and self.add_transform to be called from RbDsl
end
+
+ protected
def begin_scenario
begin_rb_scenario
end