Class: ActionController::Parameters
- Inherits:
-
Object
- Object
- ActionController::Parameters
- Defined in:
- lib/belt/parameters.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #any? ⇒ Boolean
- #each ⇒ Object
- #empty? ⇒ Boolean
- #except(*keys) ⇒ Object
- #fetch(key) ⇒ Object
-
#initialize(params = {}, permitted = false) ⇒ Parameters
constructor
A new instance of Parameters.
- #key?(key) ⇒ Boolean
- #keys ⇒ Object
- #merge(other) ⇒ Object
- #permit(*filters) ⇒ Object
- #permitted? ⇒ Boolean
- #require(key) ⇒ Object
- #slice(*keys) ⇒ Object
- #to_h ⇒ Object
- #to_unsafe_h ⇒ Object
- #values ⇒ Object
Constructor Details
#initialize(params = {}, permitted = false) ⇒ Parameters
Returns a new instance of Parameters.
28 29 30 31 |
# File 'lib/belt/parameters.rb', line 28 def initialize(params = {}, permitted = false) @params = normalize_keys(params) @permitted = permitted end |
Instance Method Details
#[](key) ⇒ Object
33 34 35 |
# File 'lib/belt/parameters.rb', line 33 def [](key) @params[key.to_s] end |
#any? ⇒ Boolean
61 62 63 |
# File 'lib/belt/parameters.rb', line 61 def any? @params.any? end |
#each ⇒ Object
53 54 55 |
# File 'lib/belt/parameters.rb', line 53 def each(&) @params.each(&) end |
#empty? ⇒ Boolean
57 58 59 |
# File 'lib/belt/parameters.rb', line 57 def empty? @params.empty? end |
#except(*keys) ⇒ Object
116 117 118 |
# File 'lib/belt/parameters.rb', line 116 def except(*keys) Parameters.new(@params.except(*keys.map(&:to_s)), @permitted) end |
#fetch(key) ⇒ Object
37 38 39 |
# File 'lib/belt/parameters.rb', line 37 def fetch(key, *, &) @params.fetch(key.to_s, *, &) end |
#key?(key) ⇒ Boolean
41 42 43 |
# File 'lib/belt/parameters.rb', line 41 def key?(key) @params.key?(key.to_s) end |
#keys ⇒ Object
45 46 47 |
# File 'lib/belt/parameters.rb', line 45 def keys @params.keys end |
#merge(other) ⇒ Object
107 108 109 110 |
# File 'lib/belt/parameters.rb', line 107 def merge(other) other_hash = other.is_a?(Parameters) ? other.to_unsafe_h : other Parameters.new(@params.merge(normalize_keys(other_hash)), @permitted) end |
#permit(*filters) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/belt/parameters.rb', line 72 def permit(*filters) permitted_params = {} filters.each do |filter| case filter when Symbol, String key = filter.to_s permitted_params[key] = @params[key] if @params.key?(key) when Hash filter.each do |key, nested_filter| key = key.to_s next unless @params.key?(key) permitted_params[key] = permit_nested(@params[key], nested_filter) end end end Parameters.new(permitted_params, true) end |
#permitted? ⇒ Boolean
93 94 95 |
# File 'lib/belt/parameters.rb', line 93 def permitted? @permitted end |
#require(key) ⇒ Object
65 66 67 68 69 70 |
# File 'lib/belt/parameters.rb', line 65 def require(key) value = @params[key.to_s] raise ParameterMissing, key if value.nil? || (value.respond_to?(:empty?) && value.empty?) value.is_a?(Hash) ? Parameters.new(value) : value end |
#slice(*keys) ⇒ Object
112 113 114 |
# File 'lib/belt/parameters.rb', line 112 def slice(*keys) Parameters.new(@params.slice(*keys.map(&:to_s)), @permitted) end |
#to_h ⇒ Object
97 98 99 100 101 |
# File 'lib/belt/parameters.rb', line 97 def to_h raise UnpermittedParameters, @params.keys unless @permitted deep_to_h(@params) end |
#to_unsafe_h ⇒ Object
103 104 105 |
# File 'lib/belt/parameters.rb', line 103 def to_unsafe_h deep_to_h(@params) end |
#values ⇒ Object
49 50 51 |
# File 'lib/belt/parameters.rb', line 49 def values @params.values end |