brightbox-warren 0.5 → 0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,92 +2,72 @@ require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  describe Warren::Queue do
4
4
 
5
- it "should require raise exception with no connection details" do
6
- lambda {
7
- Warren::Queue.connection
8
- }.should raise_error(Warren::Queue::NoConnectionDetails)
9
- end
10
-
11
- it "should require connection details to publish" do
12
- lambda {
13
- Warren::Queue.publish("", "")
14
- }.should raise_error(Warren::Queue::NoConnectionDetails)
15
- end
16
-
17
- it "should require connection details to subscribe" do
18
- lambda {
19
- Warren::Queue.subscribe("") { true }
20
- }.should raise_error(Warren::Queue::NoConnectionDetails)
21
- end
22
-
23
- it "should set connection details" do
24
- conn = new_connection
25
-
26
- Warren::Queue.connection = conn
27
- Warren::Queue.connection.should == conn
28
- end
29
-
30
- it "should publish to a queue" do
31
- Warren::Queue.connection = new_connection
32
-
33
- Warren::Queue.should_receive(:do_connect).with(true, nil).and_return(true)
34
- Warren::Queue.publish("queue", "payload")
35
- end
36
-
37
- it "should publish to a default queue" do
38
- Warren::Queue.connection = new_connection(:default_queue => "queue")
5
+ describe "connection" do
39
6
 
40
- Warren::Queue.should_receive(:do_connect).with(true, nil).and_return(true)
41
- Warren::Queue.publish(:default, "payload")
42
- end
43
-
44
- it "should publish to a queue with a block" do
45
- Warren::Queue.connection = new_connection
46
-
47
- blk = Proc.new { true }
48
-
49
- Warren::Queue.should_receive(:do_connect).with(true, blk).and_return(true)
50
- Warren::Queue.publish("queue", "payload", &blk)
51
- end
52
-
53
- describe "subscribing" do
54
-
55
- it "should require a block to be passed" do
56
- Warren::Queue.connection = new_connection
57
-
58
- lambda {
59
- Warren::Queue.subscribe("queue")
60
- }.should raise_error(Warren::Queue::NoBlockGiven)
7
+ before(:all) do
8
+ @conn = stub 'connection'
61
9
  end
62
10
 
63
- it "should subscribe to a queue" do
64
- Warren::Queue.connection = new_connection
11
+ it "should create a new Warren::Connection if one doesn't exist" do
12
+ Warren::Connection.should_receive(:new).and_return(@conn)
65
13
 
66
- Warren::Queue.should_receive(:do_connect).with(false).and_return(true)
67
- Warren::Queue.subscribe("queue") { true }
14
+ Warren::Queue.connection.should == @conn
68
15
  end
69
16
 
70
- it "should subscribe to the default queue" do
71
- Warren::Queue.connection = new_connection(:default_queue => "queue")
17
+ it "should only create a connection once" do
18
+ # Already created the connection object in the first it
19
+ Warren::Connection.should_not_receive(:new)
72
20
 
73
- Warren::Queue.should_receive(:do_connect).with(false).and_return(true)
74
- Warren::Queue.subscribe(:default) { true }
21
+ Warren::Queue.connection.should == @conn
22
+ Warren::Queue.connection.should == @conn
75
23
  end
76
-
77
- end
78
-
79
- private
80
-
81
- def new_connection opts = {}
82
- Warren::Connection.new(details.merge(opts))
83
24
  end
