Sha256: f20c318d1c389642286a5fcb7915c431a6284dee84b43763e42b9658d3466f9a
Contents?: true
Size: 1.41 KB
Versions: 3
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true require 'delegate' require 'cucumber/multiline_argument/data_table' require 'cucumber/multiline_argument/doc_string' module Cucumber module MultilineArgument class << self def from_core(node) builder.wrap(node) end def from(argument, location = nil, content_type = nil) location ||= Core::Test::Location.of_caller case argument when String builder.doc_string(Core::Test::DocString.new(argument, content_type, location)) when Array location = location.on_line(argument.first.line..argument.last.line) builder.data_table(argument.map(&:cells), location) when DataTable, DocString, None argument when nil None.new else raise ArgumentError, "Don't know how to convert #{argument.class} #{argument.inspect} into a MultilineArgument" end end private def builder @builder ||= Builder.new end class Builder def wrap(node) @result = None.new node.describe_to(self) @result end def doc_string(node, *_args) @result = DocString.new(node) end def data_table(node, *_args) @result = DataTable.new(node) end end end class None def append_to(array); end def describe_to(visitor); end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cucumber-4.0.0.rc.3 | lib/cucumber/multiline_argument.rb |
cucumber-4.0.0.rc.2 | lib/cucumber/multiline_argument.rb |
cucumber-4.0.0.rc.1 | lib/cucumber/multiline_argument.rb |