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

Version Path
acts_as_scrubbable-1.1.1 lib/acts_as_scrubbable/scrub.rb
acts_as_scrubbable-1.1.0 lib/acts_as_scrubbable/scrub.rb
acts_as_scrubbable-1.0.2 lib/acts_as_scrubbable/scrub.rb
acts_as_scrubbable-1.0.1 lib/acts_as_scrubbable/scrub.rb
acts_as_scrubbable-1.0.0 lib/acts_as_scrubbable/scrub.rb