klogger 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,28 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
19
+
20
+ .jbundler
21
+ Jarfile.lock
22
+ Gemfile.lock
23
+
24
+ # Build directory
25
+ klogger/
26
+
27
+ # Config file
28
+ klogger.yml
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Jarfile ADDED
@@ -0,0 +1,2 @@
1
+ jar 'com.ning.billing:killbill-api', '0.1.48'
2
+ jar 'com.ning.billing:killbill-util:tests', '0.1.48'
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ killbill-logging-plugin
2
+ =======================
3
+
4
+ Plugin to log Killbill events
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env rake
2
+
3
+ # Install tasks to build and release the plugin
4
+ require 'bundler/setup'
5
+ Bundler::GemHelper.install_tasks
6
+
7
+ # Install test tasks
8
+ require 'rspec/core/rake_task'
9
+ desc "Run RSpec"
10
+ RSpec::Core::RakeTask.new
11
+
12
+ # Install tasks to package the plugin for Killbill
13
+ require 'killbill/rake_task'
14
+ Killbill::PluginHelper.install_tasks
15
+
16
+ # Run tests by default
17
+ task :default => :spec
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
@@ -0,0 +1,2 @@
1
+ mainClass=Klogger::KloggerPlugin
2
+ pluginType=NOTIFICATION
data/klogger.gemspec ADDED
@@ -0,0 +1,31 @@
1
+ version = File.read(File.expand_path('../VERSION', __FILE__)).strip
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'klogger'
5
+ s.version = version
6
+ s.summary = 'Plugin to log Killbill events.'
7
+ s.description = 'Log all events generated by Killbill.'
8
+
9
+ s.required_ruby_version = '>= 1.9.3'
10
+
11
+ s.license = 'Apache License (2.0)'
12
+
13
+ s.author = 'Killbill core team'
14
+ s.email = 'killbilling-users@googlegroups.com'
15
+ s.homepage = 'http://www.killbilling.org'
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.bindir = 'bin'
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+
23
+ s.rdoc_options << '--exclude' << '.'
24
+
25
+ s.add_dependency 'killbill', '~> 1.0.0'
26
+ s.add_dependency 'cinch', '~> 2.0.3'
27
+
28
+ s.add_development_dependency 'jbundler', '~> 0.4.1'
29
+ s.add_development_dependency 'rake', '>= 10.0.0'
30
+ s.add_development_dependency 'rspec', '~> 2.12.0'
31
+ end
data/lib/klogger.rb ADDED
@@ -0,0 +1,58 @@
1
+ require 'logger'
2
+ require 'psych'
3
+
4
+ require 'killbill'
5
+
6
+ require 'klogger/base'
7
+ require 'klogger/irc'
8
+ require 'klogger/syslog'
9
+
10
+ MODULES = {
11
+ :irc => Klogger::IRC,
12
+ :syslog => Klogger::Syslog
13
+ }
14
+
15
+ ENABLED_MODULES = []
16
+
17
+ LOG = Logger.new(STDOUT)
18
+ LOG.level = Logger::INFO
19
+
20
+ # Parse the config file
21
+ begin
22
+ CONFIG = Psych.load_file('klogger.yml')
23
+ rescue Errno::ENOENT
24
+ LOG.warn 'Unable to find the config file klogger.yml'
25
+ CONFIG = {}
26
+ end
27
+
28
+ # Instantiate each module
29
+ CONFIG.each do |kmodule, config|
30
+ next unless config['enabled']
31
+
32
+ module_klass = MODULES[kmodule.to_sym]
33
+ next unless module_klass
34
+
35
+ LOG.info "Module #{module_klass} enabled"
36
+ ENABLED_MODULES << module_klass.send('new', config)
37
+ end
38
+
39
+ # Killbill plugin, which dispatches to all klogger modules
40
+ module Klogger
41
+ class KloggerPlugin < Killbill::Plugin::Notification
42
+
43
+ def start_plugin
44
+ ENABLED_MODULES.each { |m| m.start_plugin rescue nil }
45
+ super
46
+ end
47
+
48
+ def on_event(event)
49
+ ENABLED_MODULES.each { |m| m.on_event(event) rescue nil }
50
+ end
51
+
52
+ def stop_plugin
53
+ super
54
+ ENABLED_MODULES.each { |m| m.stop_plugin rescue nil }
55
+ end
56
+
57
+ end
58
+ end
@@ -0,0 +1,10 @@
1
+ require 'bundler'
2
+ require 'klogger'
3
+
4
+ require 'rspec'
5
+
6
+ RSpec.configure do |config|
7
+ config.color_enabled = true
8
+ config.tty = true
9
+ config.formatter = 'documentation'
10
+ end
metadata ADDED
@@ -0,0 +1,147 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: klogger
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.0.0
6
+ platform: ruby
7
+ authors:
8
+ - Killbill core team
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: killbill
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: 1.0.0
21
+ none: false
22
+ requirement: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
27
+ none: false
28
+ prerelease: false
29
+ type: :runtime
30
+ - !ruby/object:Gem::Dependency
31
+ name: cinch
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ~>
35
+ - !ruby/object:Gem::Version
36
+ version: 2.0.3
37
+ none: false
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ version: 2.0.3
43
+ none: false
44
+ prerelease: false
45
+ type: :runtime
46
+ - !ruby/object:Gem::Dependency
47
+ name: jbundler
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ~>
51
+ - !ruby/object:Gem::Version
52
+ version: 0.4.1
53
+ none: false
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ version: 0.4.1
59
+ none: false
60
+ prerelease: false
61
+ type: :development
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: 10.0.0
69
+ none: false
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: 10.0.0
75
+ none: false
76
+ prerelease: false
77
+ type: :development
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ~>
83
+ - !ruby/object:Gem::Version
84
+ version: 2.12.0
85
+ none: false
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: 2.12.0
91
+ none: false
92
+ prerelease: false
93
+ type: :development
94
+ description: Log all events generated by Killbill.
95
+ email: killbilling-users@googlegroups.com
96
+ executables: []
97
+ extensions: []
98
+ extra_rdoc_files: []
99
+ files:
100
+ - .gitignore
101
+ - Gemfile
102
+ - Jarfile
103
+ - README.md
104
+ - Rakefile
105
+ - VERSION
106
+ - killbill.properties
107
+ - klogger.gemspec
108
+ - lib/klogger.rb
109
+ - lib/klogger/base.rb
110
+ - lib/klogger/irc.rb
111
+ - lib/klogger/syslog.rb
112
+ - spec/klogger/integration_spec.rb
113
+ - spec/spec_helper.rb
114
+ homepage: http://www.killbilling.org
115
+ licenses:
116
+ - Apache License (2.0)
117
+ post_install_message:
118
+ rdoc_options:
119
+ - --exclude
120
+ - .
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: 1.9.3
128
+ none: false
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ segments:
134
+ - 0
135
+ hash: 2
136
+ version: !binary |-
137
+ MA==
138
+ none: false
139
+ requirements: []
140
+ rubyforge_project:
141
+ rubygems_version: 1.8.24
142
+ signing_key:
143
+ specification_version: 3
144
+ summary: Plugin to log Killbill events.
145
+ test_files:
146
+ - spec/klogger/integration_spec.rb
147
+ - spec/spec_helper.rb