Sha256: f930f5ff13d90f8607a100746eb018ff0a4801f0b1f46ce653ce0047dd85d12f

Contents?: true

Size: 732 Bytes

Versions: 8

Compression:

Stored size: 732 Bytes

Contents

# frozen_string_literal: true

require_relative 'field_creatable'
require_relative 'field_retrievable'

module DecoLite
  # Defines methods to assign model field values dynamically.
  module FieldAssignable
    include FieldCreatable
    include FieldRetrievable

    def set_field_values(hash:, field_info:, options:)
      field_info.each do |name, info|
        value = get_field_value(hash: hash, field_info: info)
        set_field_value(field_name: name, value: value, options: options)
      end
    end

    def set_field_value(field_name:, value:, options:)
      # Create our fields before we send.
      create_field_accessor field_name: field_name, options: options
      send("#{field_name}=", value)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
deco_lite-0.3.1 lib/deco_lite/field_assignable.rb
deco_lite-0.3.0 lib/deco_lite/field_assignable.rb
deco_lite-0.2.5 lib/deco_lite/field_assignable.rb
deco_lite-0.2.4 lib/deco_lite/field_assignable.rb
deco_lite-0.2.3 lib/deco_lite/field_assignable.rb
deco_lite-0.2.2 lib/deco_lite/field_assignable.rb
deco_lite-0.1.1 lib/deco_lite/field_assignable.rb
deco_lite-0.1.0 lib/deco_lite/field_assignable.rb