Module: Discerner::Methods::Models::ParameterCategory

Included in:
ParameterCategory
Defined in:
lib/discerner/methods/models/parameter_category.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/discerner/methods/models/parameter_category.rb', line 5

def self.included(base)
  base.send :include, SoftDelete

  # Associations
  base.send :belongs_to,  :dictionary, inverse_of: :parameter_categories
  base.send :has_many,    :parameters, inverse_of: :parameter_category,  dependent: :destroy

  # Validations
  base.send :validates, :name, presence: true, uniqueness: { scope: :dictionary_id, message: "for parameter category has already been taken"}
  base.send :validates, :dictionary, presence: { message: "for parameter category can't be blank" }

  # Scopes
  base.send(:scope, :searchable, -> {base.includes(:parameters).where('discerner_parameters.search_model IS NOT NULL AND discerner_parameters.search_method IS NOT NULL AND discerner_parameters.deleted_at IS NULL AND discerner_parameters.hidden_in_search = ?', false).references(:discerner_parameters)})
  base.send(:scope, :exportable, -> {base.includes(:parameters).where('discerner_parameters.export_model IS NOT NULL AND discerner_parameters.export_method IS NOT NULL AND discerner_parameters.deleted_at IS NULL AND discerner_parameters.hidden_in_export = ?', false).references(:discerner_parameters)})
  base.send(:scope, :ordered_by_name, -> {base.order('discerner_parameter_categories.name ASC')})

  # Hooks
  base.send :after_commit, :cascade_delete_parameters, on: :update, if: Proc.new { |record| record.previous_changes.include?('deleted_at') }
end

Instance Method Details

#css_class_nameObject



42
43
44
# File 'lib/discerner/methods/models/parameter_category.rb', line 42

def css_class_name
  "parameter_category_#{parameterized_name}"
end

#exportable_parametersObject



38
39
40
# File 'lib/discerner/methods/models/parameter_category.rb', line 38

def exportable_parameters
  parameters.exportable
end

#initialize(*args) ⇒ Object

Instance Methods



26
27
28
# File 'lib/discerner/methods/models/parameter_category.rb', line 26

def initialize(*args)
  super(*args)
end

#parameterized_nameObject



30
31
32
# File 'lib/discerner/methods/models/parameter_category.rb', line 30

def parameterized_name
  name.parameterize.underscore
end

#searchable_parametersObject



34
35
36
# File 'lib/discerner/methods/models/parameter_category.rb', line 34

def searchable_parameters
  parameters.searchable
end