moduleCucumbermoduleAstclassStepInvocationattr_writer:step_collection,:backgroundattr_reader:name,:matched_cells,:status,:reported_exceptionattr_accessor:exceptiondefinitialize(step,name,multiline_arg,matched_cells)@step,@name,@multiline_arg,@matched_cells=step,name,multiline_arg,matched_cellsstatus!(:skipped)enddefbackground?@backgroundenddefskip_invoke!@skip_invoke=trueenddefaccept(visitor)invoke(visitor.step_mother,visitor.options)visit_step_result(visitor)enddefvisit_step_result(visitor)visitor.visit_step_result(keyword,@step_match,@multiline_arg,@status,@reported_exception,source_indent,@background)enddefinvoke(step_mother,options)find_step_match!(step_mother)unless@skip_invoke||options[:dry_run]||@exception||@step_collection.exception@skip_invoke=truebeginstep_mother.current_world.__cucumber_current_step=selfifstep_mother.current_world# Nil in Pure Java@step_match.invoke(step_mother.current_world,@multiline_arg)step_mother.after_stepstatus!(:passed)rescuePending=>efailed(options,e,false)status!(:pending)rescueUndefined=>efailed(options,e,false)status!(:undefined)rescueException=>efailed(options,e,false)status!(:failed)endendenddeffind_step_match!(step_mother)returnif@step_matchbegin@step_match=step_mother.step_match(@name)rescueUndefined=>efailed(step_mother.options,e,true)status!(:undefined)@step_match=NoStepMatch.new(@step,@name)rescueAmbiguous=>efailed(step_mother.options,e,false)status!(:failed)@step_match=NoStepMatch.new(@step,@name)endstep_mother.step_visited(self)enddeffailed(options,e,clear_backtrace)e.set_backtrace([])ifclear_backtracee.backtrace<<@step.backtrace_lineunless@step.backtrace_line.nil?@exception=eif(options[:strict]||!(Undefined===e)||e.nested?)@reported_exception=eelse@reported_exception=nilendenddefstatus!(status)@status=status@matched_cells.eachdo|cell|cell.status=statusendenddefprevious@step_collection.previous_step(self)enddefactual_keywordif[Cucumber.keyword_hash['and'],Cucumber.keyword_hash['but']].index(@step.keyword)&&previousprevious.actual_keywordelsekeywordendenddefsource_indent@step.feature_element.source_indent(text_length)enddeftext_length@step.text_length(@name)enddefkeyword@step.keywordenddefmultiline_arg@step.multiline_argenddeffile_colon_line@step.file_colon_lineenddefdom_id@step.dom_idenddefbacktrace_line@step.backtrace_lineenddefto_sexp[:step_invocation,@step.line,@step.keyword,@name,(@multiline_arg.nil??nil:@multiline_arg.to_sexp)].compactendendendend