Sha256: dab5c09fd892727639f19328661ea09671c5244b4ae09404a4b250e244c5bf03
Contents?: true
Size: 715 Bytes
Versions: 5
Compression:
Stored size: 715 Bytes
Contents
module ActsAsScrubbable module Scrub def scrub! return unless self.class.scrubbable? run_callbacks(:scrub) do _updates = {} scrubbable_fields.each do |_field, value| unless self.respond_to?(_field) raise ArgumentError, "#{self.class} do not respond to #{_field}" end next if self.send(_field).blank? if ActsAsScrubbable.scrub_map.keys.include?(value) _updates[_field] = ActsAsScrubbable.scrub_map[value].call else puts "Undefined scrub: #{value} for #{self.class}#{_field}" end end self.update_columns(_updates) unless _updates.empty? end end end end
Version data entries
5 entries across 5 versions & 1 rubygems