forceps 0.6.4 → 0.6.7
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/forceps/acts_as_copyable_model.rb +1 -1
- data/lib/forceps/client.rb +23 -13
- data/lib/forceps/version.rb +1 -1
- data/test/dummy/app/models/cars/german/compact_car.rb +5 -0
- data/test/dummy/app/models/cars/german/sports_car.rb +5 -0
- data/test/dummy/db/remote.sqlite3 +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +10039 -0
- data/test/sti_test.rb +18 -5
- metadata +21 -37
data/test/sti_test.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class StiTest < ActiveSupport::TestCase
|
4
|
-
|
5
4
|
def setup
|
6
5
|
Forceps.configure
|
7
|
-
create_remote_car(name: 'audi')
|
6
|
+
create_remote_car({ name: 'audi' }, 'Car')
|
7
|
+
create_remote_car({ name: 'A1' }, 'Cars::German::CompactCar')
|
8
|
+
create_remote_car({ name: 'R8' }, 'Cars::German::SportsCar')
|
8
9
|
end
|
9
10
|
|
10
11
|
test "should instantiate the proper remote record when fetching a record through the parent class" do
|
@@ -12,16 +13,28 @@ class StiTest < ActiveSupport::TestCase
|
|
12
13
|
assert_instance_of Forceps::Remote::Car, remote_car
|
13
14
|
end
|
14
15
|
|
16
|
+
test "should work with namespaced models" do
|
17
|
+
compact_car = Forceps::Remote::Product.find_by_name('A1')
|
18
|
+
sports_car = Forceps::Remote::Product.find_by_name('R8')
|
19
|
+
assert_instance_of Forceps::Remote::Cars::German::CompactCar, compact_car
|
20
|
+
assert_instance_of Forceps::Remote::Cars::German::SportsCar, sports_car
|
21
|
+
end
|
22
|
+
|
23
|
+
test "should use the correct type with namespaces models" do
|
24
|
+
Forceps::Remote::Product.find_by_name('R8').copy_to_local
|
25
|
+
assert_equal Product.find_by_name('CAR: GERMAN SPORTS CAR: R8').type, "Cars::German::SportsCar"
|
26
|
+
end
|
27
|
+
|
15
28
|
test "should download child objects when using single table inheritance" do
|
16
29
|
Forceps::Remote::Product.find_by_name('audi').copy_to_local
|
17
|
-
copied_car=Product.find_by_name('CAR: audi')
|
30
|
+
copied_car = Product.find_by_name('CAR: audi')
|
18
31
|
assert_not_nil copied_car
|
19
32
|
assert_instance_of Car, copied_car
|
20
33
|
end
|
21
34
|
|
22
|
-
def create_remote_car(attributes)
|
35
|
+
def create_remote_car(attributes, klass)
|
23
36
|
RemoteProduct.create!(attributes).tap do |car|
|
24
|
-
car.update_column :type,
|
37
|
+
car.update_column :type, klass
|
25
38
|
end
|
26
39
|
end
|
27
40
|
end
|
metadata
CHANGED
@@ -1,36 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forceps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jorge Manrubia
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-08-14 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>'
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 3.2.0
|
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
|
29
26
|
version: 3.2.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: logging
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,65 +41,57 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: sqlite3
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: database_cleaner
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: awesome_print
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: minitest-reporters
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
description:
|
@@ -129,6 +116,8 @@ files:
|
|
129
116
|
- test/dummy/app/helpers/application_helper.rb
|
130
117
|
- test/dummy/app/models/address.rb
|
131
118
|
- test/dummy/app/models/car.rb
|
119
|
+
- test/dummy/app/models/cars/german/compact_car.rb
|
120
|
+
- test/dummy/app/models/cars/german/sports_car.rb
|
132
121
|
- test/dummy/app/models/invoice.rb
|
133
122
|
- test/dummy/app/models/line_item.rb
|
134
123
|
- test/dummy/app/models/product.rb
|
@@ -195,33 +184,26 @@ files:
|
|
195
184
|
- test/test_helper.rb
|
196
185
|
homepage: https://github.com/jorgemanrubia/forceps
|
197
186
|
licenses: []
|
187
|
+
metadata: {}
|
198
188
|
post_install_message:
|
199
189
|
rdoc_options: []
|
200
190
|
require_paths:
|
201
191
|
- lib
|
202
192
|
required_ruby_version: !ruby/object:Gem::Requirement
|
203
|
-
none: false
|
204
193
|
requirements:
|
205
|
-
- -
|
194
|
+
- - '>='
|
206
195
|
- !ruby/object:Gem::Version
|
207
196
|
version: '0'
|
208
|
-
segments:
|
209
|
-
- 0
|
210
|
-
hash: -3128711444408451747
|
211
197
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
|
-
none: false
|
213
198
|
requirements:
|
214
|
-
- -
|
199
|
+
- - '>='
|
215
200
|
- !ruby/object:Gem::Version
|
216
201
|
version: '0'
|
217
|
-
segments:
|
218
|
-
- 0
|
219
|
-
hash: -3128711444408451747
|
220
202
|
requirements: []
|
221
203
|
rubyforge_project:
|
222
|
-
rubygems_version:
|
204
|
+
rubygems_version: 2.0.2
|
223
205
|
signing_key:
|
224
|
-
specification_version:
|
206
|
+
specification_version: 4
|
225
207
|
summary: Copy active record models from remote databases
|
226
208
|
test_files:
|
227
209
|
- test/callbacks_test.rb
|
@@ -232,6 +214,8 @@ test_files:
|
|
232
214
|
- test/dummy/app/helpers/application_helper.rb
|
233
215
|
- test/dummy/app/models/address.rb
|
234
216
|
- test/dummy/app/models/car.rb
|
217
|
+
- test/dummy/app/models/cars/german/compact_car.rb
|
218
|
+
- test/dummy/app/models/cars/german/sports_car.rb
|
235
219
|
- test/dummy/app/models/invoice.rb
|
236
220
|
- test/dummy/app/models/line_item.rb
|
237
221
|
- test/dummy/app/models/product.rb
|