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



111
112
113
# File 'lib/cucumber/glue/snippet.rb', line 111

def self.description
  'Cucumber Expressions'
end

Instance Method Details

#parameters(expr) ⇒ Object



105
106
107
108
109
# File 'lib/cucumber/glue/snippet.rb', line 105

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



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

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")

  body = <<~DOC.chomp
      #{multiline_argument.comment}
    end
  DOC

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

#typed_patternObject



87
88
89
# File 'lib/cucumber/glue/snippet.rb', line 87

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