class Cucumber::RbSupport::RbStepDefinition


end
# some code here
Given /I have (d+) cucumbers in my belly/ do
Example:
in the step_definitions ruby files. See also RbDsl.
by calling Given, When or Then
A Ruby Step Definition holds a Regexp and a Proc, and is created

def ==(step_definition)

def ==(step_definition)
  regexp_source == step_definition.regexp_source
end

def arguments_from(step_name)

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

def backtrace_line

def backtrace_line
  @proc.backtrace_line(regexp_source)
end

def file

def file
  @file ||= file_colon_line.split(':')[0]
end

def file_colon_line

def file_colon_line
  @proc.file_colon_line
end

def initialize(rb_language, regexp, proc)

def initialize(rb_language, regexp, proc)
  raise MissingProc if proc.nil?
  if String === regexp
    p = Regexp.escape(regexp)
    p = p.gsub(/\\\$\w+/, '(.*)') # Replace $var with (.*)
    regexp = Regexp.new("^#{p}$") 
  end
  @rb_language, @regexp, @proc = rb_language, regexp, proc
  @rb_language.available_step_definition(regexp_source, file_colon_line)
end

def invoke(args)

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

def regexp_source

def regexp_source
  @regexp.inspect
end