Module: Discerner::Methods::Models::ParameterValueCategory

Included in:
ParameterValueCategory
Defined in:
lib/discerner/methods/models/parameter_value_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
# File 'lib/discerner/methods/models/parameter_value_category.rb', line 5

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

  # Associations
  base.send :belongs_to, :parameter,                       inverse_of: :parameter_value_categories
  base.send :has_many,   :parameter_value_categorizations, dependent: :destroy
  base.send :has_many,   :parameter_values, through: :parameter_value_categorizations

  # Scopes
  base.send(:scope, :ordered_by_name, -> { base.order('discerner_parameter_value_categories.name ASC') })
  base.send(:scope, :ordered_by_display_order_and_name, -> { base.order('discerner_parameter_value_categories.display_order ASC, discerner_parameter_value_categories.name ASC') })

  # Validations
  base.send :validates_presence_of, :parameter, :unique_identifier, :name
  base.send :validates, :unique_identifier, uniqueness: {scope: [:parameter_id, :deleted_at], message: "for parameter value category has already been taken"}
  base.send :validate, :parameter_value_belongs_to_parameter
end

Instance Method Details

#css_classObject



23
24
25
# File 'lib/discerner/methods/models/parameter_value_category.rb', line 23

def css_class
  "parameter_value_category_#{parameterized_name}"
end

#parameterized_nameObject



27
28
29
# File 'lib/discerner/methods/models/parameter_value_category.rb', line 27

def parameterized_name
  name.parameterize.underscore
end