module Discerner::Methods::Models::ParameterValueCategory

Public Class Methods

included(base) click to toggle source
# 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

Public Instance Methods

css_class() click to toggle source
# File lib/discerner/methods/models/parameter_value_category.rb, line 23
def css_class
  "parameter_value_category_#{parameterized_name}"
end
parameterized_name() click to toggle source
# File lib/discerner/methods/models/parameter_value_category.rb, line 27
def parameterized_name
  name.parameterize.underscore
end

Private Instance Methods

parameter_value_belongs_to_parameter() click to toggle source
# File lib/discerner/methods/models/parameter_value_category.rb, line 32
def parameter_value_belongs_to_parameter
  unless parameter.blank?
    parameter_values.each do |parameter_value|
      errors.add(:base,"Parameter value #{parameter_value.name} does not belong to parameter #{parameter.name}") unless parameter_value.parameter_id == parameter.id
    end
  end
end