sunstone 5.1.0.4 → 5.2.1
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 +5 -5
- data/.travis.yml +5 -13
- data/ext/active_record/associations.rb +2 -7
- data/ext/active_record/associations/collection_association.rb +25 -18
- data/ext/active_record/attribute_methods.rb +19 -35
- data/ext/active_record/finder_methods.rb +138 -90
- data/ext/active_record/persistence.rb +16 -11
- data/ext/active_record/relation.rb +7 -47
- data/ext/active_record/relation/calculations.rb +5 -3
- data/ext/active_record/relation/query_methods.rb +9 -0
- data/ext/active_record/statement_cache.rb +4 -6
- data/ext/active_record/transactions.rb +9 -19
- data/ext/arel/nodes/select_statement.rb +26 -12
- data/lib/active_record/connection_adapters/sunstone/database_statements.rb +76 -25
- data/lib/active_record/connection_adapters/sunstone/type/json.rb +1 -1
- data/lib/active_record/connection_adapters/sunstone_adapter.rb +2 -3
- data/lib/arel/collectors/sunstone.rb +21 -19
- data/lib/arel/visitors/sunstone.rb +4 -8
- data/lib/sunstone.rb +2 -3
- data/lib/sunstone/connection.rb +2 -2
- data/lib/sunstone/exception.rb +8 -1
- data/lib/sunstone/version.rb +1 -1
- data/sunstone.gemspec +3 -3
- data/test/active_record/associations/has_many_test.rb +30 -2
- data/test/active_record/eager_loading_test.rb +10 -0
- data/test/active_record/persistance_test.rb +7 -7
- data/test/active_record/query/count_test.rb +13 -0
- data/test/active_record/query_test.rb +6 -6
- data/test/sunstone/connection/send_request_test.rb +1 -1
- data/test/test_helper.rb +1 -1
- metadata +9 -10
- data/ext/active_record/associations/association.rb +0 -16
- data/ext/active_record/batches.rb +0 -12
@@ -1,7 +1,7 @@
|
|
1
1
|
module Arel
|
2
2
|
module Collectors
|
3
3
|
class Sunstone < Arel::Collectors::Bind
|
4
|
-
|
4
|
+
|
5
5
|
MAX_URI_LENGTH = 2083
|
6
6
|
|
7
7
|
attr_accessor :request_type, :table, :where, :limit, :offset, :order, :operation, :columns, :updates, :eager_loads, :id, :distinct, :distinct_on
|
@@ -9,24 +9,23 @@ module Arel
|
|
9
9
|
# This is used to removed an bind values. It is not used in the request
|
10
10
|
attr_accessor :join_source
|
11
11
|
|
12
|
+
attr_reader :binds
|
13
|
+
|
12
14
|
def initialize
|
13
15
|
@join_source = []
|
14
|
-
|
16
|
+
@binds = []
|
15
17
|
end
|
16
|
-
|
17
|
-
def
|
18
|
-
|
19
|
-
|
20
|
-
else
|
21
|
-
v
|
22
|
-
end
|
18
|
+
|
19
|
+
def add_bind(bind)
|
20
|
+
@binds << bind.value_for_database
|
21
|
+
bind
|
23
22
|
end
|
24
23
|
|
25
24
|
def substitute_binds hash, bvs
|
26
25
|
if hash.is_a?(Array)
|
27
26
|
hash.map do |v|
|
28
27
|
if v.is_a?(Arel::Nodes::BindParam)
|
29
|
-
|
28
|
+
bvs.shift#.value_for_database
|
30
29
|
elsif v.is_a?(Hash) || v.is_a?(Array)
|
31
30
|
substitute_binds(v, bvs)
|
32
31
|
else
|
@@ -37,7 +36,7 @@ module Arel
|
|
37
36
|
newhash = {}
|
38
37
|
hash.each do |k, v|
|
39
38
|
if v.is_a?(Arel::Nodes::BindParam)
|
40
|
-
newhash[k] =
|
39
|
+
newhash[k] = bvs.shift || v.value.value_for_database
|
41
40
|
elsif v.is_a?(Hash)
|
42
41
|
newhash[k] = substitute_binds(v, bvs)
|
43
42
|
elsif v.is_a?(Array)
|
@@ -48,16 +47,12 @@ module Arel
|
|
48
47
|
end
|
49
48
|
newhash
|
50
49
|
elsif hash.is_a?(Arel::Nodes::BindParam)
|
51
|
-
|
50
|
+
bvs.shift || hash.value.value_for_database
|
52
51
|
else
|
53
|
-
|
52
|
+
bvs.shift || hash.value.value_for_database
|
54
53
|
end
|
55
54
|
end
|
56
55
|
|
57
|
-
def value
|
58
|
-
flatten_nested(where).flatten
|
59
|
-
end
|
60
|
-
|
61
56
|
def flatten_nested(obj)
|
62
57
|
if obj.is_a?(Array)
|
63
58
|
obj.map { |w| flatten_nested(w) }
|
@@ -68,6 +63,13 @@ module Arel
|
|
68
63
|
end
|
69
64
|
end
|
70
65
|
|
66
|
+
def value
|
67
|
+
self
|
68
|
+
end
|
69
|
+
|
70
|
+
def sql_for(bvs, conn = nil)
|
71
|
+
compile(bvs, conn)
|
72
|
+
end
|
71
73
|
def compile bvs, conn = nil
|
72
74
|
path = "/#{table}"
|
73
75
|
headers = {}
|
@@ -110,7 +112,7 @@ module Arel
|
|
110
112
|
elsif offset
|
111
113
|
params[:offset] = offset
|
112
114
|
end
|
113
|
-
|
115
|
+
|
114
116
|
case operation
|
115
117
|
when :count
|
116
118
|
path += "/#{operation}"
|
@@ -121,7 +123,7 @@ module Arel
|
|
121
123
|
path += "/#{params[:where]['id']}"
|
122
124
|
params.delete(:where)
|
123
125
|
end
|
124
|
-
|
126
|
+
|
125
127
|
if params.size > 0 && request_type == Net::HTTP::Get
|
126
128
|
newpath = path + "?#{CGI.escape(MessagePack.pack(params))}"
|
127
129
|
if newpath.length > MAX_URI_LENGTH
|
@@ -10,10 +10,6 @@ module Arel
|
|
10
10
|
module Visitors
|
11
11
|
class Sunstone < Arel::Visitors::Reduce
|
12
12
|
|
13
|
-
def initialize
|
14
|
-
@dispatch = get_dispatch_cache
|
15
|
-
end
|
16
|
-
|
17
13
|
def compile node, &block
|
18
14
|
accept(node, Arel::Collectors::SQLString.new, &block).value
|
19
15
|
end
|
@@ -81,7 +77,6 @@ module Arel
|
|
81
77
|
collector.operation = :insert
|
82
78
|
|
83
79
|
if o.values
|
84
|
-
|
85
80
|
if o.values.is_a?(Arel::Nodes::SqlLiteral) && o.values == 'DEFAULT VALUES'
|
86
81
|
collector.updates = {}
|
87
82
|
else
|
@@ -108,7 +103,7 @@ module Arel
|
|
108
103
|
end
|
109
104
|
}
|
110
105
|
else
|
111
|
-
collector.updates[k] = values[i]
|
106
|
+
collector.updates[k] = visit(values[i], collector)
|
112
107
|
end
|
113
108
|
end
|
114
109
|
end
|
@@ -818,7 +813,7 @@ module Arel
|
|
818
813
|
def visit_Arel_Nodes_Equality o, collector
|
819
814
|
key = visit(o.left, collector)
|
820
815
|
value = (o.right.nil? ? nil : visit(o.right, collector))
|
821
|
-
|
816
|
+
|
822
817
|
if key.is_a?(Hash)
|
823
818
|
add_to_bottom_of_hash(key, {eq: value})
|
824
819
|
elsif o.left.class.name == 'Arel::Attributes::Key'
|
@@ -948,7 +943,8 @@ module Arel
|
|
948
943
|
alias :visit_Arel_Attributes_Boolean :visit_Arel_Attributes_Attribute
|
949
944
|
|
950
945
|
def visit_Arel_Nodes_BindParam o, collector
|
951
|
-
o
|
946
|
+
a = collector.add_bind(o.value)
|
947
|
+
o.is_a?(Arel::Nodes::BindParam) ? o : a
|
952
948
|
end
|
953
949
|
|
954
950
|
def literal(o, collector)
|
data/lib/sunstone.rb
CHANGED
@@ -24,11 +24,11 @@ require File.expand_path(File.join(__FILE__, '../../ext/active_record/statement_
|
|
24
24
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/associations'))
|
25
25
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/relation'))
|
26
26
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/relation/calculations'))
|
27
|
+
require File.expand_path(File.join(__FILE__, '../../ext/active_record/relation/query_methods'))
|
27
28
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/persistence'))
|
28
29
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/callbacks'))
|
29
30
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/attribute_methods'))
|
30
31
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/transactions'))
|
31
|
-
require File.expand_path(File.join(__FILE__, '../../ext/active_record/associations/association'))
|
32
32
|
require File.expand_path(File.join(__FILE__, '../../ext/active_record/associations/collection_association'))
|
33
33
|
|
34
34
|
require File.expand_path(File.join(__FILE__, '../../ext/active_support/core_ext/object/to_query'))
|
@@ -38,5 +38,4 @@ require File.expand_path(File.join(__FILE__, '../../ext/arel/nodes/eager_load'))
|
|
38
38
|
require File.expand_path(File.join(__FILE__, '../../ext/arel/attributes/relation'))
|
39
39
|
require File.expand_path(File.join(__FILE__, '../../ext/arel/attributes/empty_relation'))
|
40
40
|
require File.expand_path(File.join(__FILE__, '../../ext/arel/nodes/select_statement'))
|
41
|
-
require File.expand_path(File.join(__FILE__, '../../ext/active_record/finder_methods'))
|
42
|
-
require File.expand_path(File.join(__FILE__, '../../ext/active_record/batches'))
|
41
|
+
require File.expand_path(File.join(__FILE__, '../../ext/active_record/finder_methods'))
|
data/lib/sunstone/connection.rb
CHANGED
@@ -397,8 +397,8 @@ module Sunstone
|
|
397
397
|
raise Sunstone::Exception::MovedPermanently, response.body
|
398
398
|
when 502
|
399
399
|
raise ActiveRecord::ConnectionNotEstablished, response.body
|
400
|
-
when
|
401
|
-
raise Sunstone::
|
400
|
+
when 500..599
|
401
|
+
raise Sunstone::ServerError, response.body
|
402
402
|
else
|
403
403
|
raise Sunstone::Exception, response.body
|
404
404
|
end
|
data/lib/sunstone/exception.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
module Sunstone
|
2
2
|
|
3
|
-
class
|
3
|
+
class ServerError < ::RuntimeError
|
4
|
+
end
|
5
|
+
|
6
|
+
# RuntimeErrors don't get translated by Rails into
|
7
|
+
# ActiveRecord::StatementInvalid which StandardError do. Would rather
|
8
|
+
# use StandardError, but it's usefull with Sunstone to know when something
|
9
|
+
# raises a Sunstone::Exception::NotFound or Forbidden
|
10
|
+
class Exception < ::RuntimeError
|
4
11
|
|
5
12
|
class UnexpectedResponse < Sunstone::Exception
|
6
13
|
end
|
data/lib/sunstone/version.rb
CHANGED
data/sunstone.gemspec
CHANGED
@@ -23,16 +23,16 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_development_dependency 'minitest-reporters'
|
24
24
|
s.add_development_dependency 'mocha'
|
25
25
|
s.add_development_dependency 'faker'
|
26
|
-
s.add_development_dependency '
|
26
|
+
s.add_development_dependency 'factory_bot'
|
27
27
|
s.add_development_dependency 'webmock'
|
28
28
|
#s.add_development_dependency 'sdoc-templates-42floors'
|
29
29
|
s.add_development_dependency 'rgeo'
|
30
30
|
s.add_development_dependency 'simplecov'
|
31
31
|
s.add_development_dependency 'byebug'
|
32
|
-
s.add_development_dependency 'activesupport', '~> 5.1
|
32
|
+
s.add_development_dependency 'activesupport', '~> 5.2.1'
|
33
33
|
|
34
34
|
# Runtime
|
35
35
|
s.add_runtime_dependency 'msgpack'
|
36
36
|
s.add_runtime_dependency 'cookie_store'
|
37
|
-
s.add_runtime_dependency 'activerecord', '~> 5.1
|
37
|
+
s.add_runtime_dependency 'activerecord', '~> 5.2.1'
|
38
38
|
end
|
@@ -116,7 +116,6 @@ class ActiveRecord::Associations::HasManyTest < ActiveSupport::TestCase
|
|
116
116
|
}.to_json
|
117
117
|
)
|
118
118
|
|
119
|
-
# fleet.ships = [ship]
|
120
119
|
fleet = Fleet.eager_load(:ships).find(1)
|
121
120
|
assert fleet.update(ships: [Ship.new(name: 'Voyager')])
|
122
121
|
assert_equal 1, fleet.id
|
@@ -150,7 +149,6 @@ class ActiveRecord::Associations::HasManyTest < ActiveSupport::TestCase
|
|
150
149
|
}.to_json
|
151
150
|
)
|
152
151
|
|
153
|
-
# fleet.ships = [ship]
|
154
152
|
fleet = Fleet.eager_load(:ships).find(1)
|
155
153
|
fleet.ships.first.name = 'Voyager'
|
156
154
|
fleet.save
|
@@ -187,6 +185,36 @@ class ActiveRecord::Associations::HasManyTest < ActiveSupport::TestCase
|
|
187
185
|
assert_requested req_stub
|
188
186
|
end
|
189
187
|
|
188
|
+
test '#update persisted record doesnt include any unchanged associations' do
|
189
|
+
webmock(:get, '/fleets', where: {id: 1}, limit: 1, include: [:ships]).to_return({
|
190
|
+
body: [{
|
191
|
+
id: 1,
|
192
|
+
name: 'Armada Trio',
|
193
|
+
ships: [
|
194
|
+
{id: 2, fleet_id: 1, name: 'Definant'}, {id: 3, fleet_id: 1, name: 'Enterprise'}
|
195
|
+
]
|
196
|
+
}].to_json
|
197
|
+
})
|
198
|
+
|
199
|
+
req_stub = webmock(:patch, '/fleets/1').with(
|
200
|
+
body: { fleet: { name: 'New NAME!!' } }.to_json
|
201
|
+
).to_return(
|
202
|
+
body: {
|
203
|
+
id: 1,
|
204
|
+
name: 'New NAME!!'
|
205
|
+
}.to_json
|
206
|
+
)
|
207
|
+
|
208
|
+
# fleet.ships = [ship]
|
209
|
+
fleet = Fleet.eager_load(:ships).find(1)
|
210
|
+
assert fleet.ships.loaded?
|
211
|
+
#[{id: 2, fleet_id: 1, name: 'Definant'}, {id: 3, fleet_id: 1, name: 'Enterprise'}]
|
212
|
+
fleet.update(name: 'New NAME!!', ships: fleet.ships)
|
213
|
+
fleet.save
|
214
|
+
|
215
|
+
assert_requested req_stub
|
216
|
+
end
|
217
|
+
|
190
218
|
# Clearing the relationship =================================================
|
191
219
|
|
192
220
|
test '#update clears has_many relationship' do
|
@@ -47,4 +47,14 @@ class ActiveRecord::EagerLoadingTest < ActiveSupport::TestCase
|
|
47
47
|
assert_equal [1], fleets.first.ships.map(&:id)
|
48
48
|
end
|
49
49
|
|
50
|
+
|
51
|
+
test '#eager_loads' do
|
52
|
+
webmock(:get, "/fleets", include: [{:ships => :sailors}]).to_return(body: [{
|
53
|
+
id: 1, ships: [{id: 1, fleet_id: 1}]
|
54
|
+
}].to_json)
|
55
|
+
|
56
|
+
fleets = Fleet.eager_load(:ships, :sailors).limit(2).to_sql
|
57
|
+
assert_equal '', fleets
|
58
|
+
end
|
59
|
+
|
50
60
|
end
|
@@ -45,7 +45,7 @@ class ActiveRecord::PersistanceTest < ActiveSupport::TestCase
|
|
45
45
|
TestModelA.create
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
test '#create with errors' do
|
50
50
|
req_stub = webmock(:post, "/fleets").with(
|
51
51
|
body: { fleet: {} }.to_json
|
@@ -78,7 +78,7 @@ class ActiveRecord::PersistanceTest < ActiveSupport::TestCase
|
|
78
78
|
|
79
79
|
fleet = Fleet.find(1)
|
80
80
|
fleet.save
|
81
|
-
|
81
|
+
|
82
82
|
assert fleet.save
|
83
83
|
assert_equal 1, fleet.id
|
84
84
|
assert_equal 'Armada Duo', fleet.name
|
@@ -108,9 +108,9 @@ class ActiveRecord::PersistanceTest < ActiveSupport::TestCase
|
|
108
108
|
TestModelB.create
|
109
109
|
end
|
110
110
|
end
|
111
|
-
|
112
|
-
|
113
|
-
|
111
|
+
|
112
|
+
|
113
|
+
|
114
114
|
test '#update clears belongs_to relationship' do
|
115
115
|
webmock(:get, "/ships", where: {id: 1}, limit: 1).to_return(
|
116
116
|
body: [{id: 1, fleet_id: 1, name: 'Armada Uno'}].to_json
|
@@ -125,7 +125,7 @@ class ActiveRecord::PersistanceTest < ActiveSupport::TestCase
|
|
125
125
|
assert ship.update(fleet: nil)
|
126
126
|
assert_requested req_stub
|
127
127
|
end
|
128
|
-
|
128
|
+
|
129
129
|
test '#update' do
|
130
130
|
webmock(:get, "/ships", where: {id: 1}, limit: 1).to_return(
|
131
131
|
body: [{id: 1, fleet_id: nil, name: 'Armada Uno'}].to_json
|
@@ -140,7 +140,7 @@ class ActiveRecord::PersistanceTest < ActiveSupport::TestCase
|
|
140
140
|
|
141
141
|
assert_requested req_stub
|
142
142
|
end
|
143
|
-
|
143
|
+
|
144
144
|
test '#update!' do
|
145
145
|
webmock(:get, "/ships", where: {id: 1}, limit: 1).to_return(
|
146
146
|
body: [{id: 1, fleet_id: nil, name: 'Armada Uno'}].to_json
|
@@ -8,7 +8,12 @@ class ActiveRecord::QueryCountTest < ActiveSupport::TestCase
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
class Fleet < ActiveRecord::Base
|
12
|
+
has_many :ships
|
13
|
+
end
|
14
|
+
|
11
15
|
class Ship < ActiveRecord::Base
|
16
|
+
belongs_to :fleet
|
12
17
|
end
|
13
18
|
|
14
19
|
test '::count' do
|
@@ -27,6 +32,14 @@ class ActiveRecord::QueryCountTest < ActiveSupport::TestCase
|
|
27
32
|
assert_equal 10, Ship.count(:id)
|
28
33
|
end
|
29
34
|
|
35
|
+
test '::count with eager_load' do
|
36
|
+
webmock(:get, "/ships/calculate", select: [{count: "id"}], limit: 100, offset: 0).to_return({
|
37
|
+
body: [10].to_json
|
38
|
+
})
|
39
|
+
|
40
|
+
assert_equal 10, Ship.eager_load(:fleet).count
|
41
|
+
end
|
42
|
+
|
30
43
|
test '::sum(:column)' do
|
31
44
|
webmock(:get, "/ships/calculate", select: [{sum: "weight"}], limit: 100, offset: 0).to_return({
|
32
45
|
body: [10].to_json
|
@@ -28,7 +28,7 @@ class ActiveRecord::QueryTest < ActiveSupport::TestCase
|
|
28
28
|
|
29
29
|
assert_nil Ship.first
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
test '::first!' do
|
33
33
|
webmock(:get, "/ships", { limit: 1, order: [{id: :asc}] }).to_return({
|
34
34
|
body: [].to_json
|
@@ -46,23 +46,23 @@ class ActiveRecord::QueryTest < ActiveSupport::TestCase
|
|
46
46
|
|
47
47
|
assert_nil Ship.last
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
test '::where on the same column multiple times with symbols and strings' do
|
51
51
|
webmock(:get, "/ships", { where: [{ id: {gt: 10} }, 'AND', {id: {gt: 11}}], limit: 100, offset: 0 }).to_return(body: [].to_json)
|
52
52
|
|
53
53
|
arel_table = Ship.arel_table
|
54
54
|
assert_equal [], Ship.where(arel_table[:id].gt(10)).where(arel_table['id'].gt(11)).to_a
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
test '::where(AND CONDITION)' do
|
58
58
|
webmock(:get, "/ships", { where: {id: 10, name: 'name'}, limit: 1, order: [{id: :asc}] }).to_return({
|
59
59
|
body: [{id: 42}].to_json
|
60
60
|
})
|
61
|
-
|
61
|
+
|
62
62
|
arel_table = Ship.arel_table
|
63
63
|
assert_equal 42, Ship.where(arel_table[:id].eq(10).and(arel_table[:name].eq('name'))).first.id
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
test '::where(OR CONDITION)' do
|
67
67
|
webmock(:get, "/ships", { where: [{id: 10}, 'OR', {name: 'name'}], limit: 1, order: [{id: :asc}] }).to_return({
|
68
68
|
body: [{id: 42}].to_json
|
@@ -90,7 +90,7 @@ class ActiveRecord::QueryTest < ActiveSupport::TestCase
|
|
90
90
|
|
91
91
|
assert_equal 42, Ship.where(name: name)[0].id
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
test '::where with JOIN' do
|
95
95
|
webmock(:get, "/ships", {where: { ownerships: {id: {eq: 1}} }, limit: 100, offset: 0 }).to_return({
|
96
96
|
body: [{id: 42}].to_json
|
@@ -89,7 +89,7 @@ class Sunstone::Connection::SendRequestTest < ActiveSupport::TestCase
|
|
89
89
|
assert_raises(Sunstone::Exception::ApiVersionUnsupported) { connection.send_request(Net::HTTP::Get.new('/422')) }
|
90
90
|
assert_raises(Sunstone::Exception) { connection.send_request(Net::HTTP::Get.new('/450')) }
|
91
91
|
assert_raises(Sunstone::Exception::ServiceUnavailable) { connection.send_request(Net::HTTP::Get.new('/503')) }
|
92
|
-
assert_raises(Sunstone::
|
92
|
+
assert_raises(Sunstone::ServerError) { connection.send_request(Net::HTTP::Get.new('/550')) }
|
93
93
|
end
|
94
94
|
|
95
95
|
test '#send_request(#<Net::HTTPRequest>, &block) returns value returned from &block' do
|
data/test/test_helper.rb
CHANGED
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: 5.1
|
4
|
+
version: 5.2.1
|
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: 2018-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: factory_bot
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -184,14 +184,14 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 5.1
|
187
|
+
version: 5.2.1
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 5.1
|
194
|
+
version: 5.2.1
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: msgpack
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,14 +226,14 @@ dependencies:
|
|
226
226
|
requirements:
|
227
227
|
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: 5.1
|
229
|
+
version: 5.2.1
|
230
230
|
type: :runtime
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: 5.1
|
236
|
+
version: 5.2.1
|
237
237
|
description: A library for interacting with REST APIs. Similar to ActiveResource
|
238
238
|
email:
|
239
239
|
- jonbracy@gmail.com
|
@@ -250,15 +250,14 @@ files:
|
|
250
250
|
- Rakefile
|
251
251
|
- TODO.md
|
252
252
|
- ext/active_record/associations.rb
|
253
|
-
- ext/active_record/associations/association.rb
|
254
253
|
- ext/active_record/associations/collection_association.rb
|
255
254
|
- ext/active_record/attribute_methods.rb
|
256
|
-
- ext/active_record/batches.rb
|
257
255
|
- ext/active_record/callbacks.rb
|
258
256
|
- ext/active_record/finder_methods.rb
|
259
257
|
- ext/active_record/persistence.rb
|
260
258
|
- ext/active_record/relation.rb
|
261
259
|
- ext/active_record/relation/calculations.rb
|
260
|
+
- ext/active_record/relation/query_methods.rb
|
262
261
|
- ext/active_record/statement_cache.rb
|
263
262
|
- ext/active_record/transactions.rb
|
264
263
|
- ext/active_support/core_ext/object/to_query.rb
|
@@ -326,7 +325,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
326
325
|
version: '0'
|
327
326
|
requirements: []
|
328
327
|
rubyforge_project:
|
329
|
-
rubygems_version: 2.
|
328
|
+
rubygems_version: 2.7.4
|
330
329
|
signing_key:
|
331
330
|
specification_version: 4
|
332
331
|
summary: A library for interacting with REST APIs
|