A Ruby Step Definition holds a Regexp and a Proc, and is created by calling Given, When or Then in the step_definitions ruby files. See also RbDsl.
Example:
Given /I have (\d+) cucumbers in my belly/ do # some code here end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 26 26: def initialize(rb_language, regexp, proc) 27: raise MissingProc if proc.nil? 28: if String === regexp 29: p = Regexp.escape(regexp) 30: p = p.gsub(/\\\$\w+/, '(.*)') # Replace $var with (.*) 31: regexp = Regexp.new("^#{p}$") 32: end 33: @rb_language, @regexp, @proc = rb_language, regexp, proc 34: @rb_language.available_step_definition(regexp_source, file_colon_line) 35: end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 41 41: def ==(step_definition) 42: regexp_source == step_definition.regexp_source 43: end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 45 45: def arguments_from(step_name) 46: args = RegexpArgumentMatcher.arguments_from(@regexp, step_name) 47: @rb_language.invoked_step_definition(regexp_source, file_colon_line) if args 48: args 49: end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 61 61: def backtrace_line 62: @proc.backtrace_line(regexp_source) 63: end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 69 69: def file 70: @file ||= file_colon_line.split(':')[0] 71: end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 65 65: def file_colon_line 66: @proc.file_colon_line 67: end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 51 51: def invoke(args) 52: begin 53: args = @rb_language.execute_transforms(args) 54: @rb_language.current_world.cucumber_instance_exec(true, regexp_source, *args, &@proc) 55: rescue Cucumber::ArityMismatchError => e 56: e.backtrace.unshift(self.backtrace_line) 57: raise e 58: end 59: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.