forceps 0.6.4 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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, 'Car'
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.4
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-01-27 00:00:00.000000000 Z
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: 1.8.23
204
+ rubygems_version: 2.0.2
223
205
  signing_key:
224
- specification_version: 3
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