module Cucumber::MultilineArgument
def builder
def builder @builder ||= Builder.new end
def from(argument, location = nil, content_type = nil)
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)) 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
def from_core(node)
def from_core(node) builder.wrap(node) end