Class: Aruba::ConfigWrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/aruba/config_wrapper.rb

Overview

This wraps the current runtime configuration of aruba. If an option is changed, it notifies the event queue.

This class is not meant for direct use - ConfigWrapper.new - by normal users.

Instance Method Summary collapse

Constructor Details

#initialize(config, event_bus) ⇒ ConfigWrapper

Create proxy

Parameters:

  • config (Config)

    An aruba config object.

  • event_bus (#notify)

    The event queue which should be notified.



23
24
25
26
# File 'lib/aruba/config_wrapper.rb', line 23

def initialize(config, event_bus)
  @config = config
  @event_bus = event_bus
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object

Proxy all methods

If one method ends with "=", e.g. ":option1=", then notify the event queue, that the user changes the value of "option1"



32
33
34
35
36
37
38
# File 'lib/aruba/config_wrapper.rb', line 32

def method_missing(name, *args, &block)
  notify(name, args) if name.to_s.end_with?("=")

  return config.send(name, *args, &block) if config.respond_to? name

  super
end

Instance Method Details

#==(other) ⇒ Object

Compare two configs

The comparism is done based on their values. No hooks are compared.

Somehow #respond_to_missing?, method_missing? and respond_to? don't help here.



51
52
53
# File 'lib/aruba/config_wrapper.rb', line 51

def ==(other)
  config == other
end

#respond_to?(m) ⇒ Boolean

Pass on respond_to?-calls

Returns:

  • (Boolean)


56
57
58
# File 'lib/aruba/config_wrapper.rb', line 56

def respond_to?(m)
  config.respond_to? m
end

#respond_to_missing?(name, _include_private) ⇒ Boolean

Pass on respond_to?-calls

Returns:

  • (Boolean)


41
42
43
# File 'lib/aruba/config_wrapper.rb', line 41

def respond_to_missing?(name, _include_private)
  config.respond_to? name
end