Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
require_relative "base"

module Administrate
  module Field
    class Select < Field::Base
      def self.searchable?
        true
      end

      def selectable_options
        values =
          if options.key?(:collection)
            options.fetch(:collection)
          elsif active_record_enum?
            active_record_enum_values
          else
            []
          end

        if values.respond_to? :call
          values = values.arity.positive? ? values.call(self) : values.call
        end

        values
      end

      def include_blank_option
        options.fetch(:include_blank, false)
      end

      def active_record_enum?
        resource.class.defined_enums.key?(attribute.to_s)
      end

      def active_record_enum_values
        resource.class.defined_enums[attribute.to_s].map(&:first)
      end
    end
  end
end