Class: Cucumber::Glue::Snippet::CucumberExpression

Inherits:
BaseSnippet
  • Object
show all
Defined in:
lib/cucumber/glue/snippet.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseSnippet

cli_option_string, #initialize, #step

Constructor Details

This class inherits a constructor from Cucumber::Glue::Snippet::BaseSnippet

Class Method Details

.descriptionObject



114
115
116
# File 'lib/cucumber/glue/snippet.rb', line 114

def self.description
  'Cucumber Expressions'
end

Instance Method Details

#parameters(expr) ⇒ Object



108
109
110
111
112
# File 'lib/cucumber/glue/snippet.rb', line 108

def parameters(expr)
  parameter_names = expr.parameter_names
  multiline_argument.append_block_parameter_to(parameter_names)
  parameter_names.empty? ? '' : " |#{parameter_names.join(', ')}|"
end

#to_sObject



93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/cucumber/glue/snippet.rb', line 93

def to_s
  header = generated_expressions.each_with_index.map do |expr, i|
    prefix = i.zero? ? '' : '# '
    "#{prefix}#{code_keyword}('#{expr.source}') do#{parameters(expr)}"
  end.join("\n")

  # TODO: [LH] - Just use a heredoc here to fix this up
  body = String.new
  multiline_argument.append_comment_to(body)
  body << "  pending # Write code here that turns the phrase above into concrete actions\n"
  body << 'end'

  "#{header}\n#{body}"
end

#typed_patternObject



89
90
91
# File 'lib/cucumber/glue/snippet.rb', line 89

def typed_pattern
  "(\"#{generated_expressions[0].source}\")"
end