Sha256: b8b9ea8d7ad084af2095af26e9617f7190c91c497a7ada58451d8f7595d71521

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

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

      def resource_path
        @resource_path ||= resource_name.gsub("/", "_")
      end

      def collection_includes
        dashboard.try(:collection_includes) || []
      end

      def item_includes
        dashboard.try(:item_includes) || []
      end

      def item_associations
        dashboard.try(:item_associations) || []
      end

      private

      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, resource: resource)
      end

      def get_attribute_value(resource, attribute_name)
        resource.public_send(attribute_name)
      end

      attr_reader :dashboard, :options
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
administrate-0.20.1 lib/administrate/page/base.rb
administrate-0.20.0 lib/administrate/page/base.rb
administrate-0.19.0 lib/administrate/page/base.rb
administrate-0.18.0 lib/administrate/page/base.rb