Class: CollinsNotify::Application

Inherits:
Object
  • Object
show all
Includes:
Collins::Util::Logging, ConfigurationMixin
Defined in:
lib/collins_notify/application.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ConfigurationMixin

#debug?, #error?, #fatal?, #info?, #method_missing, #sevname, #test?, #to_hash, #trace?, #warn?

Constructor Details

#initialize(lgr = nil) ⇒ Application

Returns a new instance of Application.



9
10
11
12
13
14
15
16
# File 'lib/collins_notify/application.rb', line 9

def initialize lgr = nil
  if lgr.nil? then
    @logger = get_logger :logfile => $stderr, :program => 'collins_notify'
  else
    @logger = lgr
  end
  @config = CollinsNotify::Configuration.new @logger
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class CollinsNotify::ConfigurationMixin

Instance Attribute Details

#configObject

Override ConfigMixin::#config



19
20
21
# File 'lib/collins_notify/application.rb', line 19

def config
  @config
end

#loggerObject (readonly)

Returns the value of attribute logger.



7
8
9
# File 'lib/collins_notify/application.rb', line 7

def logger
  @logger
end

Instance Method Details

#configure!(argv) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/collins_notify/application.rb', line 23

def configure! argv
  o = CollinsNotify::Options.get_instance config
  o.parse! argv
  if config.logfile then
    @logger = get_logger :logfile => config.logfile, :program => 'collins_notify'
  end
  @logger.level = config.severity
end

#notify!(message_obj = OpenStruct.new, to = nil) ⇒ Object



32
33
34
35
36
# File 'lib/collins_notify/application.rb', line 32

def notify! message_obj = OpenStruct.new, to = nil
  Timeout::timeout(config.timeout) do
    notifier.notify! message_obj, to
  end
end

#valid?Boolean

Override ConfigurationMixin#valid?

Returns:

  • (Boolean)


39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/collins_notify/application.rb', line 39

def valid?
  if config.valid? then
    begin
      @notifier = CollinsNotify::Notifier.get_adapter self
      @notifier.configure!
    rescue Exception => e
      logger.error "Error configuring #{type} notification - #{e}"
      pp e.backtrace
      return false
    end
    true
  else
    false
  end
end