pebblebed 0.0.41 → 0.0.42
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 +45 -0
- data/integration/river_spec.rb +12 -5
- data/lib/pebblebed/rspec_helper.rb +58 -0
- data/lib/pebblebed/version.rb +1 -1
- data/spec/sinatra_spec.rb +37 -46
- metadata +37 -121
data/README.md
CHANGED
@@ -58,6 +58,51 @@ Other helper methods provided by this extension:
|
|
58
58
|
require_god # Halts with 403 if the current user is not a god
|
59
59
|
require_parameters(parameters, *keys) # Halts with 409 if the at least one of the provided keys is not in the params-hash
|
60
60
|
|
61
|
+
### Testing Sinatra APIs
|
62
|
+
|
63
|
+
To use the handy (but very, very dirty) helpers for the Pebbles Checkpoint authorization,
|
64
|
+
you must require `pebblebed/rspec_helper` (this is not included by default in the pebblebed gem)
|
65
|
+
and include `Pebblebed::RSpecHelper` in your test context:
|
66
|
+
|
67
|
+
|
68
|
+
```ruby
|
69
|
+
require 'pebblebed/rspec_helper'
|
70
|
+
|
71
|
+
describe Something do
|
72
|
+
include Pebblebed::RSpecHelper
|
73
|
+
end
|
74
|
+
```
|
75
|
+
|
76
|
+
You can set the current identity to be either god, a regular logged in user, or a guest user.
|
77
|
+
|
78
|
+
If you call either `god!` or `user!`, the sinatra app's
|
79
|
+
current session defaults to the string 'validsession'.
|
80
|
+
The current realm defaults to the string 'testrealm'.
|
81
|
+
|
82
|
+
You can override default values for :id or :session or :realm,
|
83
|
+
or add additional identity values on god or user by passing them in:
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
user!(:id => 7, :session => 'abc', :realm => 'area51', :profile => {:a => 'b'})
|
87
|
+
```
|
88
|
+
|
89
|
+
There are two convenience methods that are added to the context:
|
90
|
+
```ruby
|
91
|
+
current_identity # => the god or user, or nil if you've called guest!
|
92
|
+
another_identity # => a non-god user with an id of (current_user.id + 1)
|
93
|
+
```
|
94
|
+
|
95
|
+
```ruby
|
96
|
+
context "when god" do
|
97
|
+
before(:each) { god! }
|
98
|
+
it "has stuff in the test context" do
|
99
|
+
current_identity.god # => true
|
100
|
+
current_identity.id # => 1
|
101
|
+
|
102
|
+
other_identity.id # => 2
|
103
|
+
end
|
104
|
+
end
|
105
|
+
```
|
61
106
|
|
62
107
|
Not Sinatra
|
63
108
|
===========
|
data/integration/river_spec.rb
CHANGED
@@ -14,6 +14,8 @@ describe Pebblebed::River do
|
|
14
14
|
after(:each) do
|
15
15
|
subject.send(:bunny).queues.each do |name, queue|
|
16
16
|
queue.purge
|
17
|
+
# If you don't delete the queue, the subscription will not
|
18
|
+
# change, even if you give it a new one.
|
17
19
|
queue.delete
|
18
20
|
end
|
19
21
|
subject.disconnect
|
@@ -90,14 +92,19 @@ describe Pebblebed::River do
|
|
90
92
|
end
|
91
93
|
|
92
94
|
it "subscribes" do
|
93
|
-
queue = subject.queue(:name => 'alltestivore', :path => 'rspec|testunit', :klass => 'thing')
|
95
|
+
queue = subject.queue(:name => 'alltestivore', :path => 'area51.rspec|area51.testunit|area52.*|area53.**', :klass => 'thing', :event => 'smile')
|
94
96
|
|
95
97
|
queue.message_count.should eq(0)
|
96
|
-
subject.publish(:event => 'smile', :uid => 'thing:rspec$1', :attributes => {:a => 'b'})
|
97
|
-
subject.publish(:event => '
|
98
|
-
subject.publish(:event => '
|
98
|
+
subject.publish(:event => 'smile', :uid => 'thing:area51.rspec$1', :attributes => {:a => 'b'})
|
99
|
+
subject.publish(:event => 'smile', :uid => 'thing:area51.testunit$2', :attributes => {:a => 'b'})
|
100
|
+
subject.publish(:event => 'smile', :uid => 'thing:area51.whatever$3', :attributes => {:a => 'b'}) # doesn't match path
|
101
|
+
subject.publish(:event => 'frown', :uid => 'thing:area51.rspec$4', :attributes => {:a => 'b'}) # doesn't match event
|
102
|
+
subject.publish(:event => 'smile', :uid => 'thing:area52.one.two.three$5', :attributes => {:a => 'b'}) # doesn't match wildcard path
|
103
|
+
subject.publish(:event => 'smile', :uid => 'thing:area52.one$6', :attributes => {:a => 'b'}) # matches wildcard path
|
104
|
+
subject.publish(:event => 'smile', :uid => 'thing:area53.one.two.three$7', :attributes => {:a => 'b'}) # matches wildcard path
|
105
|
+
|
99
106
|
sleep(0.1)
|
100
|
-
queue.message_count.should eq(
|
107
|
+
queue.message_count.should eq(4)
|
101
108
|
end
|
102
109
|
|
103
110
|
it "is a durable queue" do
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'deepstruct'
|
2
|
+
|
3
|
+
module Pebblebed
|
4
|
+
module RSpecHelper
|
5
|
+
def god!(options = {})
|
6
|
+
options.delete(:god)
|
7
|
+
stub_current_identity(options.merge(:id => 1, :god => true))
|
8
|
+
end
|
9
|
+
|
10
|
+
def user!(options = {})
|
11
|
+
options.delete(:god)
|
12
|
+
stub_current_identity(options.merge(:id => 1, :god => false))
|
13
|
+
end
|
14
|
+
|
15
|
+
def guest!
|
16
|
+
stub_current_identity
|
17
|
+
end
|
18
|
+
|
19
|
+
def current_identity
|
20
|
+
@current_identity
|
21
|
+
end
|
22
|
+
|
23
|
+
def another_identity
|
24
|
+
id = current_identity ? (current_identity.id + 1) : 1
|
25
|
+
DeepStruct.wrap(default_identity_options.merge(:id => id, :god => false))
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
def stub_current_identity(options = {})
|
30
|
+
guest = options.empty?
|
31
|
+
|
32
|
+
identity = nil
|
33
|
+
unless guest
|
34
|
+
identity = default_identity_options.merge(options)
|
35
|
+
end
|
36
|
+
|
37
|
+
@current_identity = DeepStruct.wrap(identity)
|
38
|
+
|
39
|
+
checkpoint = stub(:get => DeepStruct.wrap(:identity => identity), :service_url => 'http://example.com')
|
40
|
+
Pebblebed::Connector.any_instance.stub(:checkpoint => checkpoint)
|
41
|
+
|
42
|
+
unless guest
|
43
|
+
session = options.fetch(:session) { 'validsession' }
|
44
|
+
stub_current_session session
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def default_identity_options
|
49
|
+
{:realm => 'testrealm'}
|
50
|
+
end
|
51
|
+
|
52
|
+
def stub_current_session(session)
|
53
|
+
app.any_instance.stub(:current_session).and_return session
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
data/lib/pebblebed/version.rb
CHANGED
data/spec/sinatra_spec.rb
CHANGED
@@ -4,6 +4,7 @@ require 'pebblebed/sinatra'
|
|
4
4
|
require 'sinatra/base'
|
5
5
|
require 'rack/test'
|
6
6
|
require 'spec_helper'
|
7
|
+
require 'pebblebed/rspec_helper'
|
7
8
|
|
8
9
|
class TestApp < Sinatra::Base
|
9
10
|
register Sinatra::Pebblebed
|
@@ -36,31 +37,16 @@ end
|
|
36
37
|
|
37
38
|
describe Sinatra::Pebblebed do
|
38
39
|
include Rack::Test::Methods
|
40
|
+
include Pebblebed::RSpecHelper
|
39
41
|
|
40
42
|
def app
|
41
43
|
TestApp
|
42
44
|
end
|
43
45
|
|
44
|
-
let(:guest) { DeepStruct.wrap({}) }
|
45
|
-
let(:alice) { DeepStruct.wrap(:identity => {:id => 1, :god => false}) }
|
46
|
-
let(:odin) { DeepStruct.wrap(:identity => {:id => 2, :god => true}) }
|
47
|
-
|
48
|
-
let(:checkpoint) { stub(:get => identity, :service_url => 'http://example.com') }
|
49
|
-
|
50
|
-
before :each do
|
51
|
-
TestApp.any_instance.stub(:current_session).and_return "validsessionyesyesyes"
|
52
|
-
Pebblebed::Connector.any_instance.stub(:checkpoint).and_return checkpoint
|
53
|
-
end
|
54
|
-
|
55
46
|
let(:random_session) { rand(36**128).to_s(36) }
|
56
47
|
|
57
|
-
before :each do
|
58
|
-
# Make sure the app get an uniqie session key for every received request
|
59
|
-
TestApp.any_instance.stub(:current_session) { random_session }
|
60
|
-
end
|
61
|
-
|
62
48
|
context "a guest" do
|
63
|
-
|
49
|
+
before(:each) { guest! }
|
64
50
|
|
65
51
|
specify "can see public endpoint" do
|
66
52
|
get '/public'
|
@@ -84,7 +70,7 @@ describe Sinatra::Pebblebed do
|
|
84
70
|
end
|
85
71
|
|
86
72
|
context "as a user" do
|
87
|
-
|
73
|
+
before(:each) { user! }
|
88
74
|
|
89
75
|
specify "can see public endpoint" do
|
90
76
|
get '/public'
|
@@ -103,7 +89,7 @@ describe Sinatra::Pebblebed do
|
|
103
89
|
end
|
104
90
|
|
105
91
|
context "as a god" do
|
106
|
-
|
92
|
+
before(:each) { god!(:session => random_session) }
|
107
93
|
|
108
94
|
specify "can see public endpoint" do
|
109
95
|
get '/public'
|
@@ -122,11 +108,13 @@ describe Sinatra::Pebblebed do
|
|
122
108
|
end
|
123
109
|
|
124
110
|
describe "error handling" do
|
125
|
-
|
111
|
+
before(:each) { guest! }
|
112
|
+
|
126
113
|
it "Adds graceful handling of HttpNotFoundError exceptions" do
|
127
114
|
get '/nonexistant'
|
128
115
|
last_response.status.should == 404
|
129
116
|
end
|
117
|
+
|
130
118
|
it "Gives the error message of HttpNotFoundError as response body" do
|
131
119
|
get '/nonexistant'
|
132
120
|
last_response.status.should == 404
|
@@ -134,33 +122,36 @@ describe Sinatra::Pebblebed do
|
|
134
122
|
end
|
135
123
|
end
|
136
124
|
|
137
|
-
describe "
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
125
|
+
describe "identity caching" do
|
126
|
+
|
127
|
+
context "with logged in user" do
|
128
|
+
before(:each) { user!(:session => random_session) }
|
129
|
+
let(:checkpoint) { Pebblebed::Connector.new.checkpoint }
|
130
|
+
|
131
|
+
it "is not turned on by default" do
|
132
|
+
checkpoint.should_receive(:get).twice
|
133
|
+
get '/private'
|
134
|
+
get '/private'
|
135
|
+
end
|
136
|
+
|
137
|
+
it "can be turned on" do
|
138
|
+
app.set :cache_current_identity, true
|
139
|
+
checkpoint.should_receive(:get).once
|
140
|
+
get '/private'
|
141
|
+
get '/private'
|
142
|
+
end
|
143
|
+
|
144
|
+
context "with guest user" do
|
145
|
+
before(:each) { guest! }
|
146
|
+
|
147
|
+
it "is disabled" do
|
148
|
+
app.set :cache_current_identity, true
|
149
|
+
checkpoint.should_receive(:get).twice
|
150
|
+
get '/private'
|
151
|
+
get '/private'
|
152
|
+
end
|
153
|
+
end
|
152
154
|
end
|
153
|
-
end
|
154
|
-
|
155
|
-
describe "identity caching disabled when no current user" do
|
156
|
-
let(:identity) { {} }
|
157
155
|
|
158
|
-
it "will not cache identity when there is no current identity" do
|
159
|
-
identity = nil
|
160
|
-
app.set :cache_current_identity, true
|
161
|
-
checkpoint.should_receive(:get).twice
|
162
|
-
get '/private'
|
163
|
-
get '/private'
|
164
|
-
end
|
165
156
|
end
|
166
157
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pebblebed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.42
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-01-
|
13
|
+
date: 2013-01-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirement: &70269360765760 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,15 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ! '>='
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: '0'
|
25
|
+
version_requirements: *70269360765760
|
31
26
|
- !ruby/object:Gem::Dependency
|
32
27
|
name: rake
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
28
|
+
requirement: &70269360765140 !ruby/object:Gem::Requirement
|
34
29
|
none: false
|
35
30
|
requirements:
|
36
31
|
- - ! '>='
|
@@ -38,15 +33,10 @@ dependencies:
|
|
38
33
|
version: '0'
|
39
34
|
type: :development
|
40
35
|
prerelease: false
|
41
|
-
version_requirements:
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - ! '>='
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0'
|
36
|
+
version_requirements: *70269360765140
|
47
37
|
- !ruby/object:Gem::Dependency
|
48
38
|
name: simplecov
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirement: &70269360764520 !ruby/object:Gem::Requirement
|
50
40
|
none: false
|
51
41
|
requirements:
|
52
42
|
- - ! '>='
|
@@ -54,15 +44,10 @@ dependencies:
|
|
54
44
|
version: '0'
|
55
45
|
type: :development
|
56
46
|
prerelease: false
|
57
|
-
version_requirements:
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- - ! '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
47
|
+
version_requirements: *70269360764520
|
63
48
|
- !ruby/object:Gem::Dependency
|
64
49
|
name: sinatra
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirement: &70269360763860 !ruby/object:Gem::Requirement
|
66
51
|
none: false
|
67
52
|
requirements:
|
68
53
|
- - ! '>='
|
@@ -70,15 +55,10 @@ dependencies:
|
|
70
55
|
version: '0'
|
71
56
|
type: :development
|
72
57
|
prerelease: false
|
73
|
-
version_requirements:
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - ! '>='
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '0'
|
58
|
+
version_requirements: *70269360763860
|
79
59
|
- !ruby/object:Gem::Dependency
|
80
60
|
name: rack-test
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
61
|
+
requirement: &70269360763420 !ruby/object:Gem::Requirement
|
82
62
|
none: false
|
83
63
|
requirements:
|
84
64
|
- - ! '>='
|
@@ -86,15 +66,10 @@ dependencies:
|
|
86
66
|
version: '0'
|
87
67
|
type: :development
|
88
68
|
prerelease: false
|
89
|
-
version_requirements:
|
90
|
-
none: false
|
91
|
-
requirements:
|
92
|
-
- - ! '>='
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '0'
|
69
|
+
version_requirements: *70269360763420
|
95
70
|
- !ruby/object:Gem::Dependency
|
96
71
|
name: memcache_mock
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirement: &70269360762920 !ruby/object:Gem::Requirement
|
98
73
|
none: false
|
99
74
|
requirements:
|
100
75
|
- - ! '>='
|
@@ -102,15 +77,10 @@ dependencies:
|
|
102
77
|
version: '0'
|
103
78
|
type: :development
|
104
79
|
prerelease: false
|
105
|
-
version_requirements:
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ! '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
80
|
+
version_requirements: *70269360762920
|
111
81
|
- !ruby/object:Gem::Dependency
|
112
82
|
name: deepstruct
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
83
|
+
requirement: &70269360778520 !ruby/object:Gem::Requirement
|
114
84
|
none: false
|
115
85
|
requirements:
|
116
86
|
- - ! '>='
|
@@ -118,15 +88,10 @@ dependencies:
|
|
118
88
|
version: 0.0.4
|
119
89
|
type: :runtime
|
120
90
|
prerelease: false
|
121
|
-
version_requirements:
|
122
|
-
none: false
|
123
|
-
requirements:
|
124
|
-
- - ! '>='
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: 0.0.4
|
91
|
+
version_requirements: *70269360778520
|
127
92
|
- !ruby/object:Gem::Dependency
|
128
93
|
name: curb
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirement: &70269360777860 !ruby/object:Gem::Requirement
|
130
95
|
none: false
|
131
96
|
requirements:
|
132
97
|
- - ! '>='
|
@@ -134,15 +99,10 @@ dependencies:
|
|
134
99
|
version: 0.7.14
|
135
100
|
type: :runtime
|
136
101
|
prerelease: false
|
137
|
-
version_requirements:
|
138
|
-
none: false
|
139
|
-
requirements:
|
140
|
-
- - ! '>='
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
version: 0.7.14
|
102
|
+
version_requirements: *70269360777860
|
143
103
|
- !ruby/object:Gem::Dependency
|
144
104
|
name: yajl-ruby
|
145
|
-
requirement: !ruby/object:Gem::Requirement
|
105
|
+
requirement: &70269360777480 !ruby/object:Gem::Requirement
|
146
106
|
none: false
|
147
107
|
requirements:
|
148
108
|
- - ! '>='
|
@@ -150,15 +110,10 @@ dependencies:
|
|
150
110
|
version: '0'
|
151
111
|
type: :runtime
|
152
112
|
prerelease: false
|
153
|
-
version_requirements:
|
154
|
-
none: false
|
155
|
-
requirements:
|
156
|
-
- - ! '>='
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version: '0'
|
113
|
+
version_requirements: *70269360777480
|
159
114
|
- !ruby/object:Gem::Dependency
|
160
115
|
name: queryparams
|
161
|
-
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirement: &70269360777020 !ruby/object:Gem::Requirement
|
162
117
|
none: false
|
163
118
|
requirements:
|
164
119
|
- - ! '>='
|
@@ -166,15 +121,10 @@ dependencies:
|
|
166
121
|
version: '0'
|
167
122
|
type: :runtime
|
168
123
|
prerelease: false
|
169
|
-
version_requirements:
|
170
|
-
none: false
|
171
|
-
requirements:
|
172
|
-
- - ! '>='
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: '0'
|
124
|
+
version_requirements: *70269360777020
|
175
125
|
- !ruby/object:Gem::Dependency
|
176
126
|
name: futurevalue
|
177
|
-
requirement: !ruby/object:Gem::Requirement
|
127
|
+
requirement: &70269360776580 !ruby/object:Gem::Requirement
|
178
128
|
none: false
|
179
129
|
requirements:
|
180
130
|
- - ! '>='
|
@@ -182,15 +132,10 @@ dependencies:
|
|
182
132
|
version: '0'
|
183
133
|
type: :runtime
|
184
134
|
prerelease: false
|
185
|
-
version_requirements:
|
186
|
-
none: false
|
187
|
-
requirements:
|
188
|
-
- - ! '>='
|
189
|
-
- !ruby/object:Gem::Version
|
190
|
-
version: '0'
|
135
|
+
version_requirements: *70269360776580
|
191
136
|
- !ruby/object:Gem::Dependency
|
192
137
|
name: pathbuilder
|
193
|
-
requirement: !ruby/object:Gem::Requirement
|
138
|
+
requirement: &70269360776120 !ruby/object:Gem::Requirement
|
194
139
|
none: false
|
195
140
|
requirements:
|
196
141
|
- - ! '>='
|
@@ -198,15 +143,10 @@ dependencies:
|
|
198
143
|
version: '0'
|
199
144
|
type: :runtime
|
200
145
|
prerelease: false
|
201
|
-
version_requirements:
|
202
|
-
none: false
|
203
|
-
requirements:
|
204
|
-
- - ! '>='
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
version: '0'
|
146
|
+
version_requirements: *70269360776120
|
207
147
|
- !ruby/object:Gem::Dependency
|
208
148
|
name: nokogiri
|
209
|
-
requirement: !ruby/object:Gem::Requirement
|
149
|
+
requirement: &70269360775660 !ruby/object:Gem::Requirement
|
210
150
|
none: false
|
211
151
|
requirements:
|
212
152
|
- - ! '>='
|
@@ -214,15 +154,10 @@ dependencies:
|
|
214
154
|
version: '0'
|
215
155
|
type: :runtime
|
216
156
|
prerelease: false
|
217
|
-
version_requirements:
|
218
|
-
none: false
|
219
|
-
requirements:
|
220
|
-
- - ! '>='
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
157
|
+
version_requirements: *70269360775660
|
223
158
|
- !ruby/object:Gem::Dependency
|
224
159
|
name: i18n
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
160
|
+
requirement: &70269360775220 !ruby/object:Gem::Requirement
|
226
161
|
none: false
|
227
162
|
requirements:
|
228
163
|
- - ! '>='
|
@@ -230,15 +165,10 @@ dependencies:
|
|
230
165
|
version: '0'
|
231
166
|
type: :runtime
|
232
167
|
prerelease: false
|
233
|
-
version_requirements:
|
234
|
-
none: false
|
235
|
-
requirements:
|
236
|
-
- - ! '>='
|
237
|
-
- !ruby/object:Gem::Version
|
238
|
-
version: '0'
|
168
|
+
version_requirements: *70269360775220
|
239
169
|
- !ruby/object:Gem::Dependency
|
240
170
|
name: activesupport
|
241
|
-
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirement: &70269360774760 !ruby/object:Gem::Requirement
|
242
172
|
none: false
|
243
173
|
requirements:
|
244
174
|
- - ! '>='
|
@@ -246,15 +176,10 @@ dependencies:
|
|
246
176
|
version: '0'
|
247
177
|
type: :runtime
|
248
178
|
prerelease: false
|
249
|
-
version_requirements:
|
250
|
-
none: false
|
251
|
-
requirements:
|
252
|
-
- - ! '>='
|
253
|
-
- !ruby/object:Gem::Version
|
254
|
-
version: '0'
|
179
|
+
version_requirements: *70269360774760
|
255
180
|
- !ruby/object:Gem::Dependency
|
256
181
|
name: bunny
|
257
|
-
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirement: &70269360774320 !ruby/object:Gem::Requirement
|
258
183
|
none: false
|
259
184
|
requirements:
|
260
185
|
- - ! '>='
|
@@ -262,12 +187,7 @@ dependencies:
|
|
262
187
|
version: '0'
|
263
188
|
type: :runtime
|
264
189
|
prerelease: false
|
265
|
-
version_requirements:
|
266
|
-
none: false
|
267
|
-
requirements:
|
268
|
-
- - ! '>='
|
269
|
-
- !ruby/object:Gem::Version
|
270
|
-
version: '0'
|
190
|
+
version_requirements: *70269360774320
|
271
191
|
description: Development tools for working with Pebblebed
|
272
192
|
email:
|
273
193
|
- katrina@bengler.no
|
@@ -293,6 +213,7 @@ files:
|
|
293
213
|
- lib/pebblebed/parts.rb
|
294
214
|
- lib/pebblebed/river.rb
|
295
215
|
- lib/pebblebed/river/subscription.rb
|
216
|
+
- lib/pebblebed/rspec_helper.rb
|
296
217
|
- lib/pebblebed/security/access_data.rb
|
297
218
|
- lib/pebblebed/security/client.rb
|
298
219
|
- lib/pebblebed/security/listener.rb
|
@@ -326,21 +247,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
326
247
|
- - ! '>='
|
327
248
|
- !ruby/object:Gem::Version
|
328
249
|
version: '0'
|
329
|
-
segments:
|
330
|
-
- 0
|
331
|
-
hash: -3749590712618864123
|
332
250
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
333
251
|
none: false
|
334
252
|
requirements:
|
335
253
|
- - ! '>='
|
336
254
|
- !ruby/object:Gem::Version
|
337
255
|
version: '0'
|
338
|
-
segments:
|
339
|
-
- 0
|
340
|
-
hash: -3749590712618864123
|
341
256
|
requirements: []
|
342
257
|
rubyforge_project: pebblebed
|
343
|
-
rubygems_version: 1.8.
|
258
|
+
rubygems_version: 1.8.15
|
344
259
|
signing_key:
|
345
260
|
specification_version: 3
|
346
261
|
summary: Development tools for working with Pebblebed
|
@@ -359,3 +274,4 @@ test_files:
|
|
359
274
|
- spec/sinatra_spec.rb
|
360
275
|
- spec/spec_helper.rb
|
361
276
|
- spec/uid_spec.rb
|
277
|
+
has_rdoc:
|