bmabey-rosetta_queue 0.2.0 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/History.txt +6 -3
  2. data/README.rdoc +1 -193
  3. data/Rakefile +7 -1
  4. data/cucumber.yml +1 -1
  5. data/examples/sample_amqp_consumer.rb +13 -3
  6. data/examples/sample_amqp_fanout_consumer.rb +6 -3
  7. data/examples/sample_amqp_fanout_producer.rb +3 -2
  8. data/examples/sample_amqp_producer.rb +2 -1
  9. data/features/filtering.feature +13 -13
  10. data/features/messaging.feature +28 -20
  11. data/features/step_definitions/common_messaging_steps.rb +54 -17
  12. data/features/step_definitions/filtering_steps.rb +2 -2
  13. data/features/step_definitions/point_to_point_steps.rb +19 -9
  14. data/features/step_definitions/publish_subscribe_steps.rb +22 -8
  15. data/features/support/env.rb +2 -0
  16. data/features/support/sample_consumers.rb +6 -6
  17. data/lib/rosetta_queue.rb +1 -0
  18. data/lib/rosetta_queue/adapter.rb +6 -6
  19. data/lib/rosetta_queue/adapters/amqp.rb +6 -3
  20. data/lib/rosetta_queue/adapters/amqp_evented.rb +22 -22
  21. data/lib/rosetta_queue/adapters/amqp_synch.rb +42 -36
  22. data/lib/rosetta_queue/adapters/base.rb +3 -3
  23. data/lib/rosetta_queue/adapters/beanstalk.rb +5 -5
  24. data/lib/rosetta_queue/adapters/fake.rb +5 -5
  25. data/lib/rosetta_queue/adapters/null.rb +9 -9
  26. data/lib/rosetta_queue/adapters/stomp.rb +25 -12
  27. data/lib/rosetta_queue/base.rb +2 -2
  28. data/lib/rosetta_queue/consumer.rb +4 -4
  29. data/lib/rosetta_queue/consumer_managers/base.rb +8 -6
  30. data/lib/rosetta_queue/consumer_managers/evented.rb +5 -5
  31. data/lib/rosetta_queue/consumer_managers/threaded.rb +4 -4
  32. data/lib/rosetta_queue/core_ext/string.rb +3 -3
  33. data/lib/rosetta_queue/core_ext/time.rb +20 -0
  34. data/lib/rosetta_queue/destinations.rb +6 -6
  35. data/lib/rosetta_queue/filters.rb +8 -8
  36. data/lib/rosetta_queue/logger.rb +2 -2
  37. data/lib/rosetta_queue/message_handler.rb +10 -4
  38. data/lib/rosetta_queue/producer.rb +2 -2
  39. data/lib/rosetta_queue/spec_helpers/hash.rb +3 -3
  40. data/lib/rosetta_queue/spec_helpers/helpers.rb +8 -8
  41. data/lib/rosetta_queue/spec_helpers/publishing_matchers.rb +26 -26
  42. data/spec/rosetta_queue/adapter_spec.rb +27 -27
  43. data/spec/rosetta_queue/adapters/amqp_synchronous_spec.rb +21 -1
  44. data/spec/rosetta_queue/adapters/beanstalk_spec.rb +3 -3
  45. data/spec/rosetta_queue/adapters/fake_spec.rb +6 -6
  46. data/spec/rosetta_queue/adapters/null_spec.rb +5 -5
  47. data/spec/rosetta_queue/adapters/shared_adapter_behavior.rb +4 -4
  48. data/spec/rosetta_queue/adapters/shared_fanout_behavior.rb +1 -1
  49. data/spec/rosetta_queue/adapters/stomp_spec.rb +39 -18
  50. data/spec/rosetta_queue/consumer_managers/evented_spec.rb +6 -6
  51. data/spec/rosetta_queue/consumer_managers/shared_manager_behavior.rb +3 -3
  52. data/spec/rosetta_queue/consumer_managers/threaded_spec.rb +5 -5
  53. data/spec/rosetta_queue/consumer_spec.rb +13 -13
  54. data/spec/rosetta_queue/core_ext/string_spec.rb +3 -3
  55. data/spec/rosetta_queue/destinations_spec.rb +8 -8
  56. data/spec/rosetta_queue/filters_spec.rb +16 -16
  57. data/spec/rosetta_queue/producer_spec.rb +15 -15
  58. data/spec/rosetta_queue/shared_messaging_behavior.rb +6 -6
  59. metadata +3 -2
@@ -4,12 +4,12 @@ describe String do
4
4
  describe "#camelize" do
5
5
  it "should have code examples"
6
6
  end
7
-
7
+
8
8
  describe "#classify" do
9
9
  it "should have code examples"
10
10
  end
11
-
11
+
12
12
  describe "#underscore" do
13
13
  it "should have code examples"
14
- end
14
+ end
15
15
  end
@@ -7,28 +7,28 @@ module RosettaQueue
7
7
  before(:each) do
8
8
  Destinations.clear
9
9
  end
10
-
10
+
11
11
  after(:each) do
12
12
  Destinations.clear
13
13
  end
14
-
14
+
15
15
  it "should map destination to hash" do
16
16
 
17
- Destinations.define do |queue|
17
+ Destinations.define do |queue|
18
18
  queue.map :test_queue, "/queue/test_queue"
19
19
  end
20
-
20
+
21
21
  Destinations.lookup(:test_queue).should == "/queue/test_queue"
22
22
  end
23
-
23
+
24
24
  it "#queue_names should return an array of the actuual queue names" do
25
- Destinations.define do |queue|
25
+ Destinations.define do |queue|
26
26
  queue.map :foo, "/queue/foo"
27
27
  queue.map :bar, "/queue/bar"
28
28
  end
