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