Method: Configurations::Configuration#initialize

Defined in:
lib/configurations/configuration.rb

#initialize(options = {}, &block) ⇒ Configuration

Initialize a new configuration

Parameters:

  • options (Hash) (defaults to: {})

    The options to initialize a configuration with

Options Hash (options):

  • methods (Hash)

    a hash of method names pointing to procs

  • not_configured (Proc)

    a proc to evaluate for not_configured properties



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/configurations/configuration.rb', line 21

def initialize(options = {}, &block)
  @data = Data.new(__configuration_hash__)
  @path = options.fetch(:path) { Path.new }
  @data_map = options.fetch(:data) { Maps::Data.new }

  @methods = options.fetch(:methods) { ::Hash.new }
  @method_blocks = options.fetch(:method_blocks) { Maps::Blocks.new }
  @not_configured_blocks = options.fetch(:not_configured_blocks) { Maps::Blocks.new }

  @reserved_method_validator = Validators::ReservedMethods.new
  @key_ambiguity_validator = Validators::Ambiguity.new

  __instance_eval__(&options[:defaults]) if options[:defaults]
  __instance_eval__(&block) if block

  __install_configuration_methods__
end