Class: ActiveConformity::Conformable

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/active_conformity/conformable.rb

Instance Method Summary collapse

Instance Method Details

#add_conformity_set(incoming_set = {}) ⇒ Object



6
7
8
9
10
11
# File 'lib/active_conformity/conformable.rb', line 6

def add_conformity_set(incoming_set={})
  self.conformity_set = JSON.parse(self.conformity_set) if self.conformity_set.is_a?(String)
  conformity_set = JSON.parse(incoming_set) rescue incoming_set
  conformity_set = self.conformity_set.deep_merge(incoming_set) rescue conformity_set
  self.conformity_set = conformity_set.to_json
end

#conformity_setObject



13
14
15
16
17
18
19
# File 'lib/active_conformity/conformable.rb', line 13

def conformity_set
  if super.is_a? String
    JSON.parse(super).deep_symbolize_keys! rescue super
  else
    super
  end
end

#remove_coformity_rule(attr) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/active_conformity/conformable.rb', line 21

def remove_coformity_rule(attr)
  conformity_set = JSON.parse(self.conformity_set) rescue self.conformity_set
  conformity_set.delete(attr) do
    raise "no rule found for #{attr.to_s}"
  end
  self.conformity_set = conformity_set.to_json
end

#remove_coformity_rule!(attr) ⇒ Object



29
30
31
32
# File 'lib/active_conformity/conformable.rb', line 29

def remove_coformity_rule!(attr)
  remove_coformity_rule(attr)
  save!
end