Sha256: 3a9108f2721a857b65017e8a88ad29f08c6112bf78c4b454173af02e5d316fac

Contents?: true

Size: 1 KB

Versions: 7

Compression:

Stored size: 1 KB

Contents

require_relative "deferred"
require "active_support/core_ext/string/inflections"

module Administrate
  module Field
    class Base
      def self.with_options(options = {})
        Deferred.new(self, options)
      end

      def self.html_class
        field_type.dasherize
      end

      def self.searchable?
        false
      end

      def initialize(attribute, data, page, options = {})
        @attribute = attribute
        @data = data
        @page = page
        @resource = options.delete(:resource)
        @options = options
      end

      def self.permitted_attribute(attr, _options = nil)
        attr
      end

      def html_class
        self.class.html_class
      end

      def name
        attribute.to_s
      end

      def to_partial_path
        "/fields/#{self.class.field_type}/#{page}"
      end

      attr_reader :attribute, :data, :page, :resource

      protected

      attr_reader :options

      def self.field_type
        to_s.split("::").last.underscore
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
administrate-0.12.0 lib/administrate/field/base.rb
administrate-0.11.0 lib/administrate/field/base.rb
semantic-administrate-0.10.1 lib/administrate/field/base.rb
semantic-administrate-0.10.0 lib/administrate/field/base.rb
administrate-0.10.0 lib/administrate/field/base.rb
semantic-administrate-0.1.1 lib/administrate/field/base.rb
administrate-0.9.0 lib/administrate/field/base.rb