Class: Reins::Parameters
- Inherits:
-
Object
- Object
- Reins::Parameters
- Defined in:
- lib/reins/parameters.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #each ⇒ Object
- #empty? ⇒ Boolean
-
#initialize(hash = {}) ⇒ Parameters
constructor
A new instance of Parameters.
- #key?(key) ⇒ Boolean
- #keys ⇒ Object
- #merge(other) ⇒ Object
- #permit(*keys) ⇒ Object
- #require(key) ⇒ Object
- #to_h ⇒ Object (also: #to_hash)
Constructor Details
#initialize(hash = {}) ⇒ Parameters
Returns a new instance of Parameters.
5 6 7 |
# File 'lib/reins/parameters.rb', line 5 def initialize(hash = {}) @hash = hash.transform_keys(&:to_s) end |
Instance Method Details
#[](key) ⇒ Object
21 22 23 |
# File 'lib/reins/parameters.rb', line 21 def [](key) wrap(@hash[key.to_s]) end |
#[]=(key, value) ⇒ Object
25 26 27 |
# File 'lib/reins/parameters.rb', line 25 def []=(key, value) @hash[key.to_s] = value end |
#each ⇒ Object
41 |
# File 'lib/reins/parameters.rb', line 41 def each(&) = @hash.each(&) |
#empty? ⇒ Boolean
42 |
# File 'lib/reins/parameters.rb', line 42 def empty? = @hash.empty? |
#key?(key) ⇒ Boolean
39 |
# File 'lib/reins/parameters.rb', line 39 def key?(key) = @hash.key?(key.to_s) |
#keys ⇒ Object
40 |
# File 'lib/reins/parameters.rb', line 40 def keys = @hash.keys |
#merge(other) ⇒ Object
29 30 31 32 |
# File 'lib/reins/parameters.rb', line 29 def merge(other) other_hash = other.respond_to?(:to_h) ? other.to_h : other Parameters.new(@hash.merge(other_hash.transform_keys(&:to_s))) end |
#permit(*keys) ⇒ Object
16 17 18 19 |
# File 'lib/reins/parameters.rb', line 16 def permit(*keys) allowed = keys.map(&:to_s) Parameters.new(@hash.slice(*allowed)) end |
#require(key) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/reins/parameters.rb', line 9 def require(key) value = @hash[key.to_s] raise ParameterMissing, "param is missing or the value is empty: #{key}" if blank?(value) wrap(value) end |
#to_h ⇒ Object Also known as: to_hash
34 35 36 |
# File 'lib/reins/parameters.rb', line 34 def to_h @hash.dup end |