blabber 0.1.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/blabber.rb +15 -77
- data/lib/blabber/campfire.rb +36 -0
- data/lib/blabber/channel.rb +19 -0
- data/lib/blabber/console.rb +24 -0
- data/lib/blabber/email.rb +7 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YTIyYzQwOGE1YmQwNzUxY2U0YmY3MGU1ODE3MjIwYWY2YjAwMWI3ZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjRjNTFmOTg0Y2UyZWQwNDBlZjRhMjc0YjI0YTAwMDQzYjVkMGE4Yg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzhlMjMzZDBiMWY5NmMzZGI5OTIwMWI0ZDI2YmExNjk5YTVlMTIyYjkwYTNl
|
10
|
+
YTYxMTYyNzc4ODg2MWI3ZTkyYzE3MzkyMzNlNTAwMGFlMDhhZTdkZjhhNzkw
|
11
|
+
MDVmZGNlNDJlMGJiYzY4YzRiNjA0ZTVhZjhiZjNmOTM5MzQ5ZDY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzY2ZDc3OWM3YTQyZTQ2Yzg4Njc4ZjE1ZDNkNmFhNjRjOWE4MTkyMTdiNzQ0
|
14
|
+
ZGJiZWFlZTc4Y2QwZGI3ZTAwNmZhNmQ0Y2MwMWRjNDc1N2Y5YzIzMTQyOTY1
|
15
|
+
Mjg5ZDEyZmU5OWUxNGFkZjc0Y2NhYTIxZDlmMjc4MTAyNTAzNzk=
|
data/lib/blabber.rb
CHANGED
@@ -1,88 +1,26 @@
|
|
1
|
+
require 'blabber/console'
|
2
|
+
require 'blabber/campfire'
|
3
|
+
|
1
4
|
module Blabber
|
2
5
|
|
3
6
|
class Blabber
|
4
7
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
def initialize(account, token, room, loglevel)
|
12
|
-
|
13
|
-
if account.nil? || token.nil? || room.nil? || loglevel.nil?
|
14
|
-
@@settings = { "campfire" => { "enabled" => false } }
|
15
|
-
else
|
16
|
-
@@settings = {
|
17
|
-
"campfire" => {
|
18
|
-
"enabled" => true,
|
19
|
-
"account" => account,
|
20
|
-
"token" => token,
|
21
|
-
"room" => room,
|
22
|
-
"loglevel" => loglevel
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
Broach.settings = {
|
27
|
-
'account' => @@settings['campfire']['account'],
|
28
|
-
'token' => @@settings['campfire']['token'],
|
29
|
-
'use_ssl' => true
|
30
|
-
}
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
def debug(message)
|
36
|
-
console message
|
37
|
-
if @@settings['campfire']['enabled'] && loglevelnumeric <= @@level['DEBUG']
|
38
|
-
speak(message)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def info(message)
|
43
|
-
console message
|
44
|
-
if @@settings['campfire']['enabled'] && loglevelnumeric <= @@level['INFO']
|
45
|
-
speak(message)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def warn(message)
|
50
|
-
console message
|
51
|
-
if @@settings['campfire']['enabled'] && loglevelnumeric <= @@level['WARN']
|
52
|
-
speak(message)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def error(message)
|
57
|
-
console message
|
58
|
-
if @@settings['campfire']['enabled'] && loglevelnumeric <= @@level['ERROR']
|
59
|
-
speak(message)
|
8
|
+
def initialize(opts)
|
9
|
+
@channels = opts.keys.map do |channel_name|\
|
10
|
+
class_object = channel_name.split("::").inject(Object) do |acc, component|
|
11
|
+
acc.const_get(component)
|
12
|
+
end
|
13
|
+
class_object.new(opts[channel_name])
|
60
14
|
end
|
61
15
|
end
|
62
16
|
|
63
|
-
def
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
def speak(message)
|
68
|
-
opts = {}
|
69
|
-
if message.gsub(/\n|\r/, "") != message
|
70
|
-
opts[:type] = :paste
|
71
|
-
end
|
72
|
-
|
73
|
-
Broach.speak(@@settings['campfire']['room'], message, opts)
|
74
|
-
end
|
17
|
+
def method_missing(method_name, *args)
|
18
|
+
process_message(args[0], method_name.to_s.upcase, args[1])
|
19
|
+
end
|
75
20
|
|
76
|
-
def
|
77
|
-
|
78
|
-
|
79
|
-
return 0
|
80
|
-
when "INFO"
|
81
|
-
return 1
|
82
|
-
when "WARN"
|
83
|
-
return 2
|
84
|
-
when "ERROR"
|
85
|
-
return 3
|
21
|
+
def process_message(message, loglevel, opts)
|
22
|
+
@channels.each do |channel|
|
23
|
+
channel.emit(message, loglevel, opts)
|
86
24
|
end
|
87
25
|
end
|
88
26
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'blabber/channel'
|
2
|
+
|
3
|
+
module Blabber
|
4
|
+
|
5
|
+
class Campfire
|
6
|
+
|
7
|
+
include Channel
|
8
|
+
attr_reader :opts
|
9
|
+
|
10
|
+
require "broach"
|
11
|
+
|
12
|
+
def initialize(opts)
|
13
|
+
@opts = opts
|
14
|
+
Broach.settings = @opts.keys.inject({'use_ssl' => true}) do |acc, key|
|
15
|
+
if(['account', 'token'].include?(key))
|
16
|
+
acc[key] = @opts[key]
|
17
|
+
end
|
18
|
+
acc
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def loglevels
|
23
|
+
@opts['loglevels']
|
24
|
+
end
|
25
|
+
|
26
|
+
def speak(message, loglevel, opts)
|
27
|
+
msg_opts = {}
|
28
|
+
if message.gsub(/\n|\r/, "") != message
|
29
|
+
msg_opts[:type] = :paste
|
30
|
+
end
|
31
|
+
Broach.speak(@opts['room'], message, msg_opts)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Blabber
|
2
|
+
|
3
|
+
module Channel
|
4
|
+
|
5
|
+
|
6
|
+
def emit(message, loglevel, opts = nil)
|
7
|
+
if should_emit(loglevel)
|
8
|
+
speak(message, loglevel, opts)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def should_emit(loglevel)
|
14
|
+
loglevels.include?(loglevel)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'blabber/channel'
|
2
|
+
|
3
|
+
module Blabber
|
4
|
+
|
5
|
+
class Console
|
6
|
+
|
7
|
+
include Channel
|
8
|
+
attr_reader :opts
|
9
|
+
|
10
|
+
def initialize(opts)
|
11
|
+
@opts = opts
|
12
|
+
end
|
13
|
+
|
14
|
+
def loglevels
|
15
|
+
@opts['loglevels']
|
16
|
+
end
|
17
|
+
|
18
|
+
def speak(message, loglevel, opts)
|
19
|
+
puts message
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blabber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Picazo
|
@@ -31,6 +31,10 @@ extensions: []
|
|
31
31
|
extra_rdoc_files: []
|
32
32
|
files:
|
33
33
|
- lib/blabber.rb
|
34
|
+
- lib/blabber/channel.rb
|
35
|
+
- lib/blabber/console.rb
|
36
|
+
- lib/blabber/campfire.rb
|
37
|
+
- lib/blabber/email.rb
|
34
38
|
homepage: https://github.com/ppicazo/blabber
|
35
39
|
licenses:
|
36
40
|
- New BSD License
|