Sha256: 6710199bc385578a54448859abf33bc8977b2db6c2adc002d172a7741b68061e

Contents?: true

Size: 672 Bytes

Versions: 6

Compression:

Stored size: 672 Bytes

Contents

module AbAdmin
  module Models
    class TypeModel
      include ::EnumField::DefineEnum

      attr_reader :code

      class_attribute :codes, :i18n_scope, instance_writer: false
      self.codes = []
      self.i18n_scope = [:admin, :type_model]

      def initialize(code)
        @code = code.to_sym
      end

      def self.define_enum_by_codes
        define_enum do |builder|
          codes.each do |kind|
            builder.member kind, object: new(kind.to_s)
          end
        end
      end

      def title
        I18n.t(@code, scope: i18n_scope)
      end

      def self.legal?(value)
        all.map(&:id).include?(value)
      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ab_admin-0.3.5 lib/ab_admin/models/type_model.rb
ab_admin-0.3.4 lib/ab_admin/models/type_model.rb
ab_admin-0.3.3 lib/ab_admin/models/type_model.rb
ab_admin-0.3.2 lib/ab_admin/models/type_model.rb
ab_admin-0.3.1 lib/ab_admin/models/type_model.rb
ab_admin-0.3.0 lib/ab_admin/models/type_model.rb