Class: Configliere::Param

Inherits:
ParamParent show all
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

DeepHash::DEEP_MERGER

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ParamParent

#export

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

Examples:

Settings.defaults :hat => :cat, :basket => :lotion, :moon => { :man => :smiling }
Settings.defaults :basket => :tasket, :moon => { :cow => :smiling }
Config  #=> { :hat => :cat, :basket => :tasket, :moon => { :man => :smiling, :cow => :jumping } }

Parameters:

  • hsh

    the defaults to set.

Returns:

  • self



46
47
48
49
# File 'lib/configliere/param.rb', line 46

def defaults hsh
  deep_merge! hsh
  self
end

#resolve!Object

Finalize and validate params. All include'd modules and subclasses must call super()

Returns:

  • self



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()

Returns:

  • self



61
62
63
64
# File 'lib/configliere/param.rb', line 61

def validate!
  super()
  self
end