Module: ReportableRails::Models::ReportCategory::ClassMethods

Defined in:
lib/reportable_rails/models/report_category.rb

Instance Method Summary collapse

Instance Method Details

#deactivate(name) ⇒ Object

Deactivate a category without deleting it



56
57
58
59
60
# File 'lib/reportable_rails/models/report_category.rb', line 56

def deactivate(name)
  return false if name == ReportableRails.configuration.default_category_name
  category = find_by(name: name)
  category&.update(active: false)
end

#default_categoryObject

Get or create the default category



50
51
52
53
# File 'lib/reportable_rails/models/report_category.rb', line 50

def default_category
  find_or_create_by_name(ReportableRails.configuration.default_category_name,
                        description: 'Default category for uncategorized reports')
end

#find_or_create_by_name(name, description: nil) ⇒ Object

Find or create a category by name



43
44
45
46
47
# File 'lib/reportable_rails/models/report_category.rb', line 43

def find_or_create_by_name(name, description: nil)
  find_or_create_by(name: name) do |category|
    category.description = description if description.present?
  end
end