sunstone 2.0.4 → 5.0.0.beta3
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/ext/active_record/associations/collection_association.rb +46 -0
- data/ext/active_record/attribute_methods.rb +137 -0
- data/ext/active_record/calculations.rb +5 -1
- data/ext/active_record/finder_methods.rb +2 -3
- data/ext/active_record/persistence.rb +21 -0
- data/ext/active_record/query_methods.rb +9 -2
- data/ext/active_record/relation.rb +3 -3
- data/ext/active_record/statement_cache.rb +1 -1
- data/ext/active_support/core_ext/object/to_query.rb +14 -1
- data/ext/arel/attributes/relation.rb +30 -0
- data/lib/active_record/connection_adapters/sunstone/column.rb +11 -9
- data/lib/active_record/connection_adapters/sunstone/database_statements.rb +1 -6
- data/lib/active_record/connection_adapters/sunstone/schema_statements.rb +21 -4
- data/lib/active_record/connection_adapters/sunstone/type/array.rb +52 -10
- data/lib/active_record/connection_adapters/sunstone/type/date_time.rb +1 -1
- data/lib/active_record/connection_adapters/sunstone/type/ewkb.rb +1 -1
- data/lib/active_record/connection_adapters/sunstone/type_metadata.rb +15 -0
- data/lib/active_record/connection_adapters/sunstone_adapter.rb +21 -5
- data/lib/arel/collectors/sunstone.rb +29 -9
- data/lib/arel/visitors/sunstone.rb +285 -56
- data/lib/sunstone.rb +6 -0
- data/lib/sunstone/connection.rb +7 -8
- data/lib/sunstone/exception.rb +0 -5
- data/lib/sunstone/version.rb +1 -1
- data/sunstone.gemspec +5 -4
- metadata +32 -13
data/lib/sunstone.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'msgpack'
|
1
2
|
require 'wankel'
|
2
3
|
require 'cookie_store'
|
3
4
|
require 'active_record'
|
@@ -10,18 +11,23 @@ require File.expand_path(File.join(__FILE__, '../arel/visitors/sunstone'))
|
|
10
11
|
require File.expand_path(File.join(__FILE__, '../arel/collectors/sunstone'))
|
11
12
|
|
12
13
|
require File.expand_path(File.join(__FILE__, '../active_record/connection_adapters/sunstone_adapter'))
|
14
|
+
require File.expand_path(File.join(__FILE__, '../active_record/connection_adapters/sunstone/type_metadata'))
|
13
15
|
|
14
16
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/statement_cache'))
|
15
17
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/relation'))
|
18
|
+
require File.expand_path(File.join(__FILE__, '../../ext/active_record/persistence'))
|
19
|
+
require File.expand_path(File.join(__FILE__, '../../ext/active_record/attribute_methods'))
|
16
20
|
# require File.expand_path(File.join(__FILE__, '../../ext/active_record/relation/predicate_builder'))
|
17
21
|
# require File.expand_path(File.join(__FILE__, '../../ext/active_record/calculations'))
|
18
22
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/query_methods'))
|
23
|
+
require File.expand_path(File.join(__FILE__, '../../ext/active_record/associations/collection_association'))
|
19
24
|
# require File.expand_path(File.join(__FILE__, '../../ext/active_record/associations/builder/has_and_belongs_to_many'))
|
20
25
|
|
21
26
|
require File.expand_path(File.join(__FILE__, '../../ext/active_support/core_ext/object/to_query'))
|
22
27
|
|
23
28
|
require File.expand_path(File.join(__FILE__, '../../ext/arel/select_manager'))
|
24
29
|
require File.expand_path(File.join(__FILE__, '../../ext/arel/nodes/eager_load'))
|
30
|
+
require File.expand_path(File.join(__FILE__, '../../ext/arel/attributes/relation'))
|
25
31
|
require File.expand_path(File.join(__FILE__, '../../ext/arel/nodes/select_statement'))
|
26
32
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/finder_methods'))
|
27
33
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/batches'))
|
data/lib/sunstone/connection.rb
CHANGED
@@ -117,7 +117,6 @@ module Sunstone
|
|
117
117
|
elsif body.is_a?(String)
|
118
118
|
request.body = body
|
119
119
|
elsif body
|
120
|
-
|
121
120
|
request.body = Wankel.encode(body)
|
122
121
|
end
|
123
122
|
|
@@ -292,14 +291,14 @@ module Sunstone
|
|
292
291
|
private
|
293
292
|
|
294
293
|
def request_headers
|
295
|
-
headers = {
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
294
|
+
headers = Thread.current[:sunstone_headers] || {}
|
295
|
+
headers['Accept'] = 'application/json'
|
296
|
+
headers['User-Agent'] = user_agent
|
297
|
+
headers['Api-Version'] = '0.1.0'
|
298
|
+
|
300
299
|
request_api_key = Thread.current[:sunstone_api_key] || api_key
|
301
|
-
|
302
300
|
headers['Api-Key'] = request_api_key if request_api_key
|
301
|
+
|
303
302
|
headers
|
304
303
|
end
|
305
304
|
|
@@ -328,7 +327,7 @@ module Sunstone
|
|
328
327
|
if !(200..299).include?(code)
|
329
328
|
case code
|
330
329
|
when 400
|
331
|
-
raise Sunstone::Exception::BadRequest, response
|
330
|
+
raise Sunstone::Exception::BadRequest, response.body
|
332
331
|
when 401
|
333
332
|
raise Sunstone::Exception::Unauthorized, response
|
334
333
|
when 404
|
data/lib/sunstone/exception.rb
CHANGED
data/lib/sunstone/version.rb
CHANGED
data/sunstone.gemspec
CHANGED
@@ -28,10 +28,11 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_development_dependency 'sdoc-templates-42floors'
|
29
29
|
|
30
30
|
# Runtime
|
31
|
+
s.add_runtime_dependency 'msgpack'
|
31
32
|
s.add_runtime_dependency 'wankel'
|
32
33
|
s.add_runtime_dependency 'cookie_store'
|
33
|
-
s.add_runtime_dependency 'arel', '~>
|
34
|
-
s.add_runtime_dependency 'activesupport', '>=
|
35
|
-
s.add_runtime_dependency 'activemodel', '>=
|
36
|
-
s.add_runtime_dependency 'activerecord', '>=
|
34
|
+
s.add_runtime_dependency 'arel', '~> 7.0'
|
35
|
+
s.add_runtime_dependency 'activesupport', '>= 5.0.0.beta3'
|
36
|
+
s.add_runtime_dependency 'activemodel', '>= 5.0.0.beta3'
|
37
|
+
s.add_runtime_dependency 'activerecord', '>= 5.0.0.beta3'
|
37
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sunstone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0.beta3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Bracy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -164,6 +164,20 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: msgpack
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: wankel
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,56 +212,56 @@ dependencies:
|
|
198
212
|
requirements:
|
199
213
|
- - "~>"
|
200
214
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
215
|
+
version: '7.0'
|
202
216
|
type: :runtime
|
203
217
|
prerelease: false
|
204
218
|
version_requirements: !ruby/object:Gem::Requirement
|
205
219
|
requirements:
|
206
220
|
- - "~>"
|
207
221
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
222
|
+
version: '7.0'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: activesupport
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
212
226
|
requirements:
|
213
227
|
- - ">="
|
214
228
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
229
|
+
version: 5.0.0.beta3
|
216
230
|
type: :runtime
|
217
231
|
prerelease: false
|
218
232
|
version_requirements: !ruby/object:Gem::Requirement
|
219
233
|
requirements:
|
220
234
|
- - ">="
|
221
235
|
- !ruby/object:Gem::Version
|
222
|
-
version:
|
236
|
+
version: 5.0.0.beta3
|
223
237
|
- !ruby/object:Gem::Dependency
|
224
238
|
name: activemodel
|
225
239
|
requirement: !ruby/object:Gem::Requirement
|
226
240
|
requirements:
|
227
241
|
- - ">="
|
228
242
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
243
|
+
version: 5.0.0.beta3
|
230
244
|
type: :runtime
|
231
245
|
prerelease: false
|
232
246
|
version_requirements: !ruby/object:Gem::Requirement
|
233
247
|
requirements:
|
234
248
|
- - ">="
|
235
249
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
250
|
+
version: 5.0.0.beta3
|
237
251
|
- !ruby/object:Gem::Dependency
|
238
252
|
name: activerecord
|
239
253
|
requirement: !ruby/object:Gem::Requirement
|
240
254
|
requirements:
|
241
255
|
- - ">="
|
242
256
|
- !ruby/object:Gem::Version
|
243
|
-
version:
|
257
|
+
version: 5.0.0.beta3
|
244
258
|
type: :runtime
|
245
259
|
prerelease: false
|
246
260
|
version_requirements: !ruby/object:Gem::Requirement
|
247
261
|
requirements:
|
248
262
|
- - ">="
|
249
263
|
- !ruby/object:Gem::Version
|
250
|
-
version:
|
264
|
+
version: 5.0.0.beta3
|
251
265
|
description: A library for interacting with REST APIs. Similar to ActiveResource
|
252
266
|
email:
|
253
267
|
- jonbracy@gmail.com
|
@@ -262,14 +276,18 @@ files:
|
|
262
276
|
- Rakefile.rb
|
263
277
|
- TODO.md
|
264
278
|
- ext/active_record/associations/builder/has_and_belongs_to_many.rb
|
279
|
+
- ext/active_record/associations/collection_association.rb
|
280
|
+
- ext/active_record/attribute_methods.rb
|
265
281
|
- ext/active_record/batches.rb
|
266
282
|
- ext/active_record/calculations.rb
|
267
283
|
- ext/active_record/finder_methods.rb
|
284
|
+
- ext/active_record/persistence.rb
|
268
285
|
- ext/active_record/query_methods.rb
|
269
286
|
- ext/active_record/relation.rb
|
270
287
|
- ext/active_record/relation/predicate_builder.rb
|
271
288
|
- ext/active_record/statement_cache.rb
|
272
289
|
- ext/active_support/core_ext/object/to_query.rb
|
290
|
+
- ext/arel/attributes/relation.rb
|
273
291
|
- ext/arel/nodes/eager_load.rb
|
274
292
|
- ext/arel/nodes/select_statement.rb
|
275
293
|
- ext/arel/select_manager.rb
|
@@ -279,6 +297,7 @@ files:
|
|
279
297
|
- lib/active_record/connection_adapters/sunstone/type/array.rb
|
280
298
|
- lib/active_record/connection_adapters/sunstone/type/date_time.rb
|
281
299
|
- lib/active_record/connection_adapters/sunstone/type/ewkb.rb
|
300
|
+
- lib/active_record/connection_adapters/sunstone/type_metadata.rb
|
282
301
|
- lib/active_record/connection_adapters/sunstone_adapter.rb
|
283
302
|
- lib/arel/collectors/sunstone.rb
|
284
303
|
- lib/arel/visitors/sunstone.rb
|
@@ -307,12 +326,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
307
326
|
version: '0'
|
308
327
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
309
328
|
requirements:
|
310
|
-
- - "
|
329
|
+
- - ">"
|
311
330
|
- !ruby/object:Gem::Version
|
312
|
-
version:
|
331
|
+
version: 1.3.1
|
313
332
|
requirements: []
|
314
333
|
rubyforge_project:
|
315
|
-
rubygems_version: 2.
|
334
|
+
rubygems_version: 2.5.1
|
316
335
|
signing_key:
|
317
336
|
specification_version: 4
|
318
337
|
summary: A library for interacting with REST APIs
|