shoutbox-client 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +13 -8
- data/lib/shoutbox/shout.rb +6 -4
- data/lib/shoutbox_client.rb +4 -3
- data/spec/shoutbox_client_spec.rb +10 -0
- metadata +3 -3
data/README.md
CHANGED
@@ -11,9 +11,14 @@ You can use it via ruby
|
|
11
11
|
ruby-1.9.2-p0 > ShoutboxClient.shout :name => "My Rake Task", :status => :red, :message => 'failed miserably'
|
12
12
|
true
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
ruby-1.9.2-p0 > ShoutboxClient.shout :name => "My Other Task", :status => :green, :expires_in => 1.hour
|
15
|
+
true
|
16
|
+
|
17
|
+
if you want to set an explicit name to be displayed on your shoutbox, pass the option :display_name
|
18
|
+
|
19
|
+
ruby-1.9.2-p0 > ShoutboxClient.shout :name => "My Other Task", :status => :green, :expires_in => 1.hour, :display_name => 'TOLD YOU SO!'
|
20
|
+
true
|
21
|
+
|
17
22
|
or as a shell script
|
18
23
|
|
19
24
|
benjamin@Jiji % shout green 'important task'
|
@@ -24,8 +29,7 @@ Configuration
|
|
24
29
|
The shoutbox-client will look for a ~/.shoutbox config file with a hostname and portnumber
|
25
30
|
in YAML format, like this
|
26
31
|
|
27
|
-
host:
|
28
|
-
port: 3001
|
32
|
+
host: http://shoutbox.io
|
29
33
|
auth_token: my-shoutbox-auth-token
|
30
34
|
|
31
35
|
|
@@ -33,12 +37,13 @@ Otherwise you can set the configuration manually via ruby
|
|
33
37
|
|
34
38
|
ShoutboxClient.configuration.config_file = 'some/file'
|
35
39
|
# or
|
36
|
-
ShoutboxClient.configuration.host = 'shoutbox.moviepilot.com'
|
37
|
-
ShoutboxClient.configuration.port = 80
|
40
|
+
ShoutboxClient.configuration.host = 'http://shoutbox.moviepilot.com:991'
|
38
41
|
|
39
42
|
The shell script accepts host and port parameters
|
40
43
|
|
41
|
-
benjamin@Jiji % shout red important-task -h shoutbox.moviepilot.com
|
44
|
+
benjamin@Jiji % shout red important-task "failed!" -h "http://shoutbox.moviepilot.com"
|
45
|
+
|
46
|
+
Try shout --help for all the options
|
42
47
|
|
43
48
|
|
44
49
|
Contributing to shoutbox-client
|
data/lib/shoutbox/shout.rb
CHANGED
@@ -28,10 +28,11 @@ shout remove db-export
|
|
28
28
|
shout allows the folling options:
|
29
29
|
EOS
|
30
30
|
opt :host, "The hostname of the Shoutbox", :type => String
|
31
|
-
opt :port, "The port of the Shoutbox", :type => Integer
|
32
31
|
opt :proxy_host, "The proxy host to use", :type => String
|
33
32
|
opt :proxy_port, "The proxy port to use", :type => Integer
|
34
33
|
opt :group, "The group to use", :type => String
|
34
|
+
opt :display, "The display name", :type => String
|
35
|
+
opt :auth_token, "The auth-token to use", :type => String
|
35
36
|
opt :expires_in, "Number of seconds this status should expire in", :type => Integer
|
36
37
|
end
|
37
38
|
|
@@ -54,12 +55,13 @@ EOS
|
|
54
55
|
|
55
56
|
Trollop::die "provide <status> and <name>" unless @conf[:status] and @conf[:name]
|
56
57
|
|
57
|
-
ShoutboxClient.configuration.host
|
58
|
-
ShoutboxClient.configuration.port
|
58
|
+
ShoutboxClient.configuration.host = @conf[:host] if @conf[:host]
|
59
|
+
ShoutboxClient.configuration.port = @conf[:port] if @conf[:port]
|
60
|
+
ShoutboxClient.configuration.auth_token = @conf[:auth_token] if @conf[:auth_token]
|
59
61
|
end
|
60
62
|
|
61
63
|
def do_it
|
62
|
-
ShoutboxClient.shout :name => @conf[:name], :status => @conf[:status], :group => @conf[:group], :message => @conf[:message], :expires_in => @conf[:expires_in]
|
64
|
+
ShoutboxClient.shout :name => @conf[:name], :status => @conf[:status], :group => @conf[:group], :message => @conf[:message], :expires_in => @conf[:expires_in], :display_name => @conf[:display]
|
63
65
|
end
|
64
66
|
end
|
65
67
|
end
|
data/lib/shoutbox_client.rb
CHANGED
@@ -32,8 +32,9 @@ class ShoutboxClient
|
|
32
32
|
req = Net::HTTP::Put.new( request_url(options) )
|
33
33
|
default_headers(req)
|
34
34
|
body_data = { :name => options[:name], :group => (options[:group] || configuration.default_group), :status => options[:status].to_s }
|
35
|
-
body_data[:message]
|
36
|
-
body_data[:expires_in]
|
35
|
+
body_data[:message] = options[:message] if options[:message]
|
36
|
+
body_data[:expires_in] = options[:expires_in] if options[:expires_in]
|
37
|
+
body_data[:display_name] = options[:display_name] if options[:display_name]
|
37
38
|
raise ArgumentError if (options[:status] == :red or options[:status] == :yellow) and body_data[:message].to_s.empty?
|
38
39
|
req.body = body_data.to_json
|
39
40
|
http.request(req)
|
@@ -73,4 +74,4 @@ class ShoutboxClient
|
|
73
74
|
def self.valid_status?( status )
|
74
75
|
VALID_STATUS.keys.include?( status.to_s )
|
75
76
|
end
|
76
|
-
end
|
77
|
+
end
|
@@ -79,6 +79,16 @@ describe "ShoutboxClient" do
|
|
79
79
|
ShoutboxClient.shout( :name => "test_status", :status => :red, :message => "This is what you should do now.." ).should == true
|
80
80
|
end
|
81
81
|
|
82
|
+
it 'should contain the display name when option given' do
|
83
|
+
stub_request(:put, "http://shoutbox.io/status").
|
84
|
+
with(:body => "{\"name\":\"test_status\",\"group\":\"my_group\",\"status\":\"green\",\"display_name\":\"I TOLD YOU SO!\"}",
|
85
|
+
:headers => {'Accept'=>'application/json', 'User-Agent'=>'Ruby shoutbox-client', 'X-Shoutbox-Auth-Token' => 'invalid-auth-token'}).
|
86
|
+
to_return(:status => 200, :body => "OK", :headers => {})
|
87
|
+
|
88
|
+
ShoutboxClient.shout( :group => "my_group", :name => "test_status", :status => :green, :display_name => 'I TOLD YOU SO!' ).should == true
|
89
|
+
|
90
|
+
end
|
91
|
+
|
82
92
|
it 'should include an expiration time when given' do
|
83
93
|
stub_request(:put, "http://shoutbox.io/status").
|
84
94
|
with(:body => "{\"name\":\"test_status\",\"group\":\"Home\",\"status\":\"green\",\"expires_in\":3600}",
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: shoutbox-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Benjamin Krause
|
@@ -10,7 +10,7 @@ autorequire: shoutbox_client
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-18 00:00:00 +02:00
|
14
14
|
default_executable: shout
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -111,7 +111,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
111
|
requirements:
|
112
112
|
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
|
-
hash:
|
114
|
+
hash: 2560211999808166080
|
115
115
|
segments:
|
116
116
|
- 0
|
117
117
|
version: "0"
|