Class: Pema::Schema

Inherits:
Object
  • Object
show all
Defined in:
lib/primate/pema.rb

Instance Method Summary collapse

Constructor Details

#initialize(fields) ⇒ Schema

Returns a new instance of Schema.



110
111
112
# File 'lib/primate/pema.rb', line 110

def initialize(fields)
  @fields = fields
end

Instance Method Details

#parse(data, coerce = false) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/primate/pema.rb', line 114

def parse(data, coerce = false)
  result = {}

  @fields.each do |name, field|
    value = data.key?(name) ? data[name] : ''

    begin
      result[name] = field.parse(value, coerce)
    rescue ValidationError => e
      raise ValidationError, "parsing failed for field '#{name}': #{e.message}"
    end
  end

  result
end