module Cucumber::MultilineArgument
def builder
def builder @builder ||= Builder.new end
def data_table(data, location)
def data_table(data, location) builder.data_table(Core::Ast::DataTable.new(data, location)) end
def doc_string(argument, content_type, location)
def doc_string(argument, content_type, location) builder.doc_string(Core::Ast::DocString.new(argument, content_type, location)) end
def from(argument, location=nil)
def from(argument, location=nil) location ||= Core::Ast::Location.of_caller argument = rubify(argument) case argument when String doc_string(argument, 'text/plain', location) when Array location = location.on_line(argument.first.line..argument.last.line) data_table(argument.map{ |row| row.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