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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: caae485be3f9b7816128451965ff1acbe5d0ff37
4
- data.tar.gz: ef5108915c2044a505a1f57f1bb3d8f965d22d28
3
+ metadata.gz: 33438a9597cf46d470066ac33c77510ac76bb212
4
+ data.tar.gz: 3a929cc08633ef698656bef495f81bceb76076ad
5
5
  SHA512:
6
- metadata.gz: 42da9e33491a23787326a5c8ec8ce174b4430a7a7c9ebfa60d2b0d610d0cd4b2338e4f6b44416cf5053a3f35b266e990a8f3fd1a5ece4fda0a06058b526b0c73
7
- data.tar.gz: 0a55db9e31daef5f4056f522f6ead270ce1b854fa83d76f7bbc487032603ddcaee5f99527d6237a86308cd714e6c1bb9887447bbddc8d0e6f66e7aa2b23a3cfd
6
+ metadata.gz: 69f2f8155b984a4da075380cd7a3b741c81930160cd70f4ca07b7879fb4fc2664e19ee7180eebde52d969ba98eec89e60582db9885caaa9bc57e2a01b515f777
7
+ data.tar.gz: c75bc429fab9ba5ab803eef5c18ed30e1e5fb193f641ae9db1cad0aded97a7ec514f108a2fb4ea672dd32af7ba5309d65e179e6397ea73668c6cb4d47f2e1363
data/lib/shogun/server.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  module Shogun
2
2
  module Server
3
3
  def serve
4
- @rack.use(Rack::Lineprof) if ENV["RACK_ENV"] == "development"
5
4
  @rack.use(Rack::Log, @logger)
6
5
  @rack.use(Rack::Runtime)
7
6
  @rack.use(ActiveRecord::ConnectionAdapters::ConnectionManagement)
@@ -1,3 +1,3 @@
1
1
  module Shogun
2
- VERSION = "1.0.0"
2
+ VERSION = "2.0.0"
3
3
  end
data/lib/shogun.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require "adamantium"
2
2
  require "rack-protection"
3
- require "rack-commonlogger"
4
3
  require "rack-body_serializer"
5
4
  require "rack-authentication_bearer"
6
5
  require "rack-body_deserializer"
@@ -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: 1.0.0
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-30 00:00:00.000000000 Z
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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: A core library for an HTTP API
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: A core library for an HTTP API
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:
@@ -1,5 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Shogun do
4
-
5
- end