Module: ActiveAdmin::Resource::Attributes
- Included in:
- ActiveAdmin::Resource
- Defined in:
- lib/active_admin/resource/attributes.rb
Instance Method Summary collapse
- #counter_cache_col?(c) ⇒ Boolean
- #default_attributes ⇒ Object
- #filtered_col?(c) ⇒ Boolean
- #foreign_methods ⇒ Object
- #method_for_column(c) ⇒ Object
- #primary_col?(c) ⇒ Boolean
- #reject_col?(c) ⇒ Boolean
- #sti_col?(c) ⇒ Boolean
Instance Method Details
#counter_cache_col?(c) ⇒ Boolean
38 39 40 |
# File 'lib/active_admin/resource/attributes.rb', line 38 def counter_cache_col?(c) c.name.end_with?('_count') end |
#default_attributes ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/active_admin/resource/attributes.rb', line 6 def default_attributes resource_class.columns.each_with_object({}) do |c, attrs| unless reject_col?(c) name = c.name.to_sym attrs[name] = (method_for_column(name) || name) end end end |
#filtered_col?(c) ⇒ Boolean
42 43 44 |
# File 'lib/active_admin/resource/attributes.rb', line 42 def filtered_col?(c) ActiveAdmin.application.filter_attributes.include?(c.name.to_sym) end |
#foreign_methods ⇒ Object
19 20 21 22 23 24 |
# File 'lib/active_admin/resource/attributes.rb', line 19 def foreign_methods @foreign_methods ||= resource_class.reflect_on_all_associations. select{ |r| r.macro == :belongs_to }. reject{ |r| r.chain.length > 2 && !r.[:polymorphic] }. index_by{ |r| r.foreign_key.to_sym } end |
#method_for_column(c) ⇒ Object
15 16 17 |
# File 'lib/active_admin/resource/attributes.rb', line 15 def method_for_column(c) resource_class.respond_to?(:reflect_on_all_associations) && foreign_methods.has_key?(c) && foreign_methods[c].name.to_sym end |
#primary_col?(c) ⇒ Boolean
30 31 32 |
# File 'lib/active_admin/resource/attributes.rb', line 30 def primary_col?(c) c.name == resource_class.primary_key end |
#reject_col?(c) ⇒ Boolean
26 27 28 |
# File 'lib/active_admin/resource/attributes.rb', line 26 def reject_col?(c) primary_col?(c) || sti_col?(c) || counter_cache_col?(c) || filtered_col?(c) end |
#sti_col?(c) ⇒ Boolean
34 35 36 |
# File 'lib/active_admin/resource/attributes.rb', line 34 def sti_col?(c) c.name == resource_class.inheritance_column end |