Class: RfLogger::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/rf_logger/configuration.rb

Overview

Stores configuration information

Configuration information is loaded from a configuration block defined within the client application.

Examples:

Standard settings

RfLogger.configure do |c|
  c.notification_subject = "Oh no!"
  c.set_notifier_list do |n|
    c.add_notifier Notification::DefinedElsewhere, :levels => [:error], :except => ['test', 'development']
    c.add_notifier Notification::OhNo, :levels => [:fatal, :error], :only => ['production']
    c.add_notifer Notifcation:VeryVerbose
  end
  # ...
end

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



48
49
# File 'lib/rf_logger/configuration.rb', line 48

def initialize
end

Class Method Details

.define_setting(name) ⇒ Object



20
21
22
23
# File 'lib/rf_logger/configuration.rb', line 20

def define_setting(name)
  defined_settings << name
  attr_accessor name
end

.defined_settingsObject



25
26
27
# File 'lib/rf_logger/configuration.rb', line 25

def defined_settings
  @defined_settings ||= []
end

Instance Method Details

#clear!Object



51
52
53
54
# File 'lib/rf_logger/configuration.rb', line 51

def clear!
  defined_settings.each {|setting| instance_variable_set("@#{setting}", nil)}
  ErrorNotification.reset!
end

#environmentObject



33
34
35
36
37
38
# File 'lib/rf_logger/configuration.rb', line 33

def environment
  @environment ||= begin
    raise UndefinedSetting.new('RfLogger.environment must be set') unless framework_environment
    framework_environment
  end
end

#notifiersObject



40
41
42
# File 'lib/rf_logger/configuration.rb', line 40

def notifiers
  ErrorNotification.notifiers
end

#set_notifier_list {|ErrorNotification| ... } ⇒ Object

Yields:



44
45
46
# File 'lib/rf_logger/configuration.rb', line 44

def set_notifier_list
  yield(ErrorNotification)
end