class Spine::Parameters::Collection

Attributes

raw[R]
values[R]

Public Class Methods

new(raw) click to toggle source
# File lib/spine/parameters/collection.rb, line 16
def initialize(raw)
  @raw = raw
  @values = {}
end

Public Instance Methods

[](key) click to toggle source
# File lib/spine/parameters/collection.rb, line 21
def [](key)
  values.fetch(key.to_sym) { symbolized[key.to_sym] }
end
symbolized() click to toggle source
# File lib/spine/parameters/collection.rb, line 25
def symbolized
  @symbolized ||= Symbolize.keys(raw)
end

Private Instance Methods

parse(name, parser, &block) click to toggle source
# File lib/spine/parameters/collection.rb, line 31
def parse(name, parser, &block)
  key = name.to_sym
  values[key] = parser.parse(key, symbolized[key]) if symbolized[key]
  values[key] ||= block.call if block_given?
  self
end