shogun 1.0.0 → 2.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.
- checksums.yaml +4 -4
- data/lib/shogun/server.rb +0 -1
- data/lib/shogun/version.rb +1 -1
- data/lib/shogun.rb +0 -1
- data/spec/lib/shogun/authorizer_spec.rb +23 -0
- data/spec/lib/shogun/control_spec.rb +30 -0
- data/spec/lib/shogun/denormalizer_spec.rb +48 -0
- metadata +20 -36
- data/spec/lib/shogun_spec.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33438a9597cf46d470066ac33c77510ac76bb212
|
4
|
+
data.tar.gz: 3a929cc08633ef698656bef495f81bceb76076ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69f2f8155b984a4da075380cd7a3b741c81930160cd70f4ca07b7879fb4fc2664e19ee7180eebde52d969ba98eec89e60582db9885caaa9bc57e2a01b515f777
|
7
|
+
data.tar.gz: c75bc429fab9ba5ab803eef5c18ed30e1e5fb193f641ae9db1cad0aded97a7ec514f108a2fb4ea672dd32af7ba5309d65e179e6397ea73668c6cb4d47f2e1363
|
data/lib/shogun/server.rb
CHANGED
data/lib/shogun/version.rb
CHANGED
data/lib/shogun.rb
CHANGED
@@ -1,5 +1,28 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Shogun::Authorizer do
|
4
|
+
let(:authorizer_klass) do
|
5
|
+
class ExampleAuthorizer
|
6
|
+
include Shogun::Authorizer
|
7
|
+
end
|
8
|
+
end
|
9
|
+
let(:authorizer) { authorizer_klass.new }
|
4
10
|
|
11
|
+
describe "#denied?" do
|
12
|
+
let(:denied?) { authorizer.denied? }
|
13
|
+
|
14
|
+
context "if #allowed? is true" do
|
15
|
+
it "returns false" do
|
16
|
+
allow(authorizer).to receive(:allowed?).and_return(true)
|
17
|
+
expect(denied?).to be(false)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "if #allowed? is false" do
|
22
|
+
it "returns true" do
|
23
|
+
allow(authorizer).to receive(:allowed?).and_return(false)
|
24
|
+
expect(denied?).to be(true)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
5
28
|
end
|
@@ -1,5 +1,35 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Shogun::Control do
|
4
|
+
let(:control_klass) do
|
5
|
+
class ExampleControl
|
6
|
+
include Shogun::Control
|
7
|
+
end
|
8
|
+
end
|
9
|
+
let(:control) { control_klass.new }
|
10
|
+
let(:status) { 200 }
|
11
|
+
let(:headers) { { a: :b } }
|
12
|
+
let(:body) { "foo" }
|
4
13
|
|
14
|
+
before(:each) do
|
15
|
+
allow(control).to receive(:status).and_return(status)
|
16
|
+
allow(control).to receive(:headers).and_return(headers)
|
17
|
+
allow(control).to receive(:body).and_return(body)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#to_a" do
|
21
|
+
let(:to_a) { control.to_a }
|
22
|
+
|
23
|
+
it "returns an array with the status in first position" do
|
24
|
+
expect(to_a[0]).to be(status)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns an array with the headers in second position" do
|
28
|
+
expect(to_a[1]).to be(headers)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns an array with the body in third position" do
|
32
|
+
expect(to_a[2]).to be(body)
|
33
|
+
end
|
34
|
+
end
|
5
35
|
end
|
@@ -1,5 +1,53 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Shogun::Denormalizer do
|
4
|
+
let(:denormalizer_klass) do
|
5
|
+
class ExampleDenormalizer
|
6
|
+
include Shogun::Denormalizer
|
7
|
+
end
|
8
|
+
end
|
9
|
+
let(:denormalizer) { denormalizer_klass.new(object: presenter, fields: fields) }
|
10
|
+
let(:document_key) { "accounts" }
|
11
|
+
let(:presenter) { instance_double("Presenter") }
|
12
|
+
let(:links) { { "a" => "b" } }
|
13
|
+
let(:meta) { { "c" => "d" } }
|
14
|
+
let(:linked) { { "e" => "f" } }
|
15
|
+
let(:fields) { ["a", "b"] }
|
16
|
+
let(:a) { "1" }
|
17
|
+
let(:b) { "2" }
|
18
|
+
let(:mapping) { { "a" => "a", "b" => "b"} }
|
4
19
|
|
20
|
+
before(:each) do
|
21
|
+
allow(presenter).to receive(:meta).and_return(meta)
|
22
|
+
allow(presenter).to receive(:links).and_return(links)
|
23
|
+
allow(presenter).to receive(:linked).and_return(linked)
|
24
|
+
allow(presenter).to receive(:a).and_return(a)
|
25
|
+
allow(presenter).to receive(:b).and_return(b)
|
26
|
+
allow(denormalizer).to receive(:document_key).and_return(document_key)
|
27
|
+
allow(denormalizer).to receive(:mapping).and_return(mapping)
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#as_document" do
|
31
|
+
let(:as_document) { denormalizer.as_document }
|
32
|
+
|
33
|
+
it "returns a hash" do
|
34
|
+
expect(as_document).to be_a(Hash)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "contains the meta key" do
|
38
|
+
expect(as_document).to have_key(Shogun::Denormalizer::META_KEY)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "contains the links key" do
|
42
|
+
expect(as_document).to have_key(Shogun::Denormalizer::LINKS_KEY)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "contains the linked key" do
|
46
|
+
expect(as_document).to have_key(Shogun::Denormalizer::LINKED_KEY)
|
47
|
+
end
|
48
|
+
|
49
|
+
it "contains the document key" do
|
50
|
+
expect(as_document).to have_key(document_key)
|
51
|
+
end
|
52
|
+
end
|
5
53
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shogun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kurtis Rainbolt-Greene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: adamantium
|
@@ -38,132 +38,118 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.5'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rack-commonlogger
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '2.0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: rack-body_serializer
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
45
|
- - "~>"
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.0
|
47
|
+
version: '1.0'
|
62
48
|
type: :runtime
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
52
|
- - "~>"
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.0
|
54
|
+
version: '1.0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: rack-body_deserializer
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.0
|
61
|
+
version: '1.0'
|
76
62
|
type: :runtime
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.0
|
68
|
+
version: '1.0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: rack-authentication_bearer
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.0
|
75
|
+
version: '1.0'
|
90
76
|
type: :runtime
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.0
|
82
|
+
version: '1.0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rack-accept_setter
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
87
|
- - "~>"
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.0
|
89
|
+
version: '1.0'
|
104
90
|
type: :runtime
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
94
|
- - "~>"
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.0
|
96
|
+
version: '1.0'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: rack-chunker
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
101
|
- - "~>"
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.0
|
103
|
+
version: '1.0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
108
|
- - "~>"
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.0
|
110
|
+
version: '1.0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: rack-content_length_setter
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
115
|
- - "~>"
|
130
116
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.0
|
117
|
+
version: '1.0'
|
132
118
|
type: :runtime
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
122
|
- - "~>"
|
137
123
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.0
|
124
|
+
version: '1.0'
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: rack-runtime
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
129
|
- - "~>"
|
144
130
|
- !ruby/object:Gem::Version
|
145
|
-
version: 1.0
|
131
|
+
version: '1.0'
|
146
132
|
type: :runtime
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
136
|
- - "~>"
|
151
137
|
- !ruby/object:Gem::Version
|
152
|
-
version: 1.0
|
138
|
+
version: '1.0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: rack-log
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
156
142
|
requirements:
|
157
143
|
- - "~>"
|
158
144
|
- !ruby/object:Gem::Version
|
159
|
-
version: 1.0
|
145
|
+
version: '1.0'
|
160
146
|
type: :runtime
|
161
147
|
prerelease: false
|
162
148
|
version_requirements: !ruby/object:Gem::Requirement
|
163
149
|
requirements:
|
164
150
|
- - "~>"
|
165
151
|
- !ruby/object:Gem::Version
|
166
|
-
version: 1.0
|
152
|
+
version: '1.0'
|
167
153
|
- !ruby/object:Gem::Dependency
|
168
154
|
name: scrawl
|
169
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,7 +262,7 @@ dependencies:
|
|
276
262
|
- - "~>"
|
277
263
|
- !ruby/object:Gem::Version
|
278
264
|
version: '0.4'
|
279
|
-
description:
|
265
|
+
description: The core library for an HTTP API framework
|
280
266
|
email:
|
281
267
|
- me@kurtisrainboltgreene.name
|
282
268
|
executables:
|
@@ -331,7 +317,6 @@ files:
|
|
331
317
|
- spec/lib/shogun/verifier/range_spec.rb
|
332
318
|
- spec/lib/shogun/verifier/uniqueness_spec.rb
|
333
319
|
- spec/lib/shogun/verifier_spec.rb
|
334
|
-
- spec/lib/shogun_spec.rb
|
335
320
|
- spec/spec_helper.rb
|
336
321
|
homepage: http://krainboltgreene.github.io/shogun
|
337
322
|
licenses:
|
@@ -356,7 +341,7 @@ rubyforge_project:
|
|
356
341
|
rubygems_version: 2.4.2
|
357
342
|
signing_key:
|
358
343
|
specification_version: 4
|
359
|
-
summary:
|
344
|
+
summary: The core library for an HTTP API framework
|
360
345
|
test_files:
|
361
346
|
- spec/lib/shogun/authorizer_spec.rb
|
362
347
|
- spec/lib/shogun/control/null_spec.rb
|
@@ -380,6 +365,5 @@ test_files:
|
|
380
365
|
- spec/lib/shogun/verifier/range_spec.rb
|
381
366
|
- spec/lib/shogun/verifier/uniqueness_spec.rb
|
382
367
|
- spec/lib/shogun/verifier_spec.rb
|
383
|
-
- spec/lib/shogun_spec.rb
|
384
368
|
- spec/spec_helper.rb
|
385
369
|
has_rdoc:
|