Sha256: 708668509b5acbb6e437a61a28af65a7ff69f3712762f86f37dc804f25c8b3b7

Contents?: true

Size: 1.34 KB

Versions: 15

Compression:

Stored size: 1.34 KB

Contents

require 'rails_admin/config/fields/types/string'

module RailsAdmin
  module Config
    module Fields
      module Types
        class Enum < RailsAdmin::Config::Fields::Base
          RailsAdmin::Config::Fields::Types::register(self)

          register_instance_option :partial do
            :form_enumeration
          end

          register_instance_option :enum_method do
            @enum_method ||= (bindings[:object].class.respond_to?("#{name}_enum") || bindings[:object].respond_to?("#{name}_enum")) ? "#{name}_enum" : name
          end

          register_instance_option :enum do
            bindings[:object].class.respond_to?(enum_method) ? bindings[:object].class.send(enum_method) : bindings[:object].send(enum_method)
          end

          register_instance_option :pretty_value do
            if enum.is_a?(::Hash)
              enum.reject{|k,v| v.to_s != value.to_s}.keys.first.to_s.presence || value.presence || ' - '
            elsif enum.is_a?(::Array) && enum.first.is_a?(::Array)
              enum.find{|e|e[1].to_s == value.to_s}.try(:first).to_s.presence || value.presence || ' - '
            else
              value.presence || ' - '
            end
          end

          register_instance_option :multiple? do
            properties && [:serialized].include?(properties[:type])
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
rails_admin-0.6.0 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.5.0 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.9 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.8 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.7 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.6 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.5 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.4 lib/rails_admin/config/fields/types/enum.rb
rails_admin-lbgraham-0.4.2 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.3 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.2 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.1 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.4.0 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.3.0 lib/rails_admin/config/fields/types/enum.rb
rails_admin-0.2.0 lib/rails_admin/config/fields/types/enum.rb