class Spine::Parameters::Parsers::List

Public Class Methods

new(parser = Parsers::Anything) click to toggle source
# File lib/spine/parameters/parsers/list.rb, line 5
def initialize(parser = Parsers::Anything)
  @parser = parser
end

Public Instance Methods

parse(name, value) click to toggle source
# File lib/spine/parameters/parsers/list.rb, line 9
def parse(name, value)
  return [] unless value
  return parse_collection(value) if value.is_a?(Enumerable)
  return parse_collection(value.split(',')) if value.is_a?(::String)

  raise ArgumentError.new
end

Private Instance Methods

parse_collection(collection) click to toggle source
# File lib/spine/parameters/parsers/list.rb, line 19
def parse_collection(collection)
  collection.map { |item| parse_element(item) }
end
parse_element(element) click to toggle source
# File lib/spine/parameters/parsers/list.rb, line 23
def parse_element(element)
  @parser.parse(nil, element)
end