yodatra 0.3.4 → 0.3.5
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 +7 -0
- data/lib/yodatra/models_controller.rb +8 -1
- data/lib/yodatra/version.rb +1 -1
- data/spec/spec_helper.rb +5 -1
- data/spec/unit/api_formatter_spec.rb +33 -0
- metadata +17 -30
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c28dec8ba275bce4a44a79d41f2c3aac9a265e5e
|
4
|
+
data.tar.gz: f516d481e2e6ad9ce2c49ab3805584f1e0bfa270
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bb2fb3841624fb4f869286779ed5c7a1b28e84165b8dca7f09cb3a577c7f01acb1f0fc851ceb143bef3d3ede66eff5b8a6a55d72aef1a07f8d4964b00e9f5a31
|
7
|
+
data.tar.gz: a97295b4414f0939ec2d9ad263ecfadd6b807a80130cfc5642f781a955fadc88e32867e4ef5da82418719b633f59aaefb4d5fae5124401bf37450e528f98ed71
|
@@ -184,7 +184,14 @@ module Yodatra
|
|
184
184
|
|
185
185
|
unless parent_model.nil?
|
186
186
|
parent = parent_model.find params[:captures].second
|
187
|
-
|
187
|
+
if parent.respond_to? :reflections
|
188
|
+
# This is AR 4.0.x compatibility
|
189
|
+
has_association = !parent.reflections[involved.to_sym].nil?
|
190
|
+
else
|
191
|
+
# This is AR 4.1.x compatibility
|
192
|
+
has_association = !parent._reflections[involved.to_sym].nil?
|
193
|
+
end
|
194
|
+
resources = parent.send(involved.to_sym) if has_association
|
188
195
|
end
|
189
196
|
resources
|
190
197
|
rescue ActiveRecord::RecordNotFound
|
data/lib/yodatra/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
ENV['RACK_ENV'] ||= 'test'
|
2
2
|
require 'simplecov'
|
3
|
-
SimpleCov.start
|
3
|
+
SimpleCov.start do
|
4
|
+
add_filter 'spec/'
|
5
|
+
end
|
4
6
|
require 'coveralls'
|
5
7
|
Coveralls.wear!
|
6
8
|
require 'rack/test'
|
7
9
|
require 'rspec'
|
8
10
|
|
9
11
|
require File.expand_path '../../lib/yodatra.rb', __FILE__
|
12
|
+
require File.expand_path '../../lib/yodatra/api_formatter.rb', __FILE__
|
10
13
|
require File.expand_path '../../lib/yodatra/models_controller.rb', __FILE__
|
11
14
|
require File.expand_path '../data/ar_models_controller.rb', __FILE__
|
12
15
|
|
@@ -15,6 +18,7 @@ module RSpecMixin
|
|
15
18
|
def app
|
16
19
|
Sinatra.new {
|
17
20
|
use Yodatra::Base
|
21
|
+
use Yodatra::ApiFormatter
|
18
22
|
use Yodatra::ModelsController
|
19
23
|
use ArModelsController
|
20
24
|
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.expand_path '../../spec_helper.rb', __FILE__
|
2
|
+
|
3
|
+
describe Yodatra::ApiFormatter do
|
4
|
+
let(:app) { proc{[200,{},['Hello, world.']]} }
|
5
|
+
|
6
|
+
before do
|
7
|
+
@stack = Yodatra::ApiFormatter.new(app, &bloc)
|
8
|
+
@request = Rack::MockRequest.new(@stack)
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'with a unity bloc' do
|
12
|
+
let(:bloc) { proc{ |s,h,r| [s,h,r] } }
|
13
|
+
|
14
|
+
it 'transforms the response with the given block' do
|
15
|
+
response = @request.get('/')
|
16
|
+
expect(response.body).to eq 'Hello, world.'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'with an object wrapper bloc' do
|
21
|
+
let(:bloc) do
|
22
|
+
proc do |s,h,r|
|
23
|
+
transformed = r.map{ |rr| {data: rr}.to_json }
|
24
|
+
[s,h,transformed]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'transforms the response with the given block' do
|
29
|
+
response = @request.get('/')
|
30
|
+
expect(JSON.parse(response.body)['data']).to eq 'Hello, world.'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yodatra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Paul Bonaud
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-23 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rack
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,83 +27,74 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: sinatra
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 1.4.4
|
38
|
-
- -
|
34
|
+
- - '>='
|
39
35
|
- !ruby/object:Gem::Version
|
40
36
|
version: 1.4.4
|
41
37
|
type: :runtime
|
42
38
|
prerelease: false
|
43
39
|
version_requirements: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
40
|
requirements:
|
46
41
|
- - ~>
|
47
42
|
- !ruby/object:Gem::Version
|
48
43
|
version: 1.4.4
|
49
|
-
- -
|
44
|
+
- - '>='
|
50
45
|
- !ruby/object:Gem::Version
|
51
46
|
version: 1.4.4
|
52
47
|
- !ruby/object:Gem::Dependency
|
53
48
|
name: sinatra-activerecord
|
54
49
|
requirement: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
50
|
requirements:
|
57
|
-
- -
|
51
|
+
- - '>='
|
58
52
|
- !ruby/object:Gem::Version
|
59
53
|
version: 1.2.4
|
60
54
|
type: :runtime
|
61
55
|
prerelease: false
|
62
56
|
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
57
|
requirements:
|
65
|
-
- -
|
58
|
+
- - '>='
|
66
59
|
- !ruby/object:Gem::Version
|
67
60
|
version: 1.2.4
|
68
61
|
- !ruby/object:Gem::Dependency
|
69
62
|
name: sinatra-logger
|
70
63
|
requirement: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
64
|
requirements:
|
73
|
-
- -
|
65
|
+
- - '>='
|
74
66
|
- !ruby/object:Gem::Version
|
75
67
|
version: '0'
|
76
68
|
type: :runtime
|
77
69
|
prerelease: false
|
78
70
|
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
71
|
requirements:
|
81
|
-
- -
|
72
|
+
- - '>='
|
82
73
|
- !ruby/object:Gem::Version
|
83
74
|
version: '0'
|
84
75
|
- !ruby/object:Gem::Dependency
|
85
76
|
name: sinatra-contrib
|
86
77
|
requirement: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
78
|
requirements:
|
89
79
|
- - ~>
|
90
80
|
- !ruby/object:Gem::Version
|
91
81
|
version: 1.4.2
|
92
|
-
- -
|
82
|
+
- - '>='
|
93
83
|
- !ruby/object:Gem::Version
|
94
84
|
version: 1.4.2
|
95
85
|
type: :runtime
|
96
86
|
prerelease: false
|
97
87
|
version_requirements: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
88
|
requirements:
|
100
89
|
- - ~>
|
101
90
|
- !ruby/object:Gem::Version
|
102
91
|
version: 1.4.2
|
103
|
-
- -
|
92
|
+
- - '>='
|
104
93
|
- !ruby/object:Gem::Version
|
105
94
|
version: 1.4.2
|
106
95
|
- !ruby/object:Gem::Dependency
|
107
96
|
name: rack-protection
|
108
97
|
requirement: !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
98
|
requirements:
|
111
99
|
- - ~>
|
112
100
|
- !ruby/object:Gem::Version
|
@@ -114,7 +102,6 @@ dependencies:
|
|
114
102
|
type: :runtime
|
115
103
|
prerelease: false
|
116
104
|
version_requirements: !ruby/object:Gem::Requirement
|
117
|
-
none: false
|
118
105
|
requirements:
|
119
106
|
- - ~>
|
120
107
|
- !ruby/object:Gem::Version
|
@@ -147,12 +134,14 @@ files:
|
|
147
134
|
- spec/data/ar_models_controller.rb
|
148
135
|
- spec/data/model.rb
|
149
136
|
- spec/spec_helper.rb
|
137
|
+
- spec/unit/api_formatter_spec.rb
|
150
138
|
- spec/unit/models_controller_spec.rb
|
151
139
|
- spec/unit/throttling_spec.rb
|
152
140
|
- yodatra.gemspec
|
153
141
|
homepage: http://squareteam.github.io/yodatra
|
154
142
|
licenses:
|
155
143
|
- MIT
|
144
|
+
metadata: {}
|
156
145
|
post_install_message:
|
157
146
|
rdoc_options:
|
158
147
|
- --line-numbers
|
@@ -165,24 +154,22 @@ rdoc_options:
|
|
165
154
|
require_paths:
|
166
155
|
- lib
|
167
156
|
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
-
none: false
|
169
157
|
requirements:
|
170
|
-
- -
|
158
|
+
- - '>='
|
171
159
|
- !ruby/object:Gem::Version
|
172
160
|
version: '0'
|
173
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
|
-
none: false
|
175
162
|
requirements:
|
176
|
-
- -
|
163
|
+
- - '>='
|
177
164
|
- !ruby/object:Gem::Version
|
178
165
|
version: '0'
|
179
166
|
requirements: []
|
180
167
|
rubyforge_project:
|
181
|
-
rubygems_version:
|
168
|
+
rubygems_version: 2.0.3
|
182
169
|
signing_key:
|
183
|
-
specification_version:
|
170
|
+
specification_version: 4
|
184
171
|
summary: Classy backend development with the speed of Sinatra and the power of ActiveRecord
|
185
172
|
test_files:
|
173
|
+
- spec/unit/api_formatter_spec.rb
|
186
174
|
- spec/unit/models_controller_spec.rb
|
187
175
|
- spec/unit/throttling_spec.rb
|
188
|
-
has_rdoc:
|