class PikoModel::Model
Attributes
missing_fields[R]
Public Class Methods
field(name, default: Required)
click to toggle source
# File lib/piko_model/model.rb, line 33 def self.field(name, default: Required) @@registered_fields << { name: name, default: default } end
new(params = {})
click to toggle source
# File lib/piko_model/model.rb, line 37 def initialize(params = {}) @values = {} @missing_fields = [] fill_data(Dothash::Hash.with_dots(params)) end
Public Instance Methods
valid?()
click to toggle source
# File lib/piko_model/model.rb, line 43 def valid? @missing_fields.empty? end
Private Instance Methods
fill_data(params)
click to toggle source
# File lib/piko_model/model.rb, line 49 def fill_data(params) @@registered_fields.each do |field| value = params.fetch(field[:name], field[:default]) if value == Required @missing_fields << field[:name] else @values[field[:name]] = value end end end