shogun 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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