Class: Cms::CategoryType
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Cms::CategoryType
- Includes:
- Cms::Concerns::IgnoresPublishing
- Defined in:
- app/models/cms/category_type.rb
Class Method Summary collapse
-
.category_map ⇒ Object
Return a map when the key is category type id as a string and the value is an array of arrays, each entry having the first value as the category path and the second value being the category id as a string.
- .named(name) ⇒ Object
Instance Method Summary collapse
- #cannot_be_deleted_message ⇒ Object
-
#category_list(order = "name") ⇒ Object
This is used to get the full list of categories for this category type in the correct order.
Methods included from Cms::Concerns::IgnoresPublishing
Class Method Details
.category_map ⇒ Object
Return a map when the key is category type id as a string and the value is an array of arrays, each entry having the first value as the category path and the second value being the category id as a string
20 21 22 23 24 25 |
# File 'app/models/cms/category_type.rb', line 20 def self.category_map all.inject(Hash.new([])) do |map, ct| map[ct.id.to_s] = ct.category_list.map { |c| [c.path, c.id.to_s] } map end end |
.named(name) ⇒ Object
12 13 14 |
# File 'app/models/cms/category_type.rb', line 12 def self.named(name) where(name: name) end |
Instance Method Details
#cannot_be_deleted_message ⇒ Object
38 39 40 |
# File 'app/models/cms/category_type.rb', line 38 def categories.count.zero? ? nil : "This cannot be deleted because it is in use in #{categories.count} #{"category".pluralize_unless_one(categories.count)}" end |
#category_list(order = "name") ⇒ Object
This is used to get the full list of categories for this category type in the correct order.
28 29 30 31 32 33 34 35 36 |
# File 'app/models/cms/category_type.rb', line 28 def category_list(order="name") list = [] fn = lambda do |cat| list << cat cat.children.order(order).each { |c| fn.call(c) } end categories.top_level.order(order).each { |cat| fn.call(cat) } list end |