Class: Adminable::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/adminable/resource.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Resource

Returns a new instance of Resource.

Parameters:

  • name (String)

    resource name, usually same as the model name



7
8
9
10
# File 'lib/adminable/resource.rb', line 7

def initialize(name)
  @name = name
  @model = name.classify.constantize
end

Instance Attribute Details

#attributesArray

Returns collection, see Attributes::Collection.

Returns:



27
28
29
# File 'lib/adminable/resource.rb', line 27

def attributes
  @attributes ||= Adminable::Attributes::Collection.new(@model)
end

#modelObject (readonly)

Returns the value of attribute model.



3
4
5
# File 'lib/adminable/resource.rb', line 3

def model
  @model
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/adminable/resource.rb', line 3

def name
  @name
end

Instance Method Details

#includesArray

Returns of associations names for ActiveRecord queries.

Returns:

  • (Array)

    of associations names for ActiveRecord queries



18
19
20
21
22
23
24
# File 'lib/adminable/resource.rb', line 18

def includes
  @includes ||= if attributes.associations.present?
                  attributes.associations.map(&:name)
                else
                  false
                end
end

#routeString

Returns for route helper name.

Returns:

  • (String)

    for route helper name



13
14
15
# File 'lib/adminable/resource.rb', line 13

def route
  @route ||= @model.name.underscore.pluralize.tr('/', '_')
end