29
-
29
+
30
30
  Destinations.queue_names.should include("/queue/foo")
31
31
  Destinations.queue_names.should include("/queue/bar")
32
32
  end
33
33
  end
34
- end
34
+ end
@@ -1,44 +1,44 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  module RosettaQueue
4
-
4
+
5
5
  describe Filters do
6
-
6
+
7
7
  after(:each) do
8
8
  Filters.reset
9
9
  end
10
-
10
+
11
11
  describe "#process_receiving" do
12
12
  it "should process the passed in message with the defined receiving filter" do
13
- Filters.define do |f|
13
+ Filters.define do |f|
14
14
  f.receiving {|message| "Foo #{message}"}
15
15
  end
16
-
16
+
17
17
  Filters.process_receiving("Bar").should == "Foo Bar"
18
18
  end
19
-
19
+
20
20
  it "should return the same message when no filter is defined" do
21
21
  Filters.process_receiving("Bar").should == "Bar"
22
22
  end
23
23
  end
24
-
25
-
24
+
25
+
26
26
  describe "#process_sending" do
27
27
  it "should process the passed in message with the defined sending filter" do
28
- Filters.define do |f|
28
+ Filters.define do |f|
29
29
  f.sending {|message| "Foo #{message}"}
30
30
  end
31
-
31
+
32
32
  Filters.process_sending("Bar").should == "Foo Bar"
33
33
  end
34
-
34
+
35
35
  it "should return the same message when no filter is defined" do
36
36
  Filters.process_sending("Bar").should == "Bar"
37
- end
37
+ end
38
38
  end
39
-
40
-
41
-
39
+
40
+
41
+
42
42
  end
43
-
43
+
44
44
  end
@@ -1,42 +1,42 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  module RosettaQueue
4
-
4
+
5
5
  class TestProducer < Producer
6
6
 
7
7
  publishes_to :test_queue
8
8
  options :persistent => false
9
9
 
10
10
  end
11
-
12
- describe Producer do
13
-
11
+
12
+ describe Producer do
13
+
14
14
  before(:each) do
15
15
  @adapter = mock("adapter", :send_message => nil)
16
16
  RosettaQueue::Adapter.stub!(:instance).and_return(@adapter)
17
17
  @gateway = TestProducer.new
18
-
18
+
19
19
  Destinations.stub!(:lookup).and_return("/queue/test_queue")
20
20
  end
21
-
21
+
22
22
  it_should_behave_like "a messaging gateway object"
23
23
  attr_reader :adapter, :gateway
24
-
25
-
24
+
25
+
26
26
  describe "#publish" do
27
-
27
+
28
28
  before(:each) do
29
29
  @adapter = mock("adpater", :send_message => nil)
30
30
  RosettaQueue::Adapter.stub!(:instance).and_return(@adapter)
31
31
  end
32
-
32
+
33
33
  # it "should look up the destination defined on the class" do
34
34
  # Destinations.should_receive(:lookup).with(:test_queue).and_return("/queue/test_queue")
35
35
  # # when
36
36
  # @gateway.publish('some message')
37
37
  # end
38
38
 
39
- it "should publish messages to queue with the options defined in the class" do
39
+ it "should publish messages to queue with the options defined in the class" do
40
40
  # TO DO: REFACTOR #publish METHOD SO THAT YOU PASS IN MESSAGE HANDLER AS WITH CONSUMER
41
41
  pending
42
42
  # expect
@@ -46,14 +46,14 @@ module RosettaQueue
46
46
  end
47
47
 
48
48
  end
49
-
49
+
50
50
  describe ".publish" do
51
51
  # it "should look up the destination defined on the class" do
52
52
  # Destinations.should_receive(:lookup).with(:test_queue).and_return("/queue/test_queue")
53
53
  # # when
54
54
  # Producer.publish(:test_queue, "blah")
55
55
  # end
56
-
56
+
57
57
  it "should send the message to the adpater along with the options" do
58
58
  # expect
59
59
  @adapter.should_receive(:send_message).with("/queue/test_queue", "Hello World!", {:persistent => true})
@@ -61,6 +61,6 @@ module RosettaQueue
61
61
  Producer.publish(:test_queue, "Hello World!", {:persistent => true})
62
62
  end
63
63
  end
64
-
64
+
65
65
  end
66
- end
66
+ end
@@ -1,21 +1,21 @@
1
1
  module RosettaQueue
2
2
 
3
- describe "a messaging gateway object", :shared => true do
4
-
5
- it "#unsubscribe should be delegated to the adapter" do
3
+ describe "a messaging gateway object", :shared => true do
4
+
5
+ it "#unsubscribe should be delegated to the adapter" do
6
6
  pending
7
7
  # expect
8
8
  adapter.should_receive("unsubscribe")
9
9
  # when
10
10
  gateway.unsubscribe
11
11
  end
12
-
12
+
13
13
  it "#disconnect should be delegated to the adapter" do
14
14
  # expect
15
15
  adapter.should_receive("disconnect")
16
16
  # when
17
17
  gateway.disconnect
18
18
  end
19
-
19
+
20
20
  end
21
- end
21
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bmabey-rosetta_queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Mabey
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-07-28 00:00:00 -07:00
13
+ date: 2009-08-26 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -54,6 +54,7 @@ files:
54
54
  - lib/rosetta_queue/consumer_managers/evented.rb
55
55
  - lib/rosetta_queue/consumer_managers/threaded.rb
56
56
  - lib/rosetta_queue/core_ext/string.rb
57
+ - lib/rosetta_queue/core_ext/time.rb
57
58
  - lib/rosetta_queue/destinations.rb
58
59
  - lib/rosetta_queue/exceptions.rb
59
60
  - lib/rosetta_queue/filters.rb