Class: TraceViz::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/trace_viz/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



12
13
14
15
16
17
# File 'lib/trace_viz/configuration.rb', line 12

def initialize
  @logger = Logger.new
  @validator = Config::Validator.new
  @settings = Defaults::Config.fetch
  define_dynamic_accessors
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



9
10
11
# File 'lib/trace_viz/configuration.rb', line 9

def logger
  @logger
end

#settingsObject (readonly)

Returns the value of attribute settings.



9
10
11
# File 'lib/trace_viz/configuration.rb', line 9

def settings
  @settings
end

Instance Method Details

#[](key) ⇒ Object



19
20
21
# File 'lib/trace_viz/configuration.rb', line 19

def [](key)
  settings[key]
end

#dupObject



38
39
40
# File 'lib/trace_viz/configuration.rb', line 38

def dup
  Config::Copier.new(self).copy
end

#reset_defaultsObject



34
35
36
# File 'lib/trace_viz/configuration.rb', line 34

def reset_defaults
  @settings = Defaults::Config.fetch
end

#update(group, values) ⇒ Object

Raises:

  • (ArgumentError)


23
24
25
26
27
28
29
30
31
32
# File 'lib/trace_viz/configuration.rb', line 23

def update(group, values)
  raise ArgumentError, "Invalid configuration group: #{group}" unless settings.key?(group)

  @validator.validate(group, values)
  if settings[group].is_a?(Hash)
    settings[group].merge!(values)
  else
    settings[group] = values
  end
end