Module: CleanRoom::AirLock::Model
- Defined in:
- lib/clean_room/air_lock.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/clean_room/air_lock.rb', line 26 def self.included(base) base.extend ClassMethods base.sanitizable_attributes = {} if base.respond_to? :before_validate base.before_validate :sanitize_attributes end end |
Instance Method Details
#sanitize_attribute(name, rules = {}) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/clean_room/air_lock.rb', line 41 def sanitize_attribute(name, rules = {}) current_value = self.send(name) cleaned_value = Filter.clean(current_value, rules) raise Exceptions::Contaminated.new("#{name} contained unacceptable data") if rules[:raise] && (current_value != cleaned_value) self.send("#{name}=".to_sym, cleaned_value) end |
#sanitize_attributes ⇒ Object
35 36 37 38 39 |
# File 'lib/clean_room/air_lock.rb', line 35 def sanitize_attributes self.class.sanitizable_attributes.each do |name, rules| sanitize_attribute name, rules end end |