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