Class: Configurable
- Inherits:
-
Object
- Object
- Configurable
- Defined in:
- lib/app.rb
Overview
Provides configuration via superclass. Inherit from Configurable, and you have a handy little DSL/class for assigning/accessing your app settings.
class App < Configurable
config.launched_at = Time.now.utc
end
App.launched_at # => 2010-02-21 12:34:56 UTC
Configurable classes will warn you when you call undefined settings.
App.typo # => nil
warning: undefined setting `typo' for App:Class
If you don’t care about these warnings, just redefine the logger.
App.configure do
config.logger = Logger.new nil
end
Direct Known Subclasses
Defined Under Namespace
Classes: Plugin
Class Method Summary collapse
- .[](key) ⇒ Object
- .inspect ⇒ Object
- .logger ⇒ Object
- .respond_to_missing?(method_sym, include_private = false) ⇒ Boolean
Class Method Details
.[](key) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/app.rb', line 27 def [](key) config.respond_to? key or logger.warn "warning: undefined setting `#{key}' for #{name}:Class" config.send key end |
.inspect ⇒ Object
34 35 36 |
# File 'lib/app.rb', line 34 def inspect config.inspect.sub config.class.name, name end |
.logger ⇒ Object
38 39 40 41 42 43 |
# File 'lib/app.rb', line 38 def logger return config.logger if config.respond_to? :logger return @logger if defined? @logger @logger ||= Rails.logger if defined? Rails @logger ||= Logger.new STDERR end |
.respond_to_missing?(method_sym, include_private = false) ⇒ Boolean
45 46 47 |
# File 'lib/app.rb', line 45 def respond_to_missing?(method_sym, include_private = false) config.respond_to?(method_sym.to_s.gsub(/\?$/, ''), include_private) || super end |