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 27 def new(rb_language, pattern, proc_or_sym, options) raise MissingProc if proc_or_sym.nil? super rb_language, parse_pattern(pattern), create_proc(proc_or_sym, options) end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 84 def ==(step_definition) regexp_source == step_definition.regexp_source end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 88 def arguments_from(step_name) args = RegexpArgumentMatcher.arguments_from(@regexp, step_name) @rb_language.invoked_step_definition(regexp_source, file_colon_line) if args args end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 104 def backtrace_line @proc.backtrace_line(regexp_source) end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 117 def file @file ||= file_colon_line.split(':')[0] end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 108 def file_colon_line case @proc when Proc @proc.file_colon_line when Symbol ":#{@proc}" end end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 94 def invoke(args) begin args = @rb_language.execute_transforms(args) @rb_language.current_world.cucumber_instance_exec(true, regexp_source, *args, &@proc) rescue Cucumber::ArityMismatchError => e e.backtrace.unshift(self.backtrace_line) raise e end end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 72 def regexp_source @regexp.inspect end
# File lib/cucumber/rb_support/rb_step_definition.rb, line 76 def to_hash flags = '' flags += 'm' if (@regexp.options & Regexp::MULTILINE) != 0 flags += 'i' if (@regexp.options & Regexp::IGNORECASE) != 0 flags += 'x' if (@regexp.options & Regexp::EXTENDED) != 0 {'source' => @regexp.source, 'flags' => flags} end
Generated with the Darkfish Rdoc Generator 2.