klomp 0.0.8 → 1.0.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/.gemtest +0 -0
- data/.rspec +2 -0
- data/.simplecov +8 -0
- data/ChangeLog.md +11 -1
- data/Gemfile +18 -12
- data/Gemfile.lock +36 -16
- data/Manifest.txt +31 -0
- data/README.md +134 -116
- data/Rakefile +18 -5
- data/klomp.gemspec +52 -17
- data/lib/klomp.rb +44 -3
- data/lib/klomp/connection.rb +163 -0
- data/lib/klomp/frames.rb +108 -0
- data/lib/klomp/sentinel.rb +21 -0
- data/spec/acceptance/acceptance_spec.rb +152 -0
- data/spec/frames/auth_error.txt +0 -0
- data/spec/frames/connect.txt +0 -0
- data/spec/frames/connect_vhost.txt +0 -0
- data/spec/frames/connected.txt +0 -0
- data/spec/frames/disconnect.txt +0 -0
- data/spec/frames/error.txt +0 -0
- data/spec/frames/greeting.txt +0 -0
- data/spec/frames/message.txt +0 -0
- data/spec/frames/receipt.txt +0 -0
- data/spec/frames/subscribe.txt +0 -0
- data/spec/frames/unsubscribe.txt +0 -0
- data/spec/klomp/connection_spec.rb +329 -0
- data/spec/klomp/frames_spec.rb +23 -0
- data/spec/klomp/sentinel_spec.rb +57 -0
- data/spec/klomp_spec.rb +167 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/support/have_received.rb +101 -0
- metadata +163 -35
- data/.gitignore +0 -1
- data/.rvmrc +0 -1
- data/Procfile +0 -2
- data/lib/klomp/client.rb +0 -163
- data/tasks/test_failover.rake +0 -35
- data/test/test_client.rb +0 -245
- data/test/test_helper.rb +0 -14
data/.gemtest
ADDED
File without changes
|
data/.rspec
ADDED
data/.simplecov
ADDED
data/ChangeLog.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
|
-
Changes
|
1
|
+
Klomp Changes
|
2
2
|
--------------------------------------------------------------------------------
|
3
3
|
|
4
|
+
1.0.0 (2012/10/3)
|
5
|
+
================================================================================
|
6
|
+
|
7
|
+
- BREAKING CHANGES from previous release. You will need to revisit and change
|
8
|
+
all code that depends on Klomp 0.0.x
|
9
|
+
- ground-up rewrite to eliminate onstomp dependency
|
10
|
+
- Klomp::Client => Klomp
|
11
|
+
- preserves similar API but with fewer bells and whistles
|
12
|
+
- read latest README.md for details
|
13
|
+
|
4
14
|
0.0.8 (2012/8/15)
|
5
15
|
================================================================================
|
6
16
|
|
data/Gemfile
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
group :development
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`.
|
4
|
+
|
5
|
+
source :gemcutter
|
6
|
+
|
7
|
+
|
8
|
+
gem "rdoc", "~>3.10", :group => [:development, :test]
|
9
|
+
gem "hoe-bundler", "~>1.1.0", :group => [:development, :test]
|
10
|
+
gem "hoe-gemspec", "~>1.0.0", :group => [:development, :test]
|
11
|
+
gem "hoe-git", "~>1.5.0", :group => [:development, :test]
|
12
|
+
gem "rspec", "~>2.11.0", :group => [:development, :test]
|
13
|
+
gem "ZenTest", "~>4.8.0", :group => [:development, :test]
|
14
|
+
gem "rspec-given", "~>1.0", :group => [:development, :test]
|
15
|
+
gem "simplecov", "~>0.6.0", :group => [:development, :test]
|
16
|
+
gem "hoe", "~>3.0", :group => [:development, :test]
|
17
|
+
|
18
|
+
# vim: syntax=ruby
|
data/Gemfile.lock
CHANGED
@@ -2,25 +2,45 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
ZenTest (4.8.0)
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
diff-lcs (1.1.3)
|
6
|
+
hoe (3.0.3)
|
7
|
+
rake (~> 0.8)
|
8
|
+
hoe-bundler (1.1.0)
|
9
|
+
hoe (>= 2.2.0)
|
10
|
+
hoe-gemspec (1.0.0)
|
11
|
+
hoe (>= 2.2.0)
|
12
|
+
hoe-git (1.5.0)
|
13
|
+
hoe (>= 2.2.0)
|
14
|
+
json (1.6.6)
|
15
|
+
multi_json (1.3.6)
|
11
16
|
rake (0.9.2.2)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
17
|
+
rdoc (3.12)
|
18
|
+
json (~> 1.4)
|
19
|
+
rspec (2.11.0)
|
20
|
+
rspec-core (~> 2.11.0)
|
21
|
+
rspec-expectations (~> 2.11.0)
|
22
|
+
rspec-mocks (~> 2.11.0)
|
23
|
+
rspec-core (2.11.1)
|
24
|
+
rspec-expectations (2.11.3)
|
25
|
+
diff-lcs (~> 1.1.3)
|
26
|
+
rspec-given (1.5.0)
|
27
|
+
rspec (> 1.2.8)
|
28
|
+
rspec-mocks (2.11.3)
|
29
|
+
simplecov (0.6.4)
|
30
|
+
multi_json (~> 1.0)
|
31
|
+
simplecov-html (~> 0.5.3)
|
32
|
+
simplecov-html (0.5.3)
|
16
33
|
|
17
34
|
PLATFORMS
|
18
35
|
ruby
|
19
36
|
|
20
37
|
DEPENDENCIES
|
21
|
-
ZenTest
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
38
|
+
ZenTest (~> 4.8.0)
|
39
|
+
hoe (~> 3.0)
|
40
|
+
hoe-bundler (~> 1.1.0)
|
41
|
+
hoe-gemspec (~> 1.0.0)
|
42
|
+
hoe-git (~> 1.5.0)
|
43
|
+
rdoc (~> 3.10)
|
44
|
+
rspec (~> 2.11.0)
|
45
|
+
rspec-given (~> 1.0)
|
46
|
+
simplecov (~> 0.6.0)
|
data/Manifest.txt
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
.rspec
|
2
|
+
.simplecov
|
3
|
+
ChangeLog.md
|
4
|
+
Gemfile
|
5
|
+
Gemfile.lock
|
6
|
+
Manifest.txt
|
7
|
+
README.md
|
8
|
+
Rakefile
|
9
|
+
klomp.gemspec
|
10
|
+
lib/klomp.rb
|
11
|
+
lib/klomp/connection.rb
|
12
|
+
lib/klomp/frames.rb
|
13
|
+
lib/klomp/sentinel.rb
|
14
|
+
spec/acceptance/acceptance_spec.rb
|
15
|
+
spec/frames/auth_error.txt
|
16
|
+
spec/frames/connect.txt
|
17
|
+
spec/frames/connect_vhost.txt
|
18
|
+
spec/frames/connected.txt
|
19
|
+
spec/frames/disconnect.txt
|
20
|
+
spec/frames/error.txt
|
21
|
+
spec/frames/greeting.txt
|
22
|
+
spec/frames/message.txt
|
23
|
+
spec/frames/receipt.txt
|
24
|
+
spec/frames/subscribe.txt
|
25
|
+
spec/frames/unsubscribe.txt
|
26
|
+
spec/klomp/connection_spec.rb
|
27
|
+
spec/klomp/frames_spec.rb
|
28
|
+
spec/klomp/sentinel_spec.rb
|
29
|
+
spec/klomp_spec.rb
|
30
|
+
spec/spec_helper.rb
|
31
|
+
spec/support/have_received.rb
|
data/README.md
CHANGED
@@ -1,115 +1,137 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
##
|
1
|
+
# klomp
|
2
|
+
|
3
|
+
* http://github.com/livingsocial/klomp
|
4
|
+
|
5
|
+
## DESCRIPTION:
|
6
|
+
|
7
|
+
Klomp is a simple [Stomp] messaging client that keeps your sanity intact.
|
8
|
+
|
9
|
+
The purpose of Klomp is to be the simplest possible Stomp client. No in-memory
|
10
|
+
buffering of outgoing messages, no fanout subscriptions in-process, no
|
11
|
+
transactions, no complicated messaging patterns. Code simple enough so that when
|
12
|
+
something goes wrong, the problem is obvious.
|
13
|
+
|
14
|
+
[Stomp]: http://stomp.github.com/
|
15
|
+
|
16
|
+
## FEATURES:
|
17
|
+
|
18
|
+
The API surface area is minimal. `Klomp#publish` and `Klomp#subscribe` are your
|
19
|
+
main endpoints.
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
klomp = Klomp.new(["127.0.0.1:61613"], "login" => "mylogin", "passcode" => "mypassword")
|
23
|
+
|
24
|
+
klomp.publish("/queue/klomp", "sanity")
|
25
|
+
|
26
|
+
# subscribe with a block that gets invoked for each message
|
27
|
+
klomp.subscribe("/queue/klomp") do |msg|
|
28
|
+
puts msg.body # => sanity
|
29
|
+
end
|
30
|
+
|
31
|
+
# subscribe with an object that gets #call'd
|
32
|
+
class Klompen
|
33
|
+
def call(msg)
|
34
|
+
puts msg.body
|
35
|
+
end
|
36
|
+
end
|
37
|
+
# replaces previous subscribe block above
|
38
|
+
klomp.subscribe("/queue/klomp", Klompen.new)
|
39
|
+
klomp.unsubscribe("/queue/klomp")
|
40
|
+
|
41
|
+
klomp.disconnect
|
42
|
+
```
|
43
|
+
|
44
|
+
### Connecting
|
45
|
+
|
46
|
+
Connections are established when a `Klomp` object is constructed. Connections
|
47
|
+
can be established in several ways.
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
# Pass a single string containing host:port
|
51
|
+
klomp = Klomp.new "localhost:61613"
|
52
|
+
|
53
|
+
# Authentication with 'login' and 'passcode'
|
54
|
+
klomp = Klomp.new "localhost:61613", "login" => "bob", "passcode" => "farmville"
|
55
|
+
|
56
|
+
# With a stomp:// URL
|
57
|
+
klomp = Klomp.new "stomp://bob:farmville@localhost:61613"
|
58
|
+
```
|
59
|
+
|
60
|
+
#### Load-balancing
|
61
|
+
|
62
|
+
Klomp can be used to load-balance and maintain connections to multiple broker
|
63
|
+
hosts, such that if one broker goes down, the remaining broker(s) will be used.
|
64
|
+
Each broker is expected to provide an identical list of queues. To ensure
|
65
|
+
delivery, all Stomp clients should be connected to all brokers in the
|
66
|
+
load-balancing scenario.
|
67
|
+
|
68
|
+
Publish semantics are slightly different than those for subscribe:
|
69
|
+
|
70
|
+
- *Publish*: Klomp will publish each message on a randomly-selected broker.
|
71
|
+
- *Subscribe*: each Klomp object subscribes to the provided queues on all hosts.
|
72
|
+
|
73
|
+
Load-balanced connections are achieved with an array of servers.
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
klomp = Klomp.new ["broker-001:61613", "broker-002:61613"]
|
77
|
+
klomp = Klomp.new ["broker-001:61613", "broker-002:61613"], "login" => "bob", "passcode" => "farmville"
|
78
|
+
klomp = Klomp.new ["stomp://bob:farmville@broker-001:61613", "stomp://bob:farmville@broker-002:61613"]
|
79
|
+
```
|
80
|
+
|
81
|
+
#### Virtual hosts
|
82
|
+
|
83
|
+
Klomp can use the Stomp 1.1 "virtual host" feature in several ways.
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
# additional name in colon-separated triple
|
87
|
+
klomp = Klomp.new "virtual-host:localhost:61613"
|
88
|
+
# host option in constructor
|
89
|
+
klomp = Klomp.new "localhost:61613", "host" => "virtual-host"
|
90
|
+
# host query parameter in stomp:// url
|
91
|
+
klomp = Klomp.new "stomp://bob:farmville@localhost:61613?host=virtual-host"
|
92
|
+
```
|
93
|
+
|
94
|
+
#### Automatic reconnect
|
95
|
+
|
96
|
+
If a Klomp connection experiences errors reading from or writing to its socket,
|
97
|
+
the connection will go into an "offline" state. A sentinel thread will be
|
98
|
+
started that attempts to reconnect periodically at Fibonacci back-off intervals.
|
99
|
+
|
100
|
+
#### Logging
|
101
|
+
|
102
|
+
Klomp accepts a `Logger` object in the constructor options hash.
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
klomp = Klomp.new "localhost:61613", "logger" => Logger.new($stdout)
|
106
|
+
```
|
107
|
+
|
108
|
+
Background exceptions that occur in the subscriber thread as well as offline and
|
109
|
+
reconnect events will be logged at the `warn` level, while individual sent and
|
110
|
+
received message frames will be logged at the `debug` level.
|
111
|
+
|
112
|
+
## REQUIREMENTS / LIMITATIONS:
|
113
|
+
|
114
|
+
- Only supports [Stomp 1.1](http://stomp.github.com/stomp-specification-1.1.html)
|
115
|
+
- Only one subscription per queue per Klomp
|
116
|
+
- Only one handler object/block per queue. If you want to multi-dispatch a
|
117
|
+
message, write your own dispatcher.
|
118
|
+
- Only supports the following frames:
|
119
|
+
- CONNECT/CONNECTED (initial handshake)
|
120
|
+
- SEND
|
121
|
+
- SUBSCRIBE
|
122
|
+
- UNSUBSCRIBE
|
123
|
+
- DISCONNECT
|
124
|
+
- MESSAGE
|
125
|
+
- ERROR
|
126
|
+
- Not supported:
|
127
|
+
- ACK/NACK
|
128
|
+
- BEGIN/COMMIT/ABORT
|
129
|
+
- RECEIPT
|
130
|
+
- ack/receipt headers
|
131
|
+
|
132
|
+
## LICENSE:
|
133
|
+
|
134
|
+
The MIT License
|
113
135
|
|
114
136
|
Copyright (C) 2012 LivingSocial
|
115
137
|
|
@@ -130,7 +152,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
130
152
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
131
153
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
132
154
|
SOFTWARE.
|
133
|
-
|
134
|
-
## Credits
|
135
|
-
|
136
|
-
* [Michael Paul Thomas Conigliaro](http://conigliaro.org): Original author
|
data/Rakefile
CHANGED
@@ -1,8 +1,21 @@
|
|
1
1
|
require 'bundler/setup'
|
2
|
-
require '
|
3
|
-
require 'rake/testtask'
|
2
|
+
require 'hoe'
|
4
3
|
|
5
|
-
|
4
|
+
Hoe.plugin :bundler, :git, :gemspec, :gemcutter
|
6
5
|
|
7
|
-
|
8
|
-
|
6
|
+
Hoe.spec 'klomp' do
|
7
|
+
developer 'Nick Sieger', 'nick.sieger@livingsocial.com'
|
8
|
+
|
9
|
+
### Use markdown for changelog and readme
|
10
|
+
self.history_file = 'CHANGELOG.md'
|
11
|
+
self.readme_file = 'README.md'
|
12
|
+
|
13
|
+
### dependencies!
|
14
|
+
self.extra_dev_deps << [ 'hoe-bundler', '~> 1.1.0' ]
|
15
|
+
self.extra_dev_deps << [ 'hoe-gemspec', '~> 1.0.0' ]
|
16
|
+
self.extra_dev_deps << [ 'hoe-git', '~> 1.5.0' ]
|
17
|
+
self.extra_dev_deps << [ 'rspec', '~> 2.11.0' ]
|
18
|
+
self.extra_dev_deps << [ 'ZenTest', '~> 4.8.0' ]
|
19
|
+
self.extra_dev_deps << [ 'rspec-given', '~> 1.0' ]
|
20
|
+
self.extra_dev_deps << [ 'simplecov', '~> 0.6.0' ]
|
21
|
+
end
|
data/klomp.gemspec
CHANGED
@@ -1,21 +1,56 @@
|
|
1
|
-
|
2
|
-
require 'klomp'
|
1
|
+
# -*- encoding: utf-8 -*-
|
3
2
|
|
4
|
-
Gem::Specification.new do |
|
5
|
-
|
6
|
-
|
7
|
-
gem.description = "A simple wrapper around the OnStomp library with additional features"
|
8
|
-
gem.summary = "A simple wrapper around the OnStomp library with additional features"
|
9
|
-
gem.homepage = "https://github.com/livingsocial/klomp"
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "klomp"
|
5
|
+
s.version = "1.0.0"
|
10
6
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Nick Sieger"]
|
9
|
+
s.date = "2012-10-03"
|
10
|
+
s.description = "Klomp is a simple [Stomp] messaging client that keeps your sanity intact.\n\nThe purpose of Klomp is to be the simplest possible Stomp client. No in-memory\nbuffering of outgoing messages, no fanout subscriptions in-process, no\ntransactions, no complicated messaging patterns. Code simple enough so that when\nsomething goes wrong, the problem is obvious.\n\n[Stomp]: http://stomp.github.com/"
|
11
|
+
s.email = ["nick.sieger@livingsocial.com"]
|
12
|
+
s.extra_rdoc_files = ["Manifest.txt"]
|
13
|
+
s.files = [".rspec", ".simplecov", "ChangeLog.md", "Gemfile", "Gemfile.lock", "Manifest.txt", "README.md", "Rakefile", "klomp.gemspec", "lib/klomp.rb", "lib/klomp/connection.rb", "lib/klomp/frames.rb", "lib/klomp/sentinel.rb", "spec/acceptance/acceptance_spec.rb", "spec/frames/auth_error.txt", "spec/frames/connect.txt", "spec/frames/connect_vhost.txt", "spec/frames/connected.txt", "spec/frames/disconnect.txt", "spec/frames/error.txt", "spec/frames/greeting.txt", "spec/frames/message.txt", "spec/frames/receipt.txt", "spec/frames/subscribe.txt", "spec/frames/unsubscribe.txt", "spec/klomp/connection_spec.rb", "spec/klomp/frames_spec.rb", "spec/klomp/sentinel_spec.rb", "spec/klomp_spec.rb", "spec/spec_helper.rb", "spec/support/have_received.rb", ".gemtest"]
|
14
|
+
s.homepage = "http://github.com/livingsocial/klomp"
|
15
|
+
s.rdoc_options = ["--main", "README.md"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = "klomp"
|
18
|
+
s.rubygems_version = "1.8.24"
|
19
|
+
s.summary = "Klomp is a simple [Stomp] messaging client that keeps your sanity intact"
|
17
20
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
+
if s.respond_to? :specification_version then
|
22
|
+
s.specification_version = 3
|
23
|
+
|
24
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
25
|
+
s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
|
26
|
+
s.add_development_dependency(%q<hoe-bundler>, ["~> 1.1.0"])
|
27
|
+
s.add_development_dependency(%q<hoe-gemspec>, ["~> 1.0.0"])
|
28
|
+
s.add_development_dependency(%q<hoe-git>, ["~> 1.5.0"])
|
29
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
|
30
|
+
s.add_development_dependency(%q<ZenTest>, ["~> 4.8.0"])
|
31
|
+
s.add_development_dependency(%q<rspec-given>, ["~> 1.0"])
|
32
|
+
s.add_development_dependency(%q<simplecov>, ["~> 0.6.0"])
|
33
|
+
s.add_development_dependency(%q<hoe>, ["~> 3.0"])
|
34
|
+
else
|
35
|
+
s.add_dependency(%q<rdoc>, ["~> 3.10"])
|
36
|
+
s.add_dependency(%q<hoe-bundler>, ["~> 1.1.0"])
|
37
|
+
s.add_dependency(%q<hoe-gemspec>, ["~> 1.0.0"])
|
38
|
+
s.add_dependency(%q<hoe-git>, ["~> 1.5.0"])
|
39
|
+
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
40
|
+
s.add_dependency(%q<ZenTest>, ["~> 4.8.0"])
|
41
|
+
s.add_dependency(%q<rspec-given>, ["~> 1.0"])
|
42
|
+
s.add_dependency(%q<simplecov>, ["~> 0.6.0"])
|
43
|
+
s.add_dependency(%q<hoe>, ["~> 3.0"])
|
44
|
+
end
|
45
|
+
else
|
46
|
+
s.add_dependency(%q<rdoc>, ["~> 3.10"])
|
47
|
+
s.add_dependency(%q<hoe-bundler>, ["~> 1.1.0"])
|
48
|
+
s.add_dependency(%q<hoe-gemspec>, ["~> 1.0.0"])
|
49
|
+
s.add_dependency(%q<hoe-git>, ["~> 1.5.0"])
|
50
|
+
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
51
|
+
s.add_dependency(%q<ZenTest>, ["~> 4.8.0"])
|
52
|
+
s.add_dependency(%q<rspec-given>, ["~> 1.0"])
|
53
|
+
s.add_dependency(%q<simplecov>, ["~> 0.6.0"])
|
54
|
+
s.add_dependency(%q<hoe>, ["~> 3.0"])
|
55
|
+
end
|
21
56
|
end
|