Sha256: a38e53fbd277651096d2c3ca19ced8475aa3239022c19548321be0e65694521c

Contents?: true

Size: 632 Bytes

Versions: 4

Compression:

Stored size: 632 Bytes

Contents

# frozen_string_literal: true

require_relative 'field_conflictable'

module DecoLite
  # Takes an array of symbols and creates attr_accessors.
  module FieldCreatable
    include FieldConflictable

    def create_field_accessors(field_names:, options:)
      return if field_names.blank?

      field_names.each do |field_name|
        create_field_accessor(field_name: field_name, options: options)
      end
    end

    def create_field_accessor(field_name:, options:)
      validate_field_conflicts!(field_name: field_name, options: options)

      self.class.attr_accessor(field_name) if field_name.present?
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
deco_lite-0.2.3 lib/deco_lite/field_creatable.rb
deco_lite-0.2.2 lib/deco_lite/field_creatable.rb
deco_lite-0.1.1 lib/deco_lite/field_creatable.rb
deco_lite-0.1.0 lib/deco_lite/field_creatable.rb