The Ruby implementation of the programming language API.
# File lib/cucumber/rb_support/rb_language.rb, line 89 def begin_rb_scenario(scenario) create_world extend_world connect_world(scenario) end
# File lib/cucumber/rb_support/rb_language.rb, line 109 def build_rb_world_factory(world_modules, proc) if(proc) raise MultipleWorld.new(@world_proc, proc) if @world_proc @world_proc = proc end @world_modules ||= [] @world_modules += world_modules end
# File lib/cucumber/rb_support/rb_language.rb, line 118 def load_code_file(code_file) require File.expand_path(code_file) # This will cause self.add_step_definition, self.add_hook, and self.add_transform to be called from RbDsl end
# File lib/cucumber/rb_support/rb_language.rb, line 95 def register_rb_hook(phase, tag_expressions, proc) add_hook(phase, RbHook.new(self, tag_expressions, proc)) end
# File lib/cucumber/rb_support/rb_language.rb, line 103 def register_rb_step_definition(regexp, proc) step_definition = RbStepDefinition.new(self, regexp, proc) @step_definitions << step_definition step_definition end
# File lib/cucumber/rb_support/rb_language.rb, line 99 def register_rb_transform(regexp, proc) add_transform(RbTransform.new(self, regexp, proc)) end
# File lib/cucumber/rb_support/rb_language.rb, line 70 def snippet_text(step_keyword, step_name, multiline_arg_class) escaped = Regexp.escape(step_name).gsub('\ ', ' ').gsub('/', '\/') escaped = escaped.gsub(PARAM_PATTERN, ESCAPED_PARAM_PATTERN) n = 0 block_args = escaped.scan(ESCAPED_PARAM_PATTERN).map do |a| n += 1 "arg#{n}" end block_args << multiline_arg_class.default_arg_name unless multiline_arg_class.nil? block_arg_string = block_args.empty? ? "" : " |#{block_args.join(", ")}|" multiline_class_comment = "" if(multiline_arg_class == Ast::Table) multiline_class_comment = "# #{multiline_arg_class.default_arg_name} is a #{multiline_arg_class.to_s}\n " end "#{Gherkin::I18n.code_keyword_for(step_keyword)} /^#{escaped}$/ do#{block_arg_string}\n #{multiline_class_comment}pending # express the regexp above with the code you wish you had\nend" end
Gets called for each file under features (or whatever is overridden with –require).
# File lib/cucumber/rb_support/rb_language.rb, line 48 def step_definitions_for(rb_file) begin require rb_file # This will cause self.add_step_definition and self.add_hook to be called from RbDsl step_definitions rescue LoadError => e e.message << "\nFailed to load #{code_file}" raise e ensure @step_definitions = nil end end
# File lib/cucumber/rb_support/rb_language.rb, line 60 def step_matches(name_to_match, name_to_format) @step_definitions.map do |step_definition| if(arguments = step_definition.arguments_from(name_to_match)) StepMatch.new(step_definition, name_to_match, name_to_format, arguments) else nil end end.compact end
Generated with the Darkfish Rdoc Generator 2.