class Aruba::ConfigWrapper
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.
@private
Attributes
Public Class Methods
Source
# File lib/aruba/config_wrapper.rb, line 25 def initialize(config, event_bus) @config = config @event_bus = event_bus end
Create proxy
@param [Config] config
An aruba config object.
@param [#notify] event_bus
The event queue which should be notified.
Public Instance Methods
Source
# File lib/aruba/config_wrapper.rb, line 53 def ==(other) config == other end
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.
Source
# 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
Proxy all methods
If one method ends with “=”, e.g. “:option1=”, then notify the event queue, that the user changes the value of “option1”
Calls superclass method
Source
# File lib/aruba/config_wrapper.rb, line 58 def respond_to?(m) config.respond_to? m end
Pass on respond_to?-calls
Source
# File lib/aruba/config_wrapper.rb, line 43 def respond_to_missing?(name, _include_private) config.respond_to? name end
Pass on respond_to?-calls
Private Instance Methods
Source
# File lib/aruba/config_wrapper.rb, line 64 def notify(name, args) event_bus.notify( Events::ChangedConfiguration.new( changed: { name: name.to_s.gsub(/=$/, ''), value: args.first } ) ) end