Sha256: e85c31476d8c77696a92a322fdcc6796f13e8cc414c0bf653ffe21f22d56503f

Contents?: true

Size: 930 Bytes

Versions: 15

Compression:

Stored size: 930 Bytes

Contents

module CmAdmin
  module Models
    class FormField
      attr_accessor :field_name, :label, :header, :input_type, :collection, :custom_value, :disabled
      VALID_INPUT_TYPES = [:integer, :decimal, :string, :single_select, :multi_select, :date, :date_time, :text, :single_file_upload, :multi_file_upload, :hidden].freeze

      def initialize(field_name, input_type, attributes = {})
        raise ArgumentError, "Kindly select a valid filter type like #{VALID_INPUT_TYPES.sort.to_sentence(last_word_connector: ', or ')} instead of #{input_type} for column #{field_name}" unless VALID_INPUT_TYPES.include?(input_type.to_sym)
        @field_name = field_name
        set_default_values
        attributes.each do |key, value|
          self.send("#{key.to_s}=", value)
        end
      end

      def set_default_values
        self.disabled = false
        self.label = self.field_name.to_s.titleize
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
cm-admin-0.6.9 lib/cm_admin/models/form_field.rb
cm-admin-0.6.8 lib/cm_admin/models/form_field.rb
cm-admin-0.6.7 lib/cm_admin/models/form_field.rb
cm-admin-0.6.6 lib/cm_admin/models/form_field.rb
cm-admin-0.6.5 lib/cm_admin/models/form_field.rb
cm-admin-0.6.4 lib/cm_admin/models/form_field.rb
cm-admin-0.6.3 lib/cm_admin/models/form_field.rb
cm-admin-0.6.2 lib/cm_admin/models/form_field.rb
cm-admin-0.6.1 lib/cm_admin/models/form_field.rb
cm-admin-0.6.0 lib/cm_admin/models/form_field.rb
cm-admin-0.5.9 lib/cm_admin/models/form_field.rb
cm-admin-0.5.8 lib/cm_admin/models/form_field.rb
cm-admin-0.5.7 lib/cm_admin/models/form_field.rb
cm-admin-0.5.6 lib/cm_admin/models/form_field.rb
cm-admin-0.5.5 lib/cm_admin/models/form_field.rb