Class: Cucumber::Core::Ast::Step

Inherits:
Object
  • Object
show all
Includes:
DescribesItself, HasLocation
Defined in:
lib/cucumber/core/ast/step.rb

Direct Known Subclasses

ExpandedOutlineStep

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DescribesItself

#describe_to

Methods included from HasLocation

#all_locations, #attributes, #file, #file_colon_line, #line, #location, #tags

Constructor Details

#initialize(language, location, comments, keyword, name, multiline_arg) ⇒ Step

Returns a new instance of Step.



13
14
15
# File 'lib/cucumber/core/ast/step.rb', line 13

def initialize(language, location, comments, keyword, name, multiline_arg)
  @language, @location, @comments, @keyword, @name, @multiline_arg = language, location, comments, keyword, name, multiline_arg
end

Instance Attribute Details

#commentsObject (readonly)

Returns the value of attribute comments.



11
12
13
# File 'lib/cucumber/core/ast/step.rb', line 11

def comments
  @comments
end

#exceptionObject (readonly)

Returns the value of attribute exception.



11
12
13
# File 'lib/cucumber/core/ast/step.rb', line 11

def exception
  @exception
end

#keywordObject (readonly)

Returns the value of attribute keyword.



11
12
13
# File 'lib/cucumber/core/ast/step.rb', line 11

def keyword
  @keyword
end

#languageObject (readonly)

Returns the value of attribute language.



11
12
13
# File 'lib/cucumber/core/ast/step.rb', line 11

def language
  @language
end

#multiline_argObject (readonly)

Returns the value of attribute multiline_arg.



11
12
13
# File 'lib/cucumber/core/ast/step.rb', line 11

def multiline_arg
  @multiline_arg
end

#nameObject (readonly)

Returns the value of attribute name.



11
12
13
# File 'lib/cucumber/core/ast/step.rb', line 11

def name
  @name
end

Instance Method Details

#actual_keyword(previous_step_keyword = nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/cucumber/core/ast/step.rb', line 25

def actual_keyword(previous_step_keyword = nil)
  if [language.and_keywords, language.but_keywords].flatten.uniq.include? keyword
    if previous_step_keyword.nil?
      language.given_keywords.reject{|kw| kw == '* '}[0]
    else
      previous_step_keyword
    end
  else
    keyword
  end
end

#backtrace_lineObject



21
22
23
# File 'lib/cucumber/core/ast/step.rb', line 21

def backtrace_line
  "#{location}:in `#{keyword}#{name}'"
end

#inspectObject



37
38
39
40
# File 'lib/cucumber/core/ast/step.rb', line 37

def inspect
  keyword_and_name = [keyword, name].join(": ")
  %{#<#{self.class} "#{keyword_and_name}" (#{location})>}
end

#to_sexpObject



17
18
19
# File 'lib/cucumber/core/ast/step.rb', line 17

def to_sexp
  [:step, line, keyword, name, @multiline_arg.to_sexp]
end