lib/scrub_params.rb in scrub_params-0.0.1 vs lib/scrub_params.rb in scrub_params-0.0.2
- old
+ new
@@ -1,57 +1,15 @@
require "scrub_params/version"
+require "active_support/hash_with_indifferent_access"
require "action_controller"
require "sanitize"
+require "scrub_params/parameters"
+require "scrub_params/controller"
require "scrub_params/log_subscriber"
-module ActionController
- class Parameters < ActiveSupport::HashWithIndifferentAccess
- attr_accessor :scrubbed_keys
-
- def scrub!
- self.scrubbed_keys = []
- each_pair do |k, v|
- self[k] = scrub_value(k, v)
- end
- if scrubbed_keys.any?
- ActiveSupport::Notifications.instrument("scrubbed_parameters.action_controller", keys: scrubbed_keys)
- end
- self
- end
-
- protected
-
- def scrub_value(key, value)
- case value
- when Hash
- h = {}
- value.each do |k, v|
- h[k] = scrub_value(k, v)
- end
- h
- when Array
- value.map{|v| scrub_value(key, v) }
- when String
- scrubbed_value = Sanitize.clean(value)
- if scrubbed_value != value
- self.scrubbed_keys << key unless scrubbed_keys.include?(key)
- end
- scrubbed_value
- else
- value
- end
- end
-
- end
+if defined?(ActionController::Parameters)
+ ActionController::Parameters.send :include, ScrubParams::Parameters
+else
+ ActiveSupport::HashWithIndifferentAccess.send :include, ScrubParams::Parameters
end
-module ActionController
- class Base
- protected
-
- before_filter :scrub_params
-
- def scrub_params
- params.scrub!
- end
- end
-end
+ActionController::Base.send :include, ScrubParams::Controller