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.



25
26
27
28
# File 'lib/aruba/config_wrapper.rb', line 25

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”



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

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.



53
54
55
# File 'lib/aruba/config_wrapper.rb', line 53

def ==(other)
  config == other
end

#respond_to?(m) ⇒ Boolean

Pass on respond_to?-calls

Returns:

  • (Boolean)


58
59
60
# File 'lib/aruba/config_wrapper.rb', line 58

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

#respond_to_missing?(name, _include_private) ⇒ Boolean

Pass on respond_to?-calls

Returns:

  • (Boolean)


43
44
45
# File 'lib/aruba/config_wrapper.rb', line 43

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