module Discerner::Methods::Models::Dictionary

Public Class Methods

included(base) click to toggle source
# File lib/discerner/methods/models/dictionary.rb, line 5
def self.included(base)
  base.send :include, SoftDelete

  # Associations
  base.send :has_many, :parameter_categories, dependent: :destroy
  base.send :has_many, :searches

  #Validations
  base.send :validates, :name, presence: true, uniqueness: {message: "for dictionary has already been taken"}

  # Hooks
  base.send :after_commit, :cascade_delete_parameter_categories, on: :update, if: Proc.new { |record| record.previous_changes.include?('deleted_at') }
end
new(*args) click to toggle source

Instance Methods

Calls superclass method
# File lib/discerner/methods/models/dictionary.rb, line 20
def initialize(*args)
  super(*args)
end

Public Instance Methods

css_class_name() click to toggle source
# File lib/discerner/methods/models/dictionary.rb, line 24
def css_class_name
  "dictionary_#{parameterized_name}"
end
exportable_categories() click to toggle source
# File lib/discerner/methods/models/dictionary.rb, line 36
def exportable_categories
  parameter_categories.exportable
end
parameterized_name() click to toggle source
# File lib/discerner/methods/models/dictionary.rb, line 28
def parameterized_name
  name.parameterize.underscore
end
searchable_categories() click to toggle source
# File lib/discerner/methods/models/dictionary.rb, line 32
def searchable_categories
  parameter_categories.searchable
end

Private Instance Methods

cascade_delete_parameter_categories() click to toggle source
# File lib/discerner/methods/models/dictionary.rb, line 41
def cascade_delete_parameter_categories
  return unless deleted?
  parameter_categories.each do |pc|
    pc.deleted_at = Time.now
    pc.save
  end
end