84
-
85
- def details
86
- {
87
- :user => "user",
88
- :pass => "pass",
89
- :vhost => "main",
90
- }
25
+
26
+ describe "adapter" do
27
+
28
+ before(:each) do
29
+ @adapter = mock 'adapter', :publish => "publish", :subscribe => "subscribe"
30
+ Warren::Queue.adapter = @adapter
31
+ end
32
+
33
+ it "should have an adapter set" do
34
+ Warren::Queue.adapter.should == @adapter
35
+ end
36
+
37
+ it "should pass publish through to the adapter" do
38
+ @adapter.should_receive(:publish)
39
+ Warren::Queue.publish.should == "publish"
40
+ end
41
+
42
+ it "should pass arguments through to adapter#publish" do
43
+ @adapter.should_receive(:publish).with("foo", "bar")
44
+
45
+ Warren::Queue.publish("foo", "bar").should == "publish"
46
+ end
47
+
48
+ it "should pass a block through to adapter#publish" do
49
+ block = lambda { true }
50
+ @adapter.should_receive(:publish).with("foo", "bar", block)
51
+
52
+ Warren::Queue.publish("foo", "bar", block).should == "publish"
53
+ end
54
+
55
+ it "should pass subscribe through to the adapter" do
56
+ @adapter.should_receive(:subscribe)
57
+ Warren::Queue.subscribe.should == "subscribe"
58
+ end
59
+
60
+ it "should pass arguments through to adapter#subscribe" do
61
+ @adapter.should_receive(:subscribe).with("foo", "bar")
62
+
63
+ Warren::Queue.subscribe("foo", "bar").should == "subscribe"
64
+ end
65
+
66
+ it "should pass a block through to adapter#subscribe" do
67
+ block = lambda { true }
68
+ @adapter.should_receive(:subscribe).with("foo", "bar", block)
69
+
70
+ Warren::Queue.subscribe("foo", "bar", block).should == "subscribe"
71
+ end
91
72
  end
92
-
93
73
  end
@@ -0,0 +1,9 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Warren do
4
+
5
+ it "should have a default environment" do
6
+ WARREN_ENV.should == "development"
7
+ end
8
+
9
+ end
data/warren.gemspec CHANGED
@@ -2,26 +2,25 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{warren}
5
- s.version = "0.5"
5
+ s.version = "0.7"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Caius Durling, David Smalley"]
9
- s.date = %q{2009-03-13}
9
+ s.date = %q{2009-06-12}
10
10
  s.description = %q{Library for pushing messages onto and off RabbitMQ queues}
11
11
  s.email = %q{support@brightbox.co.uk}
