Sha256: 3b01f1c58fe353e99c436786089cdf015529f4bdd8378283b2eaefdc913bc4c8
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
module Cucumber module Ast # Represents an inline argument in a step. Example: # # Given the message # """ # I like # Cucumber sandwich # """ # # The text between the pair of <tt>"""</tt> is stored inside a PyString, # which is yielded to the StepDefinition block as the last argument. # # The StepDefinition can then access the String via the #to_s method. In the # example above, that would return: <tt>"I like\nCucumber sandwich"</tt> # # Note how the indentation from the source is stripped away. # class PyString def self.default_arg_name "string" end def initialize(start_line, end_line, string, quotes_indent) @start_line, @end_line = start_line, end_line @string, @quotes_indent = string.gsub(/\\"/, '"'), quotes_indent @status = :passed end def status=(status) @status = status end def to_s @string.indent(-@quotes_indent) end def matches_lines?(lines) lines.detect{|l| l >= @start_line && l <= @end_line} end def accept(visitor) visitor.visit_py_string(to_s, @status) end def arguments_replaced(arguments) #:nodoc: string = @string arguments.each do |name, value| value ||= '' string = string.gsub(name, value) end PyString.new(@start_line, @end_line, string, @quotes_indent) end # For testing only def to_sexp #:nodoc: [:py_string, to_s] end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
aslakhellesoy-cucumber-0.2.3.1 | lib/cucumber/ast/py_string.rb |
fcoury-cucumber-0.2.3.1 | lib/cucumber/ast/py_string.rb |