Sha256: 13fdd6cf917c014759d287b82371a337e6eaf2adbfdeeb3f00a6623d65edb4c7

Contents?: true

Size: 773 Bytes

Versions: 11

Compression:

Stored size: 773 Bytes

Contents

module Administrate
  module Page
    class Base
      def initialize(dashboard, options = {})
        @dashboard = dashboard
        @options = options
      end

      def resource_name
        @resource_name ||=
          dashboard.class.to_s.scan(/(.+)Dashboard/).first.first.underscore
      end

      protected

      def attribute_field(dashboard, resource, attribute_name, page)
        value = get_attribute_value(resource, attribute_name)
        field = dashboard.attribute_type_for(attribute_name)
        field.new(attribute_name, value, page)
      end

      def get_attribute_value(resource, attribute_name)
        resource.public_send(attribute_name)
      rescue NameError
        nil
      end

      attr_reader :dashboard, :options
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
administrate-0.5.0 lib/administrate/page/base.rb
administrate-0.4.0 lib/administrate/page/base.rb
administrate-0.3.0 lib/administrate/page/base.rb
administrate-0.2.2 lib/administrate/page/base.rb
administrate-0.2.1 lib/administrate/page/base.rb
administrate-0.2.0 lib/administrate/page/base.rb
administrate-0.2.0.rc1 lib/administrate/page/base.rb
administrate-0.1.5 lib/administrate/page/base.rb
administrate-0.1.4 lib/administrate/page/base.rb
administrate-0.1.3 lib/administrate/page/base.rb
administrate-0.1.2 lib/administrate/page/base.rb