12
- s.extra_rdoc_files = ["CHANGELOG", "lib/warren/connection.rb", "lib/warren/message_filter.rb", "lib/warren/message_filters/shared_secret.rb", "lib/warren/message_filters/yaml.rb", "lib/warren/queue.rb", "lib/warren.rb", "tasks/rdoc.rake", "tasks/rspec.rake"]
13
- s.files = ["CHANGELOG", "examples/authed/receiver.rb", "examples/authed/secret.rb", "examples/authed/sender.rb", "examples/simple/mass_sender.rb", "examples/simple/receiver.rb", "examples/simple/sender.rb", "lib/warren/connection.rb", "lib/warren/message_filter.rb", "lib/warren/message_filters/shared_secret.rb", "lib/warren/message_filters/yaml.rb", "lib/warren/queue.rb", "lib/warren.rb", "LICENCE", "Manifest", "Rakefile", "readme.rdoc", "spec/hash_extend.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/warren/connection_spec.rb", "spec/warren/message_filter_spec.rb", "spec/warren/queue_spec.rb", "tasks/rdoc.rake", "tasks/rspec.rake", "warren.gemspec"]
14
- s.has_rdoc = true
12
+ s.extra_rdoc_files = ["CHANGELOG", "lib/warren/adapters/amqp_adapter.rb", "lib/warren/adapters/bunny_adapter.rb", "lib/warren/connection.rb", "lib/warren/filters/shared_secret.rb", "lib/warren/filters/yaml.rb", "lib/warren/message_filter.rb", "lib/warren/queue.rb", "lib/warren.rb", "LICENSE", "tasks/rdoc.rake", "tasks/rspec.rake"]
13
+ s.files = ["CHANGELOG", "examples/authed/receiver.rb", "examples/authed/secret.rb", "examples/authed/sender.rb", "examples/simple/amqp_mass_sender.rb", "examples/simple/amqp_receiver.rb", "examples/simple/amqp_sender.rb", "examples/simple/bunny_receiver.rb", "examples/simple/bunny_sender.rb", "lib/warren/adapters/amqp_adapter.rb", "lib/warren/adapters/bunny_adapter.rb", "lib/warren/connection.rb", "lib/warren/filters/shared_secret.rb", "lib/warren/filters/yaml.rb", "lib/warren/message_filter.rb", "lib/warren/queue.rb", "lib/warren.rb", "LICENSE", "Manifest", "Rakefile", "readme.rdoc", "spec/spec.opts", "spec/spec_helper.rb", "spec/warren/connection_spec.rb", "spec/warren/queue_spec.rb", "spec/warren/warren_spec.rb", "tasks/rdoc.rake", "tasks/rspec.rake", "warren.gemspec"]
15
14
  s.homepage = %q{http://github.com/brightbox/warren}
16
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Warren", "--main", "readme.rdoc"]
17
16
  s.require_paths = ["lib"]
18
17
  s.rubyforge_project = %q{warren}
19
- s.rubygems_version = %q{1.3.1}
18
+ s.rubygems_version = %q{1.3.4}
20
19
  s.summary = %q{Library for pushing messages onto and off RabbitMQ queues}
21
20
 
22
21
  if s.respond_to? :specification_version then
23
22
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
- s.specification_version = 2
23
+ s.specification_version = 3
25
24
 
26
25
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
26
  s.add_runtime_dependency(%q<amqp>, [">= 0.6.0"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brightbox-warren
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.5"
4
+ version: "0.7"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caius Durling, David Smalley
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-13 00:00:00 -07:00
12
+ date: 2009-06-12 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -30,12 +30,15 @@ extensions: []
30
30
 
31
31
  extra_rdoc_files:
32
32
  - CHANGELOG
33
+ - lib/warren/adapters/amqp_adapter.rb
34
+ - lib/warren/adapters/bunny_adapter.rb
33
35
  - lib/warren/connection.rb
36
+ - lib/warren/filters/shared_secret.rb
37
+ - lib/warren/filters/yaml.rb
34
38
  - lib/warren/message_filter.rb
35
- - lib/warren/message_filters/shared_secret.rb
36
- - lib/warren/message_filters/yaml.rb
37
39
  - lib/warren/queue.rb
38
40
  - lib/warren.rb
41
+ - LICENSE
39
42
  - tasks/rdoc.rake
40
43
  - tasks/rspec.rake
41
44
  files:
@@ -43,29 +46,32 @@ files:
43
46
  - examples/authed/receiver.rb
44
47
  - examples/authed/secret.rb
45
48
  - examples/authed/sender.rb
46
- - examples/simple/mass_sender.rb
47
- - examples/simple/receiver.rb
48
- - examples/simple/sender.rb
49
+ - examples/simple/amqp_mass_sender.rb
50
+ - examples/simple/amqp_receiver.rb
51
+ - examples/simple/amqp_sender.rb
52
+ - examples/simple/bunny_receiver.rb
53
+ - examples/simple/bunny_sender.rb
54
+ - lib/warren/adapters/amqp_adapter.rb
55
+ - lib/warren/adapters/bunny_adapter.rb
49
56
  - lib/warren/connection.rb
57
+ - lib/warren/filters/shared_secret.rb
58
+ - lib/warren/filters/yaml.rb
50
59
  - lib/warren/message_filter.rb
51
- - lib/warren/message_filters/shared_secret.rb
52
- - lib/warren/message_filters/yaml.rb
53
60
  - lib/warren/queue.rb
54
61
  - lib/warren.rb
55
- - LICENCE
62
+ - LICENSE
56
63
  - Manifest
57
64
  - Rakefile
58
65
  - readme.rdoc
59
- - spec/hash_extend.rb
60
66
  - spec/spec.opts
61
67
  - spec/spec_helper.rb
62
68
  - spec/warren/connection_spec.rb
63
- - spec/warren/message_filter_spec.rb
64
69
  - spec/warren/queue_spec.rb
70
+ - spec/warren/warren_spec.rb
65
71
  - tasks/rdoc.rake
66
72
  - tasks/rspec.rake
67
73
  - warren.gemspec
68
- has_rdoc: true
74
+ has_rdoc: false
69
75
  homepage: http://github.com/brightbox/warren
70
76
  post_install_message:
71
77
  rdoc_options:
@@ -94,7 +100,7 @@ requirements: []
94
100
  rubyforge_project: warren
95
101
  rubygems_version: 1.2.0
96
102
  signing_key:
97
- specification_version: 2
103
+ specification_version: 3
98
104
  summary: Library for pushing messages onto and off RabbitMQ queues
99
105
  test_files: []
100
106
 
@@ -1,17 +0,0 @@
1
- require "rubygems"
2
- require File.expand_path(File.dirname(__FILE__) + "/../lib/warren")
3
-
4
- Signal.trap("INT") { AMQP.stop { EM.stop } }
5
- Signal.trap("TERM") { AMQP.stop { EM.stop } }
6
-
7
- # Listen to the main queue
8
- q = "main"
9
- puts "Listening to the #{q} queue."
10
-
11
- # Setup the connection directly this time
12
- Warren::Queue.connection = {:user => "caius", :pass => "caius", :vhost => "/"}
13
-
14
- # And attach a block for new messages to fire
15
- Warren::Queue.subscribe(q) do |msg|
16
- p [Time.now, msg]
17
- end
data/spec/hash_extend.rb DELETED
@@ -1,9 +0,0 @@
1
- class Hash
2
- def except(*blacklist)
3
- self.reject {|key, value| blacklist.include?(key) }
4
- end
5
-
6
- def only(*whitelist)
7
- self.reject {|key, value| !whitelist.include?(key) }
8
- end
9
- end
@@ -1,84 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- # Needed for some tests later on
4
- class Foo
5
- def self.pack msg
6
- msg
7
- end
8
-
9
- def self.unpack msg
10
- msg
11
- end
12
- end
13
-
14
- describe Warren::MessageFilter do
15
-
16
- before(:each) do
17
- Warren::MessageFilter.reset_filters
18
- end
19
-
20
- describe "Managing Filters" do
21
- it "should have YAML as a filter by default" do
22
- fs = Warren::MessageFilter.filters
23
-
24
- fs.should have(1).element
25
- fs.first.should == Warren::MessageFilter::Yaml
26
- end
27
-
28
- it "should add additional filters to the stack" do
29
- Warren::MessageFilter.should respond_to(:<<)
30
- Warren::MessageFilter << Foo
31
- fs = Warren::MessageFilter.filters
32
-
33
- fs.should have(2).elements
34
- fs.first.should == Warren::MessageFilter::Yaml
35
- fs.last.should == Foo
36
- end
37
- end
38
-
39
- describe "calling filters to send message" do
40
-
41
- it "should YAML by default" do
42
- @msg = "message"
43
- Warren::MessageFilter::Yaml.should_receive(:pack).with(@msg).and_return("yamled")
44
-
45
- Warren::MessageFilter.pack(@msg)
46
- end
47
-
48
- it "should call each filter in turn when packing" do
49
- @msg = "message"
50
-
51
- Foo.should_receive(:pack).with(@msg).and_return("fooed")
52
- Warren::MessageFilter::Yaml.should_receive(:pack).with("fooed").and_return("yamled")
53
-
54
- Warren::MessageFilter << Foo
55
-
56
- Warren::MessageFilter.pack(@msg).should == "yamled"
57
- end
58
-
59
- end
60
-
61
- describe "calling filters to unpack message" do
62
- it "should un-YAML by default" do
63
- @msg = "yamled"
64
-
65
- Warren::MessageFilter::Yaml.should_receive(:unpack).with("yamled").and_return("message")
66
-
67
- Warren::MessageFilter.unpack(@msg).should == "message"
68
- end
69
-
70
- it "should run all unpack filters" do
71
- @msg = "yamled message"
72
-
73
- Warren::MessageFilter::Yaml.should_receive(:unpack).with("yamled message").and_return("fooed")
74
- Foo.should_receive(:unpack).with("fooed").and_return("message")
75
-
76
- Warren::MessageFilter << Foo
77
- Warren::MessageFilter.filters.should == [Warren::MessageFilter::Yaml, Foo]
78
-
79
- Warren::MessageFilter.unpack(@msg).should == "message"
80
- end
81
- end
82
-
83
- end
84
-