Class: Cinch::Configuration
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- Cinch::Configuration
- Defined in:
- lib/cinch/configuration.rb,
lib/cinch/configuration/bot.rb,
lib/cinch/configuration/dcc.rb,
lib/cinch/configuration/ssl.rb,
lib/cinch/configuration/sasl.rb,
lib/cinch/configuration/plugins.rb,
lib/cinch/configuration/timeouts.rb
Overview
Defined Under Namespace
Classes: Bot, DCC, Plugins, SASL, SSL, Timeouts
Constant Summary collapse
- KNOWN_OPTIONS =
[]
Class Method Summary collapse
-
.default_config ⇒ Hash
Generate a default configuration.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
-
#initialize(base = nil) ⇒ Configuration
constructor
A new instance of Configuration.
-
#load(new_config, from_default = false) ⇒ void
Loads a configuration from a hash by merging the hash with either the current configuration or the default configuration.
-
#load!(new_config) ⇒ void
Like #load but always uses the default configuration.
- #to_h ⇒ Hash
Constructor Details
#initialize(base = nil) ⇒ Configuration
Returns a new instance of Configuration.
15 16 17 18 |
# File 'lib/cinch/configuration.rb', line 15 def initialize(base = nil) base ||= self.class.default_config super(base) end |
Class Method Details
.default_config ⇒ Hash
Generate a default configuration.
11 12 13 |
# File 'lib/cinch/configuration.rb', line 11 def self.default_config {} end |
Instance Method Details
#[](key) ⇒ Object
25 26 27 28 29 |
# File 'lib/cinch/configuration.rb', line 25 def [](key) # FIXME also adjust method_missing raise ArgumentError, "Unknown option #{key}" unless self.class::KNOWN_OPTIONS.include?(key) @table[key] end |
#[]=(key, value) ⇒ Object
31 32 33 34 35 |
# File 'lib/cinch/configuration.rb', line 31 def []=(key, value) # FIXME also adjust method_missing raise ArgumentError, "Unknown option #{key}" unless self.class::KNOWN_OPTIONS.include?(key) modifiable[new_ostruct_member(key)] = value end |
#load(new_config, from_default = false) ⇒ void
This method returns an undefined value.
Loads a configuration from a hash by merging the hash with either the current configuration or the default configuration.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/cinch/configuration.rb', line 46 def load(new_config, from_default = false) if from_default @table = self.class.default_config end new_config.each do |option, value| if value.is_a?(Hash) if self[option].is_a?(Configuration) self[option].load(value) else # recursive merging is handled by subclasses like # Configuration::Plugins self[option] = value end else self[option] = value end end end |
#load!(new_config) ⇒ void
This method returns an undefined value.
Like #load but always uses the default configuration
71 72 73 |
# File 'lib/cinch/configuration.rb', line 71 def load!(new_config) load(new_config, true) end |
#to_h ⇒ Hash
21 22 23 |
# File 'lib/cinch/configuration.rb', line 21 def to_h @table.clone end |