bunnish 0.0.1 → 0.0.2
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.rdoc +49 -1
- data/VERSION +1 -1
- data/bin/bunnish +14 -5
- data/bunnish.gemspec +84 -0
- data/lib/bunnish/{count.rb → command/count.rb} +1 -4
- data/lib/bunnish/command/delete.rb +58 -0
- data/lib/bunnish/{help.rb → command/help.rb} +3 -1
- data/lib/bunnish/{publish.rb → command/publish.rb} +4 -5
- data/lib/bunnish/{status.rb → command/status.rb} +5 -10
- data/lib/bunnish/{subscribe.rb → command/subscribe.rb} +4 -3
- data/lib/bunnish/command.rb +6 -0
- data/lib/bunnish.rb +6 -10
- data/spec/bin/bunnish_spec.rb +75 -0
- data/spec/lib/bunnish/command/count_spec.rb +11 -0
- data/spec/lib/bunnish/command/delete_spec.rb +11 -0
- data/spec/lib/bunnish/command/help_spec.rb +12 -0
- data/spec/lib/bunnish/command/publish_spec.rb +11 -0
- data/spec/lib/bunnish/command/status_spec.rb +11 -0
- data/spec/lib/bunnish/command/subscribe_spec.rb +11 -0
- data/spec/lib/bunnish_spec.rb +70 -0
- data/spec/spec_helper.rb +11 -2
- metadata +35 -25
- data/spec/bunnish_spec.rb +0 -4
data/README.rdoc
CHANGED
@@ -1,6 +1,54 @@
|
|
1
1
|
= bunnish
|
2
2
|
|
3
|
-
|
3
|
+
'bunnish' is a command for AMQP access to message queue.
|
4
|
+
|
5
|
+
== Supported Ruby versions and implementations
|
6
|
+
bunnish should work identically on:
|
7
|
+
|
8
|
+
* Ruby 1.9.3+
|
9
|
+
* Ruby 1.9.2+
|
10
|
+
* Ruby 1.8.7+
|
11
|
+
|
12
|
+
== Install
|
13
|
+
|
14
|
+
You can install bunnish by gem.
|
15
|
+
gem install bunnish
|
16
|
+
|
17
|
+
== Usage
|
18
|
+
|
19
|
+
Publish messages:
|
20
|
+
$ cat messages.txt
|
21
|
+
foo
|
22
|
+
bar
|
23
|
+
baz
|
24
|
+
$ cat messages.txt | bunnish publish -h mq-server -p 5672 test-queue
|
25
|
+
[2012-12-08 20:33:33](INFO) create direct exchange 'test-queue'
|
26
|
+
[2012-12-08 20:33:33](INFO) create queue 'test-queue'
|
27
|
+
[2012-12-08 20:33:33](INFO) bind queue 'test-queue' to direct exchange 'test-queue'
|
28
|
+
[2012-12-08 20:33:33](INFO) publish to test-queue(0 messages, 0 consumers)
|
29
|
+
[2012-12-08 20:33:33](INFO) published 3 messages into test-queue(3 messages, 0 consumers)
|
30
|
+
|
31
|
+
Check queue status:
|
32
|
+
$ bunnish status -h mq-server -p 5672 test-queue
|
33
|
+
test-queue : 3 messages, 0 consumers
|
34
|
+
|
35
|
+
Get queue count:
|
36
|
+
$ bunnish count -h mq-server -p 5672 test-queue
|
37
|
+
3
|
38
|
+
|
39
|
+
Subscribe from queue:
|
40
|
+
$ bunnish subscribe -h mq-server -p 5672 test-queue
|
41
|
+
[2012-12-08 20:35:57](INFO) subscribe from test-queue(3 messages, 0 consumers)
|
42
|
+
foo
|
43
|
+
bar
|
44
|
+
baz
|
45
|
+
[2012-12-08 20:35:58](INFO) subscribed 3 messages from test-queue(0 messages, 0 consumers)
|
46
|
+
$ bunnish status -h mq-server -p 5672 test-queue
|
47
|
+
1 queue is empty:
|
48
|
+
test-queue
|
49
|
+
|
50
|
+
Read help:
|
51
|
+
$ bunnish help
|
4
52
|
|
5
53
|
== Contributing to bunnish
|
6
54
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/bin/bunnish
CHANGED
@@ -4,15 +4,24 @@ require "bunnish"
|
|
4
4
|
|
5
5
|
command = ARGV.shift
|
6
6
|
|
7
|
+
exit_code = 0
|
8
|
+
|
7
9
|
case command
|
8
10
|
when "count"
|
9
|
-
Bunnish::Count.run(ARGV)
|
11
|
+
exit_code = Bunnish::Command::Count.run(ARGV) || 0
|
12
|
+
when "delete"
|
13
|
+
exit_code = Bunnish::Command::Delete.run(ARGV) || 0
|
10
14
|
when "help"
|
11
|
-
Bunnish::Help.run(ARGV)
|
15
|
+
exit_code = Bunnish::Command::Help.run(ARGV) || 0
|
12
16
|
when "publish"
|
13
|
-
Bunnish::Publish.run(ARGV)
|
17
|
+
exit_code = Bunnish::Command::Publish.run(ARGV) || 0
|
14
18
|
when "status"
|
15
|
-
Bunnish::Status.run(ARGV)
|
19
|
+
exit_code = Bunnish::Command::Status.run(ARGV) || 0
|
16
20
|
when "subscribe"
|
17
|
-
Bunnish::Subscribe.run(ARGV)
|
21
|
+
exit_code = Bunnish::Command::Subscribe.run(ARGV) || 0
|
22
|
+
else
|
23
|
+
STDERR.puts "invalid command: '#{command}'"
|
24
|
+
exit_code = 1
|
18
25
|
end
|
26
|
+
|
27
|
+
exit exit_code
|
data/bunnish.gemspec
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "bunnish"
|
8
|
+
s.version = "0.0.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Kenji Hara"]
|
12
|
+
s.date = "2012-12-08"
|
13
|
+
s.description = "Command for AMQP access to Message Queue."
|
14
|
+
s.email = "haracane@gmail.com"
|
15
|
+
s.executables = ["bunnish"]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"LICENSE.txt",
|
18
|
+
"README.rdoc"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".document",
|
22
|
+
".rspec",
|
23
|
+
"Gemfile",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"bin/bunnish",
|
29
|
+
"bunnish.gemspec",
|
30
|
+
"lib/bunnish.rb",
|
31
|
+
"lib/bunnish/command.rb",
|
32
|
+
"lib/bunnish/command/count.rb",
|
33
|
+
"lib/bunnish/command/delete.rb",
|
34
|
+
"lib/bunnish/command/help.rb",
|
35
|
+
"lib/bunnish/command/publish.rb",
|
36
|
+
"lib/bunnish/command/status.rb",
|
37
|
+
"lib/bunnish/command/subscribe.rb",
|
38
|
+
"spec/bin/bunnish_spec.rb",
|
39
|
+
"spec/lib/bunnish/command/count_spec.rb",
|
40
|
+
"spec/lib/bunnish/command/delete_spec.rb",
|
41
|
+
"spec/lib/bunnish/command/help_spec.rb",
|
42
|
+
"spec/lib/bunnish/command/publish_spec.rb",
|
43
|
+
"spec/lib/bunnish/command/status_spec.rb",
|
44
|
+
"spec/lib/bunnish/command/subscribe_spec.rb",
|
45
|
+
"spec/lib/bunnish_spec.rb",
|
46
|
+
"spec/spec_helper.rb"
|
47
|
+
]
|
48
|
+
s.homepage = "http://github.com/haracane/bunnish"
|
49
|
+
s.licenses = ["MIT"]
|
50
|
+
s.require_paths = ["lib"]
|
51
|
+
s.rubygems_version = "1.8.17"
|
52
|
+
s.summary = "Command for AMQP access to Message Queue."
|
53
|
+
|
54
|
+
if s.respond_to? :specification_version then
|
55
|
+
s.specification_version = 3
|
56
|
+
|
57
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
58
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
59
|
+
s.add_runtime_dependency(%q<bunny>, [">= 0"])
|
60
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
|
61
|
+
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
62
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
63
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
|
64
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
65
|
+
else
|
66
|
+
s.add_dependency(%q<json>, [">= 0"])
|
67
|
+
s.add_dependency(%q<bunny>, [">= 0"])
|
68
|
+
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
69
|
+
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
70
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
71
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
72
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
73
|
+
end
|
74
|
+
else
|
75
|
+
s.add_dependency(%q<json>, [">= 0"])
|
76
|
+
s.add_dependency(%q<bunny>, [">= 0"])
|
77
|
+
s.add_dependency(%q<rspec>, ["~> 2.8.0"])
|
78
|
+
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
79
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
80
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
|
81
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
@@ -1,9 +1,6 @@
|
|
1
|
-
module Bunnish
|
1
|
+
module Bunnish::Command
|
2
2
|
module Count
|
3
3
|
def self.run(argv, input_stream=$stdin, output_stream=$stdout, error_stream=$stderr)
|
4
|
-
input_stream ||= $stdin
|
5
|
-
output_stream ||= $stdout
|
6
|
-
error_stream ||= $stderr
|
7
4
|
|
8
5
|
params = Bunnish.parse_opts(argv)
|
9
6
|
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Bunnish::Command
|
2
|
+
module Delete
|
3
|
+
def self.fetch_queue_name(queue_name_list, input_stream)
|
4
|
+
return queue_name_list.shift if queue_name_list
|
5
|
+
line = input_stream.gets
|
6
|
+
return line.chomp if line
|
7
|
+
return nil
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.run(argv, input_stream=$stdin, output_stream=$stdout, error_stream=$stderr)
|
11
|
+
|
12
|
+
params = Bunnish.parse_opts(argv)
|
13
|
+
|
14
|
+
host = params[:host]
|
15
|
+
port = params[:port]
|
16
|
+
user = params[:user]
|
17
|
+
password = params[:password]
|
18
|
+
durable = params[:durable]
|
19
|
+
|
20
|
+
STDERR.puts argv
|
21
|
+
queue_name_list = argv.shift
|
22
|
+
|
23
|
+
queue_name_list = queue_name_list.split(/[, \r\n]+/) if queue_name_list
|
24
|
+
|
25
|
+
bunny = Bunny.new(:logging => false, :spec => '09', :host=>host, :port=>port, :user=>user, :pass=>password)
|
26
|
+
|
27
|
+
# start a communication session with the amqp server
|
28
|
+
bunny.start
|
29
|
+
|
30
|
+
exit_code = 0
|
31
|
+
|
32
|
+
while queue_name = self.fetch_queue_name(queue_name_list, input_stream)
|
33
|
+
# create/get queue
|
34
|
+
# queue = bunny.queues[queue_name]
|
35
|
+
queue = bunny.queue(queue_name, :durable=>durable)
|
36
|
+
|
37
|
+
if queue.nil? then
|
38
|
+
error_stream.puts Time.now.strftime("[%Y-%m-%d %H:%M:%S](INFO) #{queue_name} does not exist")
|
39
|
+
next
|
40
|
+
end
|
41
|
+
|
42
|
+
result = queue.delete
|
43
|
+
|
44
|
+
if result == :delete_ok then
|
45
|
+
error_stream.puts Time.now.strftime("[%Y-%m-%d %H:%M:%S](INFO) deleted #{queue_name}")
|
46
|
+
else
|
47
|
+
error_stream.puts Time.now.strftime("[%Y-%m-%d %H:%M:%S](ERROR) failed to #{queue_name}")
|
48
|
+
exit_code = 1
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# Close client
|
53
|
+
bunny.stop
|
54
|
+
|
55
|
+
return exit_code
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module Bunnish
|
1
|
+
module Bunnish::Command
|
2
2
|
module Publish
|
3
3
|
def self.output_log(streams, message)
|
4
4
|
streams.each do |stream|
|
@@ -22,9 +22,6 @@ module Bunnish
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.run(argv, input_stream=$stdin, output_stream=$stdout, error_stream=$stderr)
|
25
|
-
input_stream ||= $stdin
|
26
|
-
output_stream ||= $stdout
|
27
|
-
error_stream ||= $stderr
|
28
25
|
|
29
26
|
params = Bunnish.parse_opts(argv)
|
30
27
|
|
@@ -62,7 +59,7 @@ module Bunnish
|
|
62
59
|
end
|
63
60
|
end
|
64
61
|
|
65
|
-
fanout_flag = (exchange_name != '' && 1 < queue_name_list.size)
|
62
|
+
fanout_flag = (exchange_name && exchange_name != '' && 1 < queue_name_list.size)
|
66
63
|
|
67
64
|
bunny = nil
|
68
65
|
direct_exchange = nil
|
@@ -171,6 +168,8 @@ module Bunnish
|
|
171
168
|
log_streams.values.each do |log_stream|
|
172
169
|
log_stream.close
|
173
170
|
end
|
171
|
+
|
172
|
+
return 0
|
174
173
|
end
|
175
174
|
|
176
175
|
end
|
@@ -1,9 +1,6 @@
|
|
1
|
-
module Bunnish
|
1
|
+
module Bunnish::Command
|
2
2
|
module Status
|
3
3
|
def self.run(argv, input_stream=$stdin, output_stream=$stdout, error_stream=$stderr)
|
4
|
-
input_stream ||= $stdin
|
5
|
-
output_stream ||= $stdout
|
6
|
-
error_stream ||= $stderr
|
7
4
|
|
8
5
|
params = Bunnish.parse_opts(argv)
|
9
6
|
|
@@ -81,14 +78,12 @@ module Bunnish
|
|
81
78
|
rescue Exception=>e
|
82
79
|
message = Time.now.strftime("[%Y-%m-%d %H:%M:%S](EXCEPTION)#{e.message}(#{e.class.name}): #{e.backtrace.map{|s| " #{s}"}.join("\n")}")
|
83
80
|
output_stream.puts message
|
84
|
-
|
81
|
+
return 1
|
85
82
|
end
|
86
83
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
84
|
+
return 1 if error_flag
|
85
|
+
return 2 if warn_flag
|
86
|
+
return 0
|
92
87
|
end
|
93
88
|
end
|
94
89
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module Bunnish
|
1
|
+
module Bunnish::Command
|
2
2
|
module Subscribe
|
3
3
|
def self.output_log(streams, message)
|
4
4
|
streams.each do |stream|
|
@@ -29,7 +29,6 @@ module Bunnish
|
|
29
29
|
user = params[:user]
|
30
30
|
password = params[:password]
|
31
31
|
durable = params[:durable]
|
32
|
-
exchange_name = params[:exchange_name]
|
33
32
|
unit_size = params[:unit_size] || 10000
|
34
33
|
raise_exception_flag = params[:raise_exception_flag]
|
35
34
|
ack = params[:ack]
|
@@ -85,7 +84,7 @@ module Bunnish
|
|
85
84
|
if message_max <= 0
|
86
85
|
self.output_log [error_stream, log_stream], Time.now.strftime("[%Y-%m-%d %H:%M:%S](INFO)#{log_label} finished")
|
87
86
|
bunny.stop
|
88
|
-
|
87
|
+
return 0
|
89
88
|
end
|
90
89
|
else
|
91
90
|
self.output_log [error_stream, log_stream], Time.now.strftime("[%Y-%m-%d %H:%M:%S](INFO)#{log_label} subscribe from #{queue_name}(#{remain_count} messages, #{consumer_count} consumers)")
|
@@ -143,6 +142,8 @@ module Bunnish
|
|
143
142
|
|
144
143
|
# Close client
|
145
144
|
bunny.stop
|
145
|
+
|
146
|
+
return 0
|
146
147
|
end
|
147
148
|
end
|
148
149
|
end
|
data/lib/bunnish.rb
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
require "bunny"
|
3
|
-
require "bunnish/count"
|
4
|
-
require "bunnish/help"
|
5
|
-
require "bunnish/publish"
|
6
|
-
require "bunnish/status"
|
7
|
-
require "bunnish/subscribe"
|
8
|
-
|
9
3
|
|
10
4
|
module Bunnish
|
11
5
|
def self.parse_opts(argv)
|
@@ -17,7 +11,7 @@ module Bunnish
|
|
17
11
|
ack = true
|
18
12
|
raise_exception_flag = false
|
19
13
|
|
20
|
-
exchange_name =
|
14
|
+
exchange_name = nil
|
21
15
|
delimiter = nil
|
22
16
|
|
23
17
|
consumer_tag = nil
|
@@ -47,7 +41,7 @@ module Bunnish
|
|
47
41
|
when '-u'
|
48
42
|
user = argv.shift
|
49
43
|
when '-P'
|
50
|
-
password = argv.shift
|
44
|
+
password = argv.shift
|
51
45
|
when '--ack'
|
52
46
|
ack = (argv.shift == 't')
|
53
47
|
when '--delimiter'
|
@@ -68,7 +62,7 @@ module Bunnish
|
|
68
62
|
when '--raise-exception'
|
69
63
|
raise_exception_flag = true
|
70
64
|
when '--consumer-tag'
|
71
|
-
consumer_tag = argv.shift
|
65
|
+
consumer_tag = argv.shift
|
72
66
|
when '--timeout'
|
73
67
|
timeout = argv.shift.to_i
|
74
68
|
when '--exclusive'
|
@@ -117,4 +111,6 @@ module Bunnish
|
|
117
111
|
}
|
118
112
|
|
119
113
|
end
|
120
|
-
end
|
114
|
+
end
|
115
|
+
|
116
|
+
require "bunnish/command"
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "bin/bunnish" do
|
4
|
+
before :all do
|
5
|
+
@stderr = Bunnish::REDIRECT[:stderr]
|
6
|
+
@input_file = Tempfile.new("bunnish")
|
7
|
+
@input_file.puts "foo"
|
8
|
+
@input_file.puts "bar"
|
9
|
+
@input_file.puts "baz"
|
10
|
+
@input_file.close
|
11
|
+
`#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish delete bunnish-test-queue 2> /dev/null`
|
12
|
+
end
|
13
|
+
after :all do
|
14
|
+
@input_file.unlink
|
15
|
+
end
|
16
|
+
before :each do
|
17
|
+
`cat #{@input_file.path} | #{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish publish bunnish-test-queue 2> /dev/null`
|
18
|
+
end
|
19
|
+
after :each do
|
20
|
+
`#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish delete bunnish-test-queue 2> /dev/null`
|
21
|
+
end
|
22
|
+
describe "count" do
|
23
|
+
it "should output valid queue count" do
|
24
|
+
result = `#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish count bunnish-test-queue 2> #{@stderr}`
|
25
|
+
result.chomp!
|
26
|
+
result.should == "3"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
describe "delete" do
|
30
|
+
it "should delete queue" do
|
31
|
+
`#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish delete bunnish-test-queue 2> #{@stderr}`
|
32
|
+
result = `#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish count bunnish-test-queue 2> /dev/null`
|
33
|
+
result = result.chomp!
|
34
|
+
result.should == "0"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
describe "help" do
|
38
|
+
it "should delete queue" do
|
39
|
+
result = `#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish help bunnish-test-queue 2> #{@stderr}`
|
40
|
+
result.split().size.should > 0
|
41
|
+
$?.should == 0
|
42
|
+
end
|
43
|
+
end
|
44
|
+
describe "publish" do
|
45
|
+
it "should publish valid messages" do
|
46
|
+
`echo qux | #{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish publish bunnish-test-queue 2> #{@stderr}`
|
47
|
+
result = `#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish subscribe bunnish-test-queue 2> /dev/null`
|
48
|
+
result = result.split()
|
49
|
+
# result.each do |line| STDERR.puts line end
|
50
|
+
result.shift.should == "foo"
|
51
|
+
result.shift.should == "bar"
|
52
|
+
result.shift.should == "baz"
|
53
|
+
result.shift.should == "qux"
|
54
|
+
result.size.should == 0
|
55
|
+
end
|
56
|
+
end
|
57
|
+
describe "status" do
|
58
|
+
it "should print valid status of message queue" do
|
59
|
+
result = `#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish status bunnish-test-queue 2> #{@stderr}`
|
60
|
+
result = result.split(/\n/)
|
61
|
+
# STDERR.puts result.inspect
|
62
|
+
result.include?("bunnish-test-queue : 3 messages, 0 consumers").should be_true
|
63
|
+
end
|
64
|
+
end
|
65
|
+
describe "subscribe" do
|
66
|
+
it "should subscribe valid messages" do
|
67
|
+
result = `#{Bunnish::RUBY_CMD} #{Bunnish::BIN_DIR}/bunnish subscribe bunnish-test-queue 2> #{@stderr}`
|
68
|
+
result = result.split()
|
69
|
+
# result.each do |line| STDERR.puts line end
|
70
|
+
result.shift.should == "foo"
|
71
|
+
result.shift.should == "bar"
|
72
|
+
result.shift.should == "baz"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
|
4
|
+
describe Bunnish do
|
5
|
+
describe "#parse_opts(argv)" do
|
6
|
+
context "when argv = []" do
|
7
|
+
it "should return defalut hash" do
|
8
|
+
result = Bunnish.parse_opts([])
|
9
|
+
result[:host].should == "localhost"
|
10
|
+
result[:port].should == 5672
|
11
|
+
result[:user].should == "guest"
|
12
|
+
result[:password].should == "guest"
|
13
|
+
result[:durable].should == false
|
14
|
+
result[:ack].should == true
|
15
|
+
result[:exchange_name].should == nil
|
16
|
+
result[:unit_size].should == nil
|
17
|
+
result[:raise_exception_flag].should == false
|
18
|
+
result[:delimiter].should == nil
|
19
|
+
result[:log_label].should == nil
|
20
|
+
result[:log_dir].should == nil
|
21
|
+
result[:log_path].should == nil
|
22
|
+
result[:consumer_tag].should == nil
|
23
|
+
result[:timeout].should == 1
|
24
|
+
result[:exclusive].should == false
|
25
|
+
result[:message_max].should == nil
|
26
|
+
result[:current_all_flag].should == false
|
27
|
+
result[:min_size].should == nil
|
28
|
+
result[:empty_list_max].should == nil
|
29
|
+
result[:warn_size].should == nil
|
30
|
+
result[:error_size].should == nil
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
argv = ("-h mq-server -p 15672 -u user -P password --durable t" \
|
35
|
+
+ " --ack f --exchange-name exchange --unit-size 10" \
|
36
|
+
+ " --raise-exception --delimiter delim" \
|
37
|
+
+ " --log-label log-label --log-dir log-dir --log-file log-file" \
|
38
|
+
+ " --consumer-tag ctag --timeout 11 --exclusive t --message-max 12" \
|
39
|
+
+ " --current-all --min-size 13 --empty-list-max 14" \
|
40
|
+
+ " --warn 15 --error 16").split(/ /)
|
41
|
+
|
42
|
+
context "when argv = #{argv.inspect}" do
|
43
|
+
it 'should return valid hash' do
|
44
|
+
result = Bunnish.parse_opts(argv)
|
45
|
+
result[:host].should == "mq-server"
|
46
|
+
result[:port].should == 15672
|
47
|
+
result[:user].should == "user"
|
48
|
+
result[:password].should == "password"
|
49
|
+
result[:durable].should == true
|
50
|
+
result[:ack].should == false
|
51
|
+
result[:exchange_name].should == "exchange"
|
52
|
+
result[:unit_size].should == 10
|
53
|
+
result[:raise_exception_flag].should == true
|
54
|
+
result[:delimiter].should == "delim"
|
55
|
+
result[:log_label].should == "[log-label]"
|
56
|
+
result[:log_dir].should == "log-dir"
|
57
|
+
result[:log_path].should == "log-file"
|
58
|
+
result[:consumer_tag].should == "ctag"
|
59
|
+
result[:timeout].should == 11
|
60
|
+
result[:exclusive].should == true
|
61
|
+
result[:message_max].should == "12"
|
62
|
+
result[:current_all_flag].should == true
|
63
|
+
result[:min_size].should == 13
|
64
|
+
result[:empty_list_max].should == 14
|
65
|
+
result[:warn_size].should == 15
|
66
|
+
result[:error_size].should == 16
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "rspec"
|
4
|
+
require "bunnish"
|
5
|
+
require "tempfile"
|
5
6
|
|
6
7
|
# Requires supporting files with custom matchers and macros, etc,
|
7
8
|
# in ./support/ and its subdirectories.
|
@@ -10,3 +11,11 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
|
10
11
|
RSpec.configure do |config|
|
11
12
|
|
12
13
|
end
|
14
|
+
|
15
|
+
module Bunnish
|
16
|
+
BUNNISH_HOME = File.expand_path(File.dirname(__FILE__) + "/..")
|
17
|
+
BIN_DIR = "#{BUNNISH_HOME}/bin"
|
18
|
+
LIB_DIR = "#{BUNNISH_HOME}/lib"
|
19
|
+
RUBY_CMD = "/usr/bin/env ruby -I #{LIB_DIR}"
|
20
|
+
REDIRECT = {:stderr=>"/dev/null"}
|
21
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bunnish
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kenji Hara
|
@@ -15,9 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-12-
|
18
|
+
date: 2012-12-08 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
+
name: json
|
22
|
+
prerelease: false
|
21
23
|
type: :runtime
|
22
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
25
|
none: false
|
@@ -29,9 +31,9 @@ dependencies:
|
|
29
31
|
- 0
|
30
32
|
version: "0"
|
31
33
|
version_requirements: *id001
|
32
|
-
name: json
|
33
|
-
prerelease: false
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
|
+
name: bunny
|
36
|
+
prerelease: false
|
35
37
|
type: :runtime
|
36
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
37
39
|
none: false
|
@@ -43,9 +45,9 @@ dependencies:
|
|
43
45
|
- 0
|
44
46
|
version: "0"
|
45
47
|
version_requirements: *id002
|
46
|
-
name: bunny
|
47
|
-
prerelease: false
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
prerelease: false
|
49
51
|
type: :development
|
50
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
51
53
|
none: false
|
@@ -59,9 +61,9 @@ dependencies:
|
|
59
61
|
- 0
|
60
62
|
version: 2.8.0
|
61
63
|
version_requirements: *id003
|
62
|
-
name: rspec
|
63
|
-
prerelease: false
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
|
+
name: rdoc
|
66
|
+
prerelease: false
|
65
67
|
type: :development
|
66
68
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
69
|
none: false
|
@@ -74,9 +76,9 @@ dependencies:
|
|
74
76
|
- 12
|
75
77
|
version: "3.12"
|
76
78
|
version_requirements: *id004
|
77
|
-
name: rdoc
|
78
|
-
prerelease: false
|
79
79
|
- !ruby/object:Gem::Dependency
|
80
|
+
name: bundler
|
81
|
+
prerelease: false
|
80
82
|
type: :development
|
81
83
|
requirement: &id005 !ruby/object:Gem::Requirement
|
82
84
|
none: false
|
@@ -88,9 +90,9 @@ dependencies:
|
|
88
90
|
- 0
|
89
91
|
version: "0"
|
90
92
|
version_requirements: *id005
|
91
|
-
name: bundler
|
92
|
-
prerelease: false
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
|
+
name: jeweler
|
95
|
+
prerelease: false
|
94
96
|
type: :development
|
95
97
|
requirement: &id006 !ruby/object:Gem::Requirement
|
96
98
|
none: false
|
@@ -104,9 +106,9 @@ dependencies:
|
|
104
106
|
- 4
|
105
107
|
version: 1.8.4
|
106
108
|
version_requirements: *id006
|
107
|
-
name: jeweler
|
108
|
-
prerelease: false
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
|
+
name: rcov
|
111
|
+
prerelease: false
|
110
112
|
type: :development
|
111
113
|
requirement: &id007 !ruby/object:Gem::Requirement
|
112
114
|
none: false
|
@@ -118,8 +120,6 @@ dependencies:
|
|
118
120
|
- 0
|
119
121
|
version: "0"
|
120
122
|
version_requirements: *id007
|
121
|
-
name: rcov
|
122
|
-
prerelease: false
|
123
123
|
description: Command for AMQP access to Message Queue.
|
124
124
|
email: haracane@gmail.com
|
125
125
|
executables:
|
@@ -138,13 +138,23 @@ files:
|
|
138
138
|
- Rakefile
|
139
139
|
- VERSION
|
140
140
|
- bin/bunnish
|
141
|
+
- bunnish.gemspec
|
141
142
|
- lib/bunnish.rb
|
142
|
-
- lib/bunnish/
|
143
|
-
- lib/bunnish/
|
144
|
-
- lib/bunnish/
|
145
|
-
- lib/bunnish/
|
146
|
-
- lib/bunnish/
|
147
|
-
-
|
143
|
+
- lib/bunnish/command.rb
|
144
|
+
- lib/bunnish/command/count.rb
|
145
|
+
- lib/bunnish/command/delete.rb
|
146
|
+
- lib/bunnish/command/help.rb
|
147
|
+
- lib/bunnish/command/publish.rb
|
148
|
+
- lib/bunnish/command/status.rb
|
149
|
+
- lib/bunnish/command/subscribe.rb
|
150
|
+
- spec/bin/bunnish_spec.rb
|
151
|
+
- spec/lib/bunnish/command/count_spec.rb
|
152
|
+
- spec/lib/bunnish/command/delete_spec.rb
|
153
|
+
- spec/lib/bunnish/command/help_spec.rb
|
154
|
+
- spec/lib/bunnish/command/publish_spec.rb
|
155
|
+
- spec/lib/bunnish/command/status_spec.rb
|
156
|
+
- spec/lib/bunnish/command/subscribe_spec.rb
|
157
|
+
- spec/lib/bunnish_spec.rb
|
148
158
|
- spec/spec_helper.rb
|
149
159
|
homepage: http://github.com/haracane/bunnish
|
150
160
|
licenses:
|
@@ -175,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
185
|
requirements: []
|
176
186
|
|
177
187
|
rubyforge_project:
|
178
|
-
rubygems_version: 1.8.
|
188
|
+
rubygems_version: 1.8.17
|
179
189
|
signing_key:
|
180
190
|
specification_version: 3
|
181
191
|
summary: Command for AMQP access to Message Queue.
|
data/spec/bunnish_spec.rb
DELETED