Class: Configliere::Param
- Inherits:
-
ParamParent
- Object
- Hash
- DeepHash
- ParamParent
- Configliere::Param
- Defined in:
- lib/configliere/param.rb
Overview
Hash of fields to store.
Any field name beginning with 'decrypted_' automatically creates a counterpart 'encrypted_' field using the encrypt_pass.
Constant Summary collapse
- USE_HANDLERS =
{}
Constants inherited from DeepHash
Class Method Summary collapse
-
.on_use(mw, &block) ⇒ Object
Block executed when use is invoked.
Instance Method Summary collapse
-
#defaults(hsh) ⇒ Object
Incorporates the given settings.
- #extractable_options? ⇒ Boolean
-
#resolve! ⇒ Object
Finalize and validate params.
- #use(*mws) ⇒ Object
-
#validate! ⇒ Object
Check that all defined params are valid.
Methods inherited from ParamParent
Methods inherited from DeepHash
#[], #[]=, #assert_valid_keys, #compact, #compact!, #deep_delete, #deep_get, #deep_merge, #deep_merge!, #deep_set, #delete, #extract!, #fetch, #initialize, #key?, #merge, #regular_update, #regular_writer, #reverse_merge, #reverse_merge!, #slice, #slice!, #stringify_keys, #symbolize_keys, #symbolize_keys!, #to_hash, #update, #values_at
Constructor Details
This class inherits a constructor from DeepHash
Class Method Details
.on_use(mw, &block) ⇒ Object
Block executed when use is invoked
81 82 83 |
# File 'lib/configliere/param.rb', line 81 def self.on_use mw, &block USE_HANDLERS[mw] = block end |
Instance Method Details
#defaults(hsh) ⇒ Object
Incorporates the given settings. alias for deep_merge! Existing values not given in the hash
46 47 48 49 |
# File 'lib/configliere/param.rb', line 46 def defaults hsh deep_merge! hsh self end |
#extractable_options? ⇒ Boolean
85 86 87 |
# File 'lib/configliere/param.rb', line 85 def true end |
#resolve! ⇒ Object
Finalize and validate params. All include'd modules and subclasses must call super()
53 54 55 56 57 |
# File 'lib/configliere/param.rb', line 53 def resolve! super() validate! self end |
#use(*mws) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/configliere/param.rb', line 66 def use *mws hsh = mws.pop if mws.last.is_a?(Hash) Configliere.use(*mws) mws.each do |mw| if (blk = USE_HANDLERS[mw]) instance_eval(&blk) end end self.deep_merge!(hsh) if hsh self end |
#validate! ⇒ Object
Check that all defined params are valid. All include'd modules and subclasses *must*call super()
61 62 63 64 |
# File 'lib/configliere/param.rb', line 61 def validate! super() self end |