Sha256: 1d8732007019d08ca42be25ca8d74b3595fcc9117d54c5baeb1df451a1cc754c
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
module ParamAccessible class Rules < Array def initialize parent = nil content = (parent.to_a if parent) || [] super content end def detect_inaccessible_params controller accessible_params = {} each do |rule| rule.accessible_params_for controller, accessible_params end detect_inaccessible_hash controller.params, accessible_params, [] end def push *args super Rule.new(*args) end protected def detect_inaccessible_hash hash, accessible, errors, prefix = nil hash.each do |key, value| if !accessible.has_key?(key) errors.push prefix_for(prefix, key) elsif value.is_a?(Hash) nested = accessible[key] || {} detect_inaccessible_hash value, nested, errors, prefix_for(prefix, key) elsif value.is_a?(Array) nested = accessible[key] || {} value.each do |v| if v.is_a?(Hash) detect_inaccessible_hash v, nested, errors, prefix_for(prefix, key) end end end end errors end def prefix_for prefix, key if prefix "#{prefix}[#{key}]" else key end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
param_accessible-0.0.1 | lib/param_accessible/rules.rb |