pebblebed 0.0.46 → 0.0.47
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.
- checksums.yaml +15 -0
- data/Gemfile +1 -1
- data/README.md +2 -0
- data/lib/pebblebed/security/role_schema.rb +89 -0
- data/lib/pebblebed/version.rb +1 -1
- data/spec/security/role_shema_spec.rb +133 -0
- metadata +9 -45
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MjI1ZmZkZTFmNDI5YjM0NWViYWNiZjU2ODM0NjkxZjkxODY5ZWE3Yg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YWE2MjJlZThjMjg5ZmEwNDkxYWY2NWE4MWU1MzM2MzNjMmY5MDM4OQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NDMzYTYwYWNhM2JmNGE1NzU3ZWRhMmUwNzE1ZGExNGEyNWUxZDIwM2NkNWY0
|
10
|
+
ODc1YzMxYTM0OGM0ZDc5MWQxZTgyNjQ3YmFiMTBkM2JjNTQ2ZjUyZDNkYTdh
|
11
|
+
M2MxOWZmODM3OWY1NTFkOWRhNjg0ODVjYjdlMzYzMzUxMTMwOTg=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MDFjZTY0YTg1MmMzNGJjOGFmMDRlODRkMTMxYzI5NmY1MTU0YTc4MDE2NzA4
|
14
|
+
YTgzOGI5MTIwMjM2OTQ4NzE3ZDEzNjQxNzY3NWUxOWIwYjY3OTcxMWMyZmU3
|
15
|
+
MzcxMGQ1MTIxYzZkMWRjNDg3ZjBmMjkwMjFlYzdkNTUwYzYwNjI=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
Pebblebed
|
2
2
|
=========
|
3
3
|
|
4
|
+
[](https://semaphoreapp.com/projects/1582/branches/28288)
|
5
|
+
|
4
6
|
This gem contains a number of tools for ruby that wants to be a good pebble.
|
5
7
|
|
6
8
|
Usage
|
@@ -0,0 +1,89 @@
|
|
1
|
+
module Pebblebed
|
2
|
+
module Security
|
3
|
+
class RoleSchema
|
4
|
+
|
5
|
+
class UndefinedRole < Exception; end
|
6
|
+
|
7
|
+
attr_reader :connector, :identity
|
8
|
+
|
9
|
+
class << self
|
10
|
+
attr_reader :roles
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(connector, identity)
|
14
|
+
@connector = connector
|
15
|
+
@identity = identity
|
16
|
+
@role = find_current_role
|
17
|
+
end
|
18
|
+
|
19
|
+
def role
|
20
|
+
{
|
21
|
+
:current => @role[:name],
|
22
|
+
:capabilities => @role[:capabilities],
|
23
|
+
:upgrades => @role[:upgrades]
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
def missing_requirements_for_role(role)
|
28
|
+
roles = self.class.roles
|
29
|
+
current_role = roles.select {|r| r[:name] == @role[:name] }.first
|
30
|
+
for_role = roles.select {|r| role.to_sym == r[:name] }.first
|
31
|
+
raise UndefinedRole, "The role :#{role} is not defined." unless for_role
|
32
|
+
roles[roles.index(current_role)..roles.index(for_role)].map{|r| r[:requirements]}.flatten.uniq
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.requirements_for_role(role)
|
36
|
+
the_role = @roles.select {|r| r[:name] == role.to_sym }.first
|
37
|
+
raise UndefinedRole, "The role :#{role} is not defined." unless the_role
|
38
|
+
@roles[0..@roles.index(the_role)].map{|r| r[:requirements]}.flatten.uniq
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.role(name, options)
|
42
|
+
@roles ||= []
|
43
|
+
@role_rank_level ||= 0
|
44
|
+
@roles << options.merge(:name => name, :role_rank => @role_rank_level)
|
45
|
+
@roles.sort!{|a,b| a[:role_rank] <=> b[:role_rank]}
|
46
|
+
@role_rank_level += 1
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def find_current_role
|
52
|
+
the_role = begin
|
53
|
+
collected_roles = []
|
54
|
+
self.class.roles.each do |role|
|
55
|
+
collected_capabilities = []
|
56
|
+
if role[:requirements].any?
|
57
|
+
role[:requirements].each do |requirement|
|
58
|
+
# Check based on implemented check-methods in the subclass.
|
59
|
+
begin
|
60
|
+
if __send__("check_#{requirement}".to_sym)
|
61
|
+
collected_capabilities << requirement
|
62
|
+
end
|
63
|
+
rescue NoMethodError
|
64
|
+
raise NoMethodError, "You must implement method named :check_#{requirement} that returns true or false"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
if (role[:requirements] & collected_capabilities) == role[:requirements]
|
68
|
+
the_role = role
|
69
|
+
collected_roles << role
|
70
|
+
end
|
71
|
+
else
|
72
|
+
the_role = role
|
73
|
+
collected_roles << role
|
74
|
+
end
|
75
|
+
end
|
76
|
+
the_role.merge(:upgrades => begin
|
77
|
+
result = {}
|
78
|
+
(self.class.roles - collected_roles).each{|r|
|
79
|
+
result[:"#{r[:name]}"] = r[:requirements]
|
80
|
+
}
|
81
|
+
result
|
82
|
+
end
|
83
|
+
)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
data/lib/pebblebed/version.rb
CHANGED
@@ -0,0 +1,133 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'deepstruct'
|
3
|
+
require 'pebblebed/config'
|
4
|
+
require 'pebblebed/connector'
|
5
|
+
require 'pebblebed/security/role_schema'
|
6
|
+
|
7
|
+
|
8
|
+
describe Pebblebed::Security::RoleSchema do
|
9
|
+
|
10
|
+
class InvalidRoleSchema < Pebblebed::Security::RoleSchema
|
11
|
+
role :guest, :capabilities => [], :requirements => []
|
12
|
+
role :contributor, :capabilities => [:comment, :kudo], :requirements => [:logged_in]
|
13
|
+
end
|
14
|
+
|
15
|
+
class CustomRoleSchema < Pebblebed::Security::RoleSchema
|
16
|
+
role :guest, :capabilities => [], :requirements => []
|
17
|
+
role :identified, :capabilities => [:kudo], :requirements => [:logged_in]
|
18
|
+
role :contributor, :capabilities => [:comment, :kudo], :requirements => [:logged_in, :verified_mobile]
|
19
|
+
|
20
|
+
def check_logged_in
|
21
|
+
return true if identity and identity['identity']
|
22
|
+
false
|
23
|
+
end
|
24
|
+
|
25
|
+
def check_verified_mobile
|
26
|
+
return true if identity and identity['identity'] and identity['identity']['verified_mobile']
|
27
|
+
false
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
let(:connector) {
|
33
|
+
Pebblebed::Connector.new("session_key")
|
34
|
+
}
|
35
|
+
|
36
|
+
let(:guest) {
|
37
|
+
DeepStruct.wrap({})
|
38
|
+
}
|
39
|
+
|
40
|
+
let(:contributor) {
|
41
|
+
DeepStruct.wrap(:identity => {:realm => 'testrealm', :id => 1, :god => false})
|
42
|
+
}
|
43
|
+
|
44
|
+
let(:contributor_with_mobile) {
|
45
|
+
DeepStruct.wrap(:identity => {:realm => 'testrealm', :id => 1, :god => false, :verified_mobile => true})
|
46
|
+
}
|
47
|
+
|
48
|
+
context "invalid role schema" do
|
49
|
+
|
50
|
+
let(:schema) {
|
51
|
+
InvalidRoleSchema.new(connector, guest)
|
52
|
+
}
|
53
|
+
|
54
|
+
it "raises a NoMethodError with explaination about what you need to implement" do
|
55
|
+
expect {
|
56
|
+
schema.role
|
57
|
+
}.to raise_error(NoMethodError, "You must implement method named :check_logged_in that returns true or false")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "basics" do
|
62
|
+
let(:schema) {
|
63
|
+
CustomRoleSchema.new(connector, guest)
|
64
|
+
}
|
65
|
+
|
66
|
+
it "has connector and identity attributes" do
|
67
|
+
schema.connector.should eq connector
|
68
|
+
schema.identity.should eq guest
|
69
|
+
end
|
70
|
+
|
71
|
+
it "has the correct roles defined" do
|
72
|
+
CustomRoleSchema.roles.should == [{:capabilities=>[], :requirements=>[], :name=>:guest, :role_rank=>0}, {:capabilities=>[:kudo], :requirements=>[:logged_in], :name=>:identified, :role_rank=>1}, {:capabilities=>[:comment, :kudo], :requirements=>[:logged_in, :verified_mobile], :name=>:contributor, :role_rank=>2}]
|
73
|
+
end
|
74
|
+
|
75
|
+
it "has an answer to requirements for a role" do
|
76
|
+
CustomRoleSchema.requirements_for_role(:identified).should == [:logged_in]
|
77
|
+
CustomRoleSchema.requirements_for_role(:contributor).should == [:logged_in, :verified_mobile]
|
78
|
+
end
|
79
|
+
|
80
|
+
it "gives a exception when the role is not found" do
|
81
|
+
expect {
|
82
|
+
CustomRoleSchema.requirements_for_role(:foo)
|
83
|
+
}.to raise_error(Pebblebed::Security::RoleSchema::UndefinedRole)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "gives the missing requirements for current role compared to a role" do
|
87
|
+
schema.missing_requirements_for_role(:identified).should == [:logged_in]
|
88
|
+
schema.missing_requirements_for_role(:contributor).should == [:logged_in, :verified_mobile]
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
context "as guest" do
|
94
|
+
|
95
|
+
let(:schema) {
|
96
|
+
CustomRoleSchema.new(connector, guest)
|
97
|
+
}
|
98
|
+
|
99
|
+
it "returns the guest role" do
|
100
|
+
schema.role.should == {:current=>:guest, :capabilities=>[], :upgrades=>{:identified=>[:logged_in], :contributor=>[:logged_in, :verified_mobile]}}
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
context "as contributor" do
|
106
|
+
|
107
|
+
context "with a contributor without verified mobile" do
|
108
|
+
|
109
|
+
let(:schema) {
|
110
|
+
CustomRoleSchema.new(connector, contributor)
|
111
|
+
}
|
112
|
+
|
113
|
+
it "returns the idenitified role" do
|
114
|
+
schema.role.should == {:current=>:identified, :capabilities=>[:kudo], :upgrades=>{:contributor=>[:logged_in, :verified_mobile]}}
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
context "with a contributor with a verified mobile" do
|
120
|
+
|
121
|
+
let(:schema) {
|
122
|
+
CustomRoleSchema.new(connector, contributor_with_mobile)
|
123
|
+
}
|
124
|
+
|
125
|
+
it "returns the contributor role" do
|
126
|
+
schema.role.should == {:current=>:contributor, :capabilities=>[:comment, :kudo], :upgrades=>{}}
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pebblebed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.47
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Katrina Owen
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-02
|
12
|
+
date: 2013-04-02 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rspec
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ! '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :development
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ! '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: rake
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ! '>='
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: simplecov
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ! '>='
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ! '>='
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: sinatra
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ! '>='
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ! '>='
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: rack-test
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ! '>='
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ! '>='
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -95,7 +84,6 @@ dependencies:
|
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: memcache_mock
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ! '>='
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ! '>='
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,7 +98,6 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: deepstruct
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
102
|
- - ! '>='
|
117
103
|
- !ruby/object:Gem::Version
|
@@ -119,7 +105,6 @@ dependencies:
|
|
119
105
|
type: :runtime
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
109
|
- - ! '>='
|
125
110
|
- !ruby/object:Gem::Version
|
@@ -127,7 +112,6 @@ dependencies:
|
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: curb
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
116
|
- - ! '>='
|
133
117
|
- !ruby/object:Gem::Version
|
@@ -135,7 +119,6 @@ dependencies:
|
|
135
119
|
type: :runtime
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
123
|
- - ! '>='
|
141
124
|
- !ruby/object:Gem::Version
|
@@ -143,7 +126,6 @@ dependencies:
|
|
143
126
|
- !ruby/object:Gem::Dependency
|
144
127
|
name: yajl-ruby
|
145
128
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
129
|
requirements:
|
148
130
|
- - ! '>='
|
149
131
|
- !ruby/object:Gem::Version
|
@@ -151,7 +133,6 @@ dependencies:
|
|
151
133
|
type: :runtime
|
152
134
|
prerelease: false
|
153
135
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
136
|
requirements:
|
156
137
|
- - ! '>='
|
157
138
|
- !ruby/object:Gem::Version
|
@@ -159,7 +140,6 @@ dependencies:
|
|
159
140
|
- !ruby/object:Gem::Dependency
|
160
141
|
name: queryparams
|
161
142
|
requirement: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
143
|
requirements:
|
164
144
|
- - ! '>='
|
165
145
|
- !ruby/object:Gem::Version
|
@@ -167,7 +147,6 @@ dependencies:
|
|
167
147
|
type: :runtime
|
168
148
|
prerelease: false
|
169
149
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
150
|
requirements:
|
172
151
|
- - ! '>='
|
173
152
|
- !ruby/object:Gem::Version
|
@@ -175,7 +154,6 @@ dependencies:
|
|
175
154
|
- !ruby/object:Gem::Dependency
|
176
155
|
name: futurevalue
|
177
156
|
requirement: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
157
|
requirements:
|
180
158
|
- - ! '>='
|
181
159
|
- !ruby/object:Gem::Version
|
@@ -183,7 +161,6 @@ dependencies:
|
|
183
161
|
type: :runtime
|
184
162
|
prerelease: false
|
185
163
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
164
|
requirements:
|
188
165
|
- - ! '>='
|
189
166
|
- !ruby/object:Gem::Version
|
@@ -191,7 +168,6 @@ dependencies:
|
|
191
168
|
- !ruby/object:Gem::Dependency
|
192
169
|
name: pathbuilder
|
193
170
|
requirement: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
171
|
requirements:
|
196
172
|
- - ! '>='
|
197
173
|
- !ruby/object:Gem::Version
|
@@ -199,7 +175,6 @@ dependencies:
|
|
199
175
|
type: :runtime
|
200
176
|
prerelease: false
|
201
177
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
178
|
requirements:
|
204
179
|
- - ! '>='
|
205
180
|
- !ruby/object:Gem::Version
|
@@ -207,7 +182,6 @@ dependencies:
|
|
207
182
|
- !ruby/object:Gem::Dependency
|
208
183
|
name: nokogiri
|
209
184
|
requirement: !ruby/object:Gem::Requirement
|
210
|
-
none: false
|
211
185
|
requirements:
|
212
186
|
- - ! '>='
|
213
187
|
- !ruby/object:Gem::Version
|
@@ -215,7 +189,6 @@ dependencies:
|
|
215
189
|
type: :runtime
|
216
190
|
prerelease: false
|
217
191
|
version_requirements: !ruby/object:Gem::Requirement
|
218
|
-
none: false
|
219
192
|
requirements:
|
220
193
|
- - ! '>='
|
221
194
|
- !ruby/object:Gem::Version
|
@@ -223,7 +196,6 @@ dependencies:
|
|
223
196
|
- !ruby/object:Gem::Dependency
|
224
197
|
name: i18n
|
225
198
|
requirement: !ruby/object:Gem::Requirement
|
226
|
-
none: false
|
227
199
|
requirements:
|
228
200
|
- - ! '>='
|
229
201
|
- !ruby/object:Gem::Version
|
@@ -231,7 +203,6 @@ dependencies:
|
|
231
203
|
type: :runtime
|
232
204
|
prerelease: false
|
233
205
|
version_requirements: !ruby/object:Gem::Requirement
|
234
|
-
none: false
|
235
206
|
requirements:
|
236
207
|
- - ! '>='
|
237
208
|
- !ruby/object:Gem::Version
|
@@ -239,7 +210,6 @@ dependencies:
|
|
239
210
|
- !ruby/object:Gem::Dependency
|
240
211
|
name: activesupport
|
241
212
|
requirement: !ruby/object:Gem::Requirement
|
242
|
-
none: false
|
243
213
|
requirements:
|
244
214
|
- - ! '>='
|
245
215
|
- !ruby/object:Gem::Version
|
@@ -247,7 +217,6 @@ dependencies:
|
|
247
217
|
type: :runtime
|
248
218
|
prerelease: false
|
249
219
|
version_requirements: !ruby/object:Gem::Requirement
|
250
|
-
none: false
|
251
220
|
requirements:
|
252
221
|
- - ! '>='
|
253
222
|
- !ruby/object:Gem::Version
|
@@ -255,7 +224,6 @@ dependencies:
|
|
255
224
|
- !ruby/object:Gem::Dependency
|
256
225
|
name: bunny
|
257
226
|
requirement: !ruby/object:Gem::Requirement
|
258
|
-
none: false
|
259
227
|
requirements:
|
260
228
|
- - ! '>='
|
261
229
|
- !ruby/object:Gem::Version
|
@@ -263,7 +231,6 @@ dependencies:
|
|
263
231
|
type: :runtime
|
264
232
|
prerelease: false
|
265
233
|
version_requirements: !ruby/object:Gem::Requirement
|
266
|
-
none: false
|
267
234
|
requirements:
|
268
235
|
- - ! '>='
|
269
236
|
- !ruby/object:Gem::Version
|
@@ -297,6 +264,7 @@ files:
|
|
297
264
|
- lib/pebblebed/security/access_data.rb
|
298
265
|
- lib/pebblebed/security/client.rb
|
299
266
|
- lib/pebblebed/security/listener.rb
|
267
|
+
- lib/pebblebed/security/role_schema.rb
|
300
268
|
- lib/pebblebed/sinatra.rb
|
301
269
|
- lib/pebblebed/uid.rb
|
302
270
|
- lib/pebblebed/version.rb
|
@@ -312,38 +280,32 @@ files:
|
|
312
280
|
- spec/security/access_data_spec.rb
|
313
281
|
- spec/security/client_spec.rb
|
314
282
|
- spec/security/listener_spec.rb
|
283
|
+
- spec/security/role_shema_spec.rb
|
315
284
|
- spec/sinatra_spec.rb
|
316
285
|
- spec/spec_helper.rb
|
317
286
|
- spec/uid_spec.rb
|
318
287
|
homepage: ''
|
319
288
|
licenses: []
|
289
|
+
metadata: {}
|
320
290
|
post_install_message:
|
321
291
|
rdoc_options: []
|
322
292
|
require_paths:
|
323
293
|
- lib
|
324
294
|
required_ruby_version: !ruby/object:Gem::Requirement
|
325
|
-
none: false
|
326
295
|
requirements:
|
327
296
|
- - ! '>='
|
328
297
|
- !ruby/object:Gem::Version
|
329
298
|
version: '0'
|
330
|
-
segments:
|
331
|
-
- 0
|
332
|
-
hash: 1194197050294638142
|
333
299
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
334
|
-
none: false
|
335
300
|
requirements:
|
336
301
|
- - ! '>='
|
337
302
|
- !ruby/object:Gem::Version
|
338
303
|
version: '0'
|
339
|
-
segments:
|
340
|
-
- 0
|
341
|
-
hash: 1194197050294638142
|
342
304
|
requirements: []
|
343
305
|
rubyforge_project: pebblebed
|
344
|
-
rubygems_version:
|
306
|
+
rubygems_version: 2.0.3
|
345
307
|
signing_key:
|
346
|
-
specification_version:
|
308
|
+
specification_version: 4
|
347
309
|
summary: Development tools for working with Pebblebed
|
348
310
|
test_files:
|
349
311
|
- spec/config_spec.rb
|
@@ -357,6 +319,8 @@ test_files:
|
|
357
319
|
- spec/security/access_data_spec.rb
|
358
320
|
- spec/security/client_spec.rb
|
359
321
|
- spec/security/listener_spec.rb
|
322
|
+
- spec/security/role_shema_spec.rb
|
360
323
|
- spec/sinatra_spec.rb
|
361
324
|
- spec/spec_helper.rb
|
362
325
|
- spec/uid_spec.rb
|
326
|
+
has_rdoc:
|