poly_belongs_to 0.2.9 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -3
- data/lib/poly_belongs_to/core.rb +15 -0
- data/lib/poly_belongs_to/pbt.rb +12 -8
- data/lib/poly_belongs_to/version.rb +1 -1
- data/test/core_test.rb +15 -0
- data/test/dummy/app/models/assembly.rb +3 -0
- data/test/dummy/app/models/big_company.rb +3 -0
- data/test/dummy/app/models/hmt_assembly.rb +4 -0
- data/test/dummy/app/models/hmt_part.rb +4 -0
- data/test/dummy/app/models/manifest.rb +4 -0
- data/test/dummy/app/models/part.rb +3 -0
- data/test/dummy/app/models/work_order.rb +1 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20161210074545_create_big_companies.rb +8 -0
- data/test/dummy/db/migrate/20161210074616_add_big_company_id_to_work_order.rb +6 -0
- data/test/dummy/db/migrate/20161210145334_create_assemblies.rb +8 -0
- data/test/dummy/db/migrate/20161210145355_create_parts.rb +8 -0
- data/test/dummy/db/migrate/20161210145757_create_assembly_part_join_table.rb +8 -0
- data/test/dummy/db/migrate/20161210150330_create_hmt_assemblies.rb +8 -0
- data/test/dummy/db/migrate/20161210150343_create_hmt_parts.rb +8 -0
- data/test/dummy/db/schema.rb +39 -3
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +23343 -0
- data/test/dummy/test/fixtures/assemblies.yml +12 -0
- data/test/dummy/test/fixtures/big_companies.yml +12 -0
- data/test/dummy/test/fixtures/hmt_assemblies.yml +12 -0
- data/test/dummy/test/fixtures/hmt_parts.yml +12 -0
- data/test/dummy/test/fixtures/parts.yml +12 -0
- data/test/dummy/test/models/assembly_test.rb +13 -0
- data/test/dummy/test/models/big_company_test.rb +13 -0
- data/test/dummy/test/models/hmt_assembly_test.rb +13 -0
- data/test/dummy/test/models/hmt_part_test.rb +13 -0
- data/test/dummy/test/models/part_test.rb +13 -0
- data/test/pbt_test.rb +17 -2
- metadata +51 -3
@@ -0,0 +1,12 @@
|
|
1
|
+
# Read about fixtures at
|
2
|
+
# http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
3
|
+
|
4
|
+
# This model initially had no columns defined. If you add columns to the
|
5
|
+
# model remove the '{}' from the fixture names and add the columns immediately
|
6
|
+
# below each fixture, per the syntax in the comments below
|
7
|
+
#
|
8
|
+
one: {}
|
9
|
+
# column: value
|
10
|
+
#
|
11
|
+
two: {}
|
12
|
+
# column: value
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Read about fixtures at
|
2
|
+
# http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
3
|
+
|
4
|
+
# This model initially had no columns defined. If you add columns to the
|
5
|
+
# model remove the '{}' from the fixture names and add the columns immediately
|
6
|
+
# below each fixture, per the syntax in the comments below
|
7
|
+
#
|
8
|
+
one: {}
|
9
|
+
# column: value
|
10
|
+
#
|
11
|
+
two: {}
|
12
|
+
# column: value
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Read about fixtures at
|
2
|
+
# http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
3
|
+
|
4
|
+
# This model initially had no columns defined. If you add columns to the
|
5
|
+
# model remove the '{}' from the fixture names and add the columns immediately
|
6
|
+
# below each fixture, per the syntax in the comments below
|
7
|
+
#
|
8
|
+
one: {}
|
9
|
+
# column: value
|
10
|
+
#
|
11
|
+
two: {}
|
12
|
+
# column: value
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Read about fixtures at
|
2
|
+
# http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
3
|
+
|
4
|
+
# This model initially had no columns defined. If you add columns to the
|
5
|
+
# model remove the '{}' from the fixture names and add the columns immediately
|
6
|
+
# below each fixture, per the syntax in the comments below
|
7
|
+
#
|
8
|
+
one: {}
|
9
|
+
# column: value
|
10
|
+
#
|
11
|
+
two: {}
|
12
|
+
# column: value
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Read about fixtures at
|
2
|
+
# http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
3
|
+
|
4
|
+
# This model initially had no columns defined. If you add columns to the
|
5
|
+
# model remove the '{}' from the fixture names and add the columns immediately
|
6
|
+
# below each fixture, per the syntax in the comments below
|
7
|
+
#
|
8
|
+
one: {}
|
9
|
+
# column: value
|
10
|
+
#
|
11
|
+
two: {}
|
12
|
+
# column: value
|
data/test/pbt_test.rb
CHANGED
@@ -19,7 +19,7 @@ class PbtTest < ActiveSupport::TestCase
|
|
19
19
|
PolyBelongsTo::Pbt::BuildCmd[profile, nil].must_be_nil
|
20
20
|
end
|
21
21
|
|
22
|
-
it "Reflects
|
22
|
+
it "Reflects returns has_one and has_many relationships" do
|
23
23
|
profile = profiles(:bob_prof)
|
24
24
|
PolyBelongsTo::Pbt::Reflects[profile].sort.must_equal [:phones, :addresses, :photo].sort
|
25
25
|
PolyBelongsTo::Pbt::Reflects[nil ].must_equal Array[]
|
@@ -31,6 +31,12 @@ class PbtTest < ActiveSupport::TestCase
|
|
31
31
|
PolyBelongsTo::Pbt::ReflectsAsClasses[nil ].must_equal Array[]
|
32
32
|
end
|
33
33
|
|
34
|
+
it "Reflects & ReflectsAsClasses accept boolean for HABTM" do
|
35
|
+
obj = Part.new
|
36
|
+
PolyBelongsTo::Pbt::Reflects[obj, :habtm].must_equal [:assemblies]
|
37
|
+
PolyBelongsTo::Pbt::ReflectsAsClasses[obj, :habtm].must_equal [Assembly]
|
38
|
+
end
|
39
|
+
|
34
40
|
it "IsReflected gives boolean of child" do
|
35
41
|
profile = profiles(:bob_prof)
|
36
42
|
PolyBelongsTo::Pbt::IsReflected[profile, Phone].must_equal true
|
@@ -118,6 +124,15 @@ class PbtTest < ActiveSupport::TestCase
|
|
118
124
|
fc.must_be_kind_of(PolyBelongsTo::FakedCollection)
|
119
125
|
fc.must_be :empty?
|
120
126
|
end
|
121
|
-
end
|
122
127
|
|
128
|
+
it "sanity checks Reflects & ReflectsAsClasses possible snake_case CamelCase future changes" do
|
129
|
+
[
|
130
|
+
[WorkOrder.new, :events, Event],
|
131
|
+
[BigCompany.new, :work_orders, WorkOrder]
|
132
|
+
].each do |obj, a, b|
|
133
|
+
PolyBelongsTo::Pbt::Reflects[obj].must_equal [a]
|
134
|
+
PolyBelongsTo::Pbt::ReflectsAsClasses[obj].map(&:hash).must_equal [b].map(&:hash)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
123
138
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: poly_belongs_to
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel P. Clark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -110,7 +110,9 @@ files:
|
|
110
110
|
- test/dummy/app/models/address.rb
|
111
111
|
- test/dummy/app/models/address_book.rb
|
112
112
|
- test/dummy/app/models/alpha.rb
|
113
|
+
- test/dummy/app/models/assembly.rb
|
113
114
|
- test/dummy/app/models/beta.rb
|
115
|
+
- test/dummy/app/models/big_company.rb
|
114
116
|
- test/dummy/app/models/capa.rb
|
115
117
|
- test/dummy/app/models/car.rb
|
116
118
|
- test/dummy/app/models/coffee.rb
|
@@ -118,6 +120,10 @@ files:
|
|
118
120
|
- test/dummy/app/models/delta.rb
|
119
121
|
- test/dummy/app/models/event.rb
|
120
122
|
- test/dummy/app/models/geo_location.rb
|
123
|
+
- test/dummy/app/models/hmt_assembly.rb
|
124
|
+
- test/dummy/app/models/hmt_part.rb
|
125
|
+
- test/dummy/app/models/manifest.rb
|
126
|
+
- test/dummy/app/models/part.rb
|
121
127
|
- test/dummy/app/models/phone.rb
|
122
128
|
- test/dummy/app/models/photo.rb
|
123
129
|
- test/dummy/app/models/profile.rb
|
@@ -151,6 +157,7 @@ files:
|
|
151
157
|
- test/dummy/config/locales/en.yml
|
152
158
|
- test/dummy/config/routes.rb
|
153
159
|
- test/dummy/config/secrets.yml
|
160
|
+
- test/dummy/db/development.sqlite3
|
154
161
|
- test/dummy/db/migrate/20150211224139_create_users.rb
|
155
162
|
- test/dummy/db/migrate/20150211224157_create_tags.rb
|
156
163
|
- test/dummy/db/migrate/20150211224225_create_phones.rb
|
@@ -172,17 +179,34 @@ files:
|
|
172
179
|
- test/dummy/db/migrate/20160120231645_create_address_books.rb
|
173
180
|
- test/dummy/db/migrate/20161209115003_create_events.rb
|
174
181
|
- test/dummy/db/migrate/20161209115212_create_work_orders.rb
|
182
|
+
- test/dummy/db/migrate/20161210074545_create_big_companies.rb
|
183
|
+
- test/dummy/db/migrate/20161210074616_add_big_company_id_to_work_order.rb
|
184
|
+
- test/dummy/db/migrate/20161210145334_create_assemblies.rb
|
185
|
+
- test/dummy/db/migrate/20161210145355_create_parts.rb
|
186
|
+
- test/dummy/db/migrate/20161210145757_create_assembly_part_join_table.rb
|
187
|
+
- test/dummy/db/migrate/20161210150330_create_hmt_assemblies.rb
|
188
|
+
- test/dummy/db/migrate/20161210150343_create_hmt_parts.rb
|
175
189
|
- test/dummy/db/schema.rb
|
176
190
|
- test/dummy/db/test.sqlite3
|
177
191
|
- test/dummy/log/development.log
|
178
192
|
- test/dummy/log/test.log
|
179
193
|
- test/dummy/public/favicon.ico
|
194
|
+
- test/dummy/test/fixtures/assemblies.yml
|
195
|
+
- test/dummy/test/fixtures/big_companies.yml
|
180
196
|
- test/dummy/test/fixtures/coffees.yml
|
181
197
|
- test/dummy/test/fixtures/events.yml
|
198
|
+
- test/dummy/test/fixtures/hmt_assemblies.yml
|
199
|
+
- test/dummy/test/fixtures/hmt_parts.yml
|
200
|
+
- test/dummy/test/fixtures/parts.yml
|
182
201
|
- test/dummy/test/fixtures/work_orders.yml
|
183
202
|
- test/dummy/test/models/address_book_test.rb
|
203
|
+
- test/dummy/test/models/assembly_test.rb
|
204
|
+
- test/dummy/test/models/big_company_test.rb
|
184
205
|
- test/dummy/test/models/coffee_test.rb
|
185
206
|
- test/dummy/test/models/event_test.rb
|
207
|
+
- test/dummy/test/models/hmt_assembly_test.rb
|
208
|
+
- test/dummy/test/models/hmt_part_test.rb
|
209
|
+
- test/dummy/test/models/part_test.rb
|
186
210
|
- test/dummy/test/models/work_order_test.rb
|
187
211
|
- test/dup_test.rb
|
188
212
|
- test/faked_collection_test.rb
|
@@ -215,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
215
239
|
requirements:
|
216
240
|
- - ">="
|
217
241
|
- !ruby/object:Gem::Version
|
218
|
-
version:
|
242
|
+
version: 1.9.3
|
219
243
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
220
244
|
requirements:
|
221
245
|
- - ">="
|
@@ -247,13 +271,17 @@ test_files:
|
|
247
271
|
- test/faked_collection_test.rb
|
248
272
|
- test/core_test.rb
|
249
273
|
- test/dummy/db/test.sqlite3
|
274
|
+
- test/dummy/db/development.sqlite3
|
250
275
|
- test/dummy/db/schema.rb
|
276
|
+
- test/dummy/db/migrate/20161210150343_create_hmt_parts.rb
|
251
277
|
- test/dummy/db/migrate/20150220230146_create_squishies.rb
|
252
278
|
- test/dummy/db/migrate/20161209115003_create_events.rb
|
253
279
|
- test/dummy/db/migrate/20161209115212_create_work_orders.rb
|
254
280
|
- test/dummy/db/migrate/20150322233755_create_delta.rb
|
255
281
|
- test/dummy/db/migrate/20150322233743_create_capas.rb
|
256
282
|
- test/dummy/db/migrate/20150216092449_create_contacts.rb
|
283
|
+
- test/dummy/db/migrate/20161210145334_create_assemblies.rb
|
284
|
+
- test/dummy/db/migrate/20161210145757_create_assembly_part_join_table.rb
|
257
285
|
- test/dummy/db/migrate/20150301100658_create_tires.rb
|
258
286
|
- test/dummy/db/migrate/20150322233733_create_beta.rb
|
259
287
|
- test/dummy/db/migrate/20150322233720_create_alphas.rb
|
@@ -261,6 +289,7 @@ test_files:
|
|
261
289
|
- test/dummy/db/migrate/20150211224225_create_phones.rb
|
262
290
|
- test/dummy/db/migrate/20160120224015_add_contactable_to_contacts.rb
|
263
291
|
- test/dummy/db/migrate/20150220213422_create_geo_locations.rb
|
292
|
+
- test/dummy/db/migrate/20161210145355_create_parts.rb
|
264
293
|
- test/dummy/db/migrate/20160120231645_create_address_books.rb
|
265
294
|
- test/dummy/db/migrate/20150216092519_create_ssns.rb
|
266
295
|
- test/dummy/db/migrate/20150211224157_create_tags.rb
|
@@ -269,6 +298,9 @@ test_files:
|
|
269
298
|
- test/dummy/db/migrate/20150511161648_create_coffees.rb
|
270
299
|
- test/dummy/db/migrate/20150301100722_create_cars.rb
|
271
300
|
- test/dummy/db/migrate/20150216092411_create_photos.rb
|
301
|
+
- test/dummy/db/migrate/20161210074616_add_big_company_id_to_work_order.rb
|
302
|
+
- test/dummy/db/migrate/20161210074545_create_big_companies.rb
|
303
|
+
- test/dummy/db/migrate/20161210150330_create_hmt_assemblies.rb
|
272
304
|
- test/dummy/config/initializers/mime_types.rb
|
273
305
|
- test/dummy/config/initializers/session_store.rb
|
274
306
|
- test/dummy/config/initializers/assets.rb
|
@@ -289,6 +321,7 @@ test_files:
|
|
289
321
|
- test/dummy/config/database.yml
|
290
322
|
- test/dummy/app/controllers/application_controller.rb
|
291
323
|
- test/dummy/app/helpers/application_helper.rb
|
324
|
+
- test/dummy/app/models/manifest.rb
|
292
325
|
- test/dummy/app/models/coffee.rb
|
293
326
|
- test/dummy/app/models/ssn.rb
|
294
327
|
- test/dummy/app/models/event.rb
|
@@ -299,14 +332,19 @@ test_files:
|
|
299
332
|
- test/dummy/app/models/alpha.rb
|
300
333
|
- test/dummy/app/models/car.rb
|
301
334
|
- test/dummy/app/models/tire.rb
|
335
|
+
- test/dummy/app/models/part.rb
|
302
336
|
- test/dummy/app/models/user.rb
|
337
|
+
- test/dummy/app/models/big_company.rb
|
303
338
|
- test/dummy/app/models/geo_location.rb
|
304
339
|
- test/dummy/app/models/address.rb
|
340
|
+
- test/dummy/app/models/hmt_assembly.rb
|
305
341
|
- test/dummy/app/models/delta.rb
|
306
342
|
- test/dummy/app/models/phone.rb
|
307
343
|
- test/dummy/app/models/profile.rb
|
344
|
+
- test/dummy/app/models/hmt_part.rb
|
308
345
|
- test/dummy/app/models/squishy.rb
|
309
346
|
- test/dummy/app/models/tag.rb
|
347
|
+
- test/dummy/app/models/assembly.rb
|
310
348
|
- test/dummy/app/models/photo.rb
|
311
349
|
- test/dummy/app/models/beta.rb
|
312
350
|
- test/dummy/app/views/layouts/application.html.erb
|
@@ -319,12 +357,22 @@ test_files:
|
|
319
357
|
- test/dummy/bin/rails
|
320
358
|
- test/dummy/bin/bundle
|
321
359
|
- test/dummy/bin/setup
|
360
|
+
- test/dummy/test/fixtures/big_companies.yml
|
361
|
+
- test/dummy/test/fixtures/hmt_assemblies.yml
|
362
|
+
- test/dummy/test/fixtures/parts.yml
|
322
363
|
- test/dummy/test/fixtures/work_orders.yml
|
364
|
+
- test/dummy/test/fixtures/hmt_parts.yml
|
323
365
|
- test/dummy/test/fixtures/events.yml
|
324
366
|
- test/dummy/test/fixtures/coffees.yml
|
367
|
+
- test/dummy/test/fixtures/assemblies.yml
|
368
|
+
- test/dummy/test/models/assembly_test.rb
|
369
|
+
- test/dummy/test/models/hmt_part_test.rb
|
325
370
|
- test/dummy/test/models/coffee_test.rb
|
326
371
|
- test/dummy/test/models/address_book_test.rb
|
327
372
|
- test/dummy/test/models/work_order_test.rb
|
373
|
+
- test/dummy/test/models/part_test.rb
|
328
374
|
- test/dummy/test/models/event_test.rb
|
375
|
+
- test/dummy/test/models/big_company_test.rb
|
376
|
+
- test/dummy/test/models/hmt_assembly_test.rb
|
329
377
|
- test/pbt_test.rb
|
330
378
|
- test/major_version_changes_test.rb
|