has_dynamic_columns 0.2.1 → 0.3.2

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -3
  3. data/README.md +25 -1
  4. data/has_dynamic_columns.gemspec +3 -1
  5. data/lib/generators/has_dynamic_columns/active_record_generator.rb +1 -1
  6. data/lib/generators/has_dynamic_columns/templates/migration.rb +4 -4
  7. data/lib/generators/has_dynamic_columns/templates/migration_0.3.0.rb +89 -0
  8. data/lib/generators/has_dynamic_columns/upgrade_0_3_0_active_record_generator.rb +22 -0
  9. data/lib/has_dynamic_columns/active_record/query_methods.rb +1 -167
  10. data/lib/has_dynamic_columns/active_record/relation.rb +1 -21
  11. data/lib/has_dynamic_columns/active_record/v3/query_methods.rb +281 -0
  12. data/lib/has_dynamic_columns/active_record/v3/relation.rb +34 -0
  13. data/lib/has_dynamic_columns/active_record/v4/query_methods.rb +257 -0
  14. data/lib/has_dynamic_columns/active_record/v4/relation.rb +34 -0
  15. data/lib/has_dynamic_columns/dynamic_column_boolean_datum.rb +5 -0
  16. data/lib/has_dynamic_columns/dynamic_column_date_datum.rb +5 -0
  17. data/lib/has_dynamic_columns/dynamic_column_datetime_datum.rb +5 -0
  18. data/lib/has_dynamic_columns/dynamic_column_datum.rb +8 -54
  19. data/lib/has_dynamic_columns/dynamic_column_enum_datum.rb +5 -0
  20. data/lib/has_dynamic_columns/dynamic_column_float_datum.rb +5 -0
  21. data/lib/has_dynamic_columns/dynamic_column_integer_datum.rb +5 -0
  22. data/lib/has_dynamic_columns/dynamic_column_string_datum.rb +5 -0
  23. data/lib/has_dynamic_columns/dynamic_column_text_datum.rb +5 -0
  24. data/lib/has_dynamic_columns/dynamic_column_time_datum.rb +5 -0
  25. data/lib/has_dynamic_columns/dynamic_column_timestamp_datum.rb +5 -0
  26. data/lib/has_dynamic_columns/model/class_methods.rb +22 -2
  27. data/lib/has_dynamic_columns/version.rb +1 -1
  28. data/lib/has_dynamic_columns.rb +11 -0
  29. data/rspec_rvm +39 -0
  30. data/spec/factories/account.rb +24 -0
  31. data/spec/factories/customer.rb +35 -0
  32. data/spec/has_dynamic_columns/active_record/query_methods_spec.rb +252 -0
  33. data/spec/has_dynamic_columns/dynamic_columns_integer_datum_spec.rb +124 -0
  34. data/spec/has_dynamic_columns/dynamic_columns_string_datum_spec.rb +7 -0
  35. data/spec/has_dynamic_columns_spec.rb +93 -63
  36. data/spec/spec_helper.rb +13 -8
  37. metadata +67 -6
@@ -14,17 +14,17 @@ describe HasDynamicColumns do
14
14
  account.activerecord_dynamic_columns.build(:dynamic_type => "CustomerAddress", :key => "address_1", :data_type => "string")
15
15
  account.activerecord_dynamic_columns.build(:dynamic_type => "CustomerAddress", :key => "address_2", :data_type => "string")
16
16
 
17
- field = account.activerecord_dynamic_columns.build(:dynamic_type => "CustomerAddress", :key => "country", :data_type => "list")
17
+ field = account.activerecord_dynamic_columns.build(:dynamic_type => "CustomerAddress", :key => "country", :data_type => "enum")
18
18
  field.dynamic_column_options.build(:key => "canada")
19
19
  field.dynamic_column_options.build(:key => "usa")
20
20
  field.dynamic_column_options.build(:key => "mexico")
21
21
 
22
- field = account.activerecord_dynamic_columns.build(:dynamic_type => "CustomerAddress", :key => "city", :data_type => "list")
22
+ field = account.activerecord_dynamic_columns.build(:dynamic_type => "CustomerAddress", :key => "city", :data_type => "enum")
23
23
  field.dynamic_column_options.build(:key => "toronto")
24
24
  field.dynamic_column_options.build(:key => "alberta")
25
25
  field.dynamic_column_options.build(:key => "vancouver")
26
26
 
27
- field = account.activerecord_dynamic_columns.build(:dynamic_type => "CustomerAddress", :key => "province", :data_type => "list")
27
+ field = account.activerecord_dynamic_columns.build(:dynamic_type => "CustomerAddress", :key => "province", :data_type => "enum")
28
28
  field.dynamic_column_options.build(:key => "ontario")
29
29
  field.dynamic_column_options.build(:key => "quebec")
30
30
 
@@ -53,9 +53,12 @@ describe HasDynamicColumns do
53
53
  account
54
54
  end
55
55
 
56
- describe HasDynamicColumns::ActiveRecord, :focus => true do
56
+ describe HasDynamicColumns::ActiveRecord do
57
57
  it 'should find everyone in the current account scope' do
58
- customer = Customer.create(:account => account)
58
+ customer = Customer.create(
59
+ :account => account,
60
+ :name => "Butch Marshall"
61
+ )
59
62
  customer.fields = {
60
63
  "first_name" => "Butch",
61
64
  "last_name" => "Marshall",
@@ -64,7 +67,10 @@ describe HasDynamicColumns do
64
67
  }
65
68
  customer.save
66
69
 
67
- customer = Customer.create(:account => account)
70
+ customer = Customer.create(
71
+ :account => account,
72
+ :name => "John Paterson"
73
+ )
68
74
  customer.fields = {
69
75
  "first_name" => "John",
70
76
  "last_name" => "Paterson",
@@ -73,7 +79,10 @@ describe HasDynamicColumns do
73
79
  }
74
80
  customer.save
75
81
 
76
- customer = Customer.create(:account => account)
82
+ customer = Customer.create(
83
+ :account => account,
84
+ :name => "Steve Paterson"
85
+ )
77
86
  customer.fields = {
78
87
  "first_name" => "Steve",
79
88
  "last_name" => "Paterson",
@@ -82,7 +91,10 @@ describe HasDynamicColumns do
82
91
  }
83
92
  customer.save
84
93
 
85
- customer = Customer.create(:account => account)
94
+ customer = Customer.create(
95
+ :account => account,
96
+ :name => "Carl Paterson"
97
+ )
86
98
  customer.fields = {
87
99
  "first_name" => "Carl",
88
100
  "last_name" => "Paterson",
@@ -106,10 +118,58 @@ describe HasDynamicColumns do
106
118
  .where.has_dynamic_columns(table[:first_name].eq("John")).with_scope(account)
107
119
  .where.has_dynamic_columns(table[:last_name].eq("Paterson")).with_scope(account)
108
120
  expect(result.all.length).to eq(1)
121
+
122
+ # Find
123
+ result = Customer
124
+ .where
125
+ .has_dynamic_columns(
126
+ Customer.arel_table[:trusted].eq(true)
127
+ ).with_scope(account)
128
+ .where
129
+ .has_dynamic_columns(
130
+ Customer.arel_table[:first_name].eq("Steve").or(
131
+ Customer.arel_table[:first_name].eq("John")
132
+ )
133
+ ).without_scope
134
+ expect(result.all.length).to eq(2)
135
+
136
+ # Find
137
+ result = Customer
138
+ .where
139
+ .has_dynamic_columns(
140
+ Customer.arel_table[:trusted].eq(false)
141
+ ).with_scope(account)
142
+ .where
143
+ .has_dynamic_columns(
144
+ Customer.arel_table[:first_name].eq("Steve").or(
145
+ Customer.arel_table[:first_name].eq("John")
146
+ )
147
+ ).without_scope
148
+ expect(result.all.length).to eq(0)
149
+
150
+ result = Customer
151
+ .where.has_dynamic_columns(Customer.arel_table[:trusted].eq(true)).with_scope(account)
152
+ .where.has_dynamic_columns(Customer.arel_table[:first_name].eq("Steve")).without_scope
153
+ expect(result.all.length).to eq(1)
154
+
155
+ # Find
156
+ result = Customer
157
+ .where
158
+ .has_dynamic_columns(
159
+ Customer.arel_table[:first_name].eq("Steve").or(
160
+ Customer.arel_table[:first_name].eq("John")
161
+ )
162
+ )
163
+ .with_scope(account)
164
+
165
+ expect(result.all.length).to eq(2)
109
166
  end
110
167
 
111
168
  it 'should find the single person in this scope' do
112
- customer = Customer.create(:account => account)
169
+ customer = Customer.create(
170
+ :account => account,
171
+ :name => "Merridyth Marshall"
172
+ )
113
173
  customer.fields = {
114
174
  "first_name" => "Merridyth",
115
175
  "last_name" => "Marshall",
@@ -128,7 +188,10 @@ describe HasDynamicColumns do
128
188
  end
129
189
 
130
190
  it 'should find anyone with first names Steve or John in account 1\'s scope' do
131
- customer = Customer.create(:account => account)
191
+ customer = Customer.create(
192
+ :account => account,
193
+ :name => "Steve Jobs"
194
+ )
132
195
  customer.fields = {
133
196
  "first_name" => "Steve",
134
197
  "last_name" => "Jobs",
@@ -136,9 +199,6 @@ describe HasDynamicColumns do
136
199
  "trusted" => false,
137
200
  }
138
201
  customer.save
139
-
140
- result = Customer.where.has_dynamic_columns(Customer.arel_table[:first_name].eq("Steve").or(Customer.arel_table[:first_name].eq("John"))).with_scope(Account.find(1))
141
- expect(result.all.length).to eq(2)
142
202
  end
143
203
 
144
204
  it 'should find anyone with first names Steve or John in any scope' do
@@ -146,20 +206,6 @@ describe HasDynamicColumns do
146
206
  expect(result.all.length).to eq(3)
147
207
  end
148
208
 
149
- it 'should find anyone with first names Steve or John and is trusted in any scope' do
150
- result = Customer
151
- .where.has_dynamic_columns(Customer.arel_table[:trusted].eq(true)).without_scope
152
- .where.has_dynamic_columns(Customer.arel_table[:first_name].eq("Steve").or(Customer.arel_table[:first_name].eq("John"))).without_scope
153
- expect(result.all.length).to eq(2)
154
- end
155
-
156
- it 'should find anyone with first names Steve and is not trusted in any scope' do
157
- result = Customer
158
- .where.has_dynamic_columns(Customer.arel_table[:trusted].eq(false)).without_scope
159
- .where.has_dynamic_columns(Customer.arel_table[:first_name].eq("Steve")).without_scope
160
- expect(result.all.length).to eq(1)
161
- end
162
-
163
209
  it 'should find all the Steves who are trusted in account 3\'s scope' do
164
210
  result = Customer
165
211
  .where.has_dynamic_columns(Customer.arel_table[:trusted].eq(true)).with_scope(Account.find(3))
@@ -167,13 +213,6 @@ describe HasDynamicColumns do
167
213
  expect(result.all.length).to eq(0)
168
214
  end
169
215
 
170
- it 'should find all the Steves who are trusted in account 1\'s scope' do
171
- result = Customer
172
- .where.has_dynamic_columns(Customer.arel_table[:trusted].eq(true)).with_scope(Account.find(1))
173
- .where.has_dynamic_columns(Customer.arel_table[:first_name].eq("Steve")).without_scope
174
- expect(result.all.length).to eq(1)
175
- end
176
-
177
216
  it 'should find across column types if no scope specified' do
178
217
  customer = Customer.create(:account => account2)
179
218
  customer.fields = {
@@ -192,16 +231,6 @@ describe HasDynamicColumns do
192
231
  ).without_scope
193
232
  expect(result.all.length).to eq(2)
194
233
  end
195
-
196
- it 'should restrict if scope specified' do
197
- result = Customer
198
- .where.has_dynamic_columns(
199
- Customer.arel_table[:first_name].eq("John").or(
200
- Customer.arel_table[:company].eq("Apple Computers")
201
- )
202
- ).with_scope(Account.find(4))
203
- expect(result.all.length).to eq(1)
204
- end
205
234
  end
206
235
 
207
236
  describe Product do
@@ -233,6 +262,7 @@ describe HasDynamicColumns do
233
262
  context 'when it has a defined has_many relationship' do
234
263
 
235
264
  context 'when it has_many categories' do
265
+
236
266
  it 'should work with dynamic_where' do
237
267
  product1 = Product.new(:name => "Product #1", :account => account)
238
268
  product2 = Product.new(:name => "Product #2", :account => account)
@@ -285,13 +315,13 @@ describe HasDynamicColumns do
285
315
  end
286
316
 
287
317
  it 'should return empty category_fields when no categories associated' do
288
- json = product.as_json
318
+ json = product.as_json(:root => nil)
289
319
  expect(json["category_fields"]).to eq({})
290
320
  end
291
321
 
292
322
  it 'should return empty category_fields when no category has no dynamic_columns' do
293
323
  product.categories << @category0
294
- json = product.as_json
324
+ json = product.as_json(:root => nil)
295
325
  expect(json["category_fields"]).to eq({})
296
326
  end
297
327
 
@@ -302,7 +332,7 @@ describe HasDynamicColumns do
302
332
  "vin_number" => "123"
303
333
  }
304
334
 
305
- json = product.as_json
335
+ json = product.as_json(:root => nil)
306
336
  expect(json["category_fields"]).to eq({"vin_number"=>"123"})
307
337
  expect(product.new_record?).to eq(true)
308
338
  end
@@ -315,13 +345,13 @@ describe HasDynamicColumns do
315
345
  }
316
346
  product.save
317
347
 
318
- json = product.as_json
348
+ json = product.as_json(:root => nil)
319
349
  expect(json["category_fields"]).to eq({"vin_number"=>"345"})
320
350
  expect(product.new_record?).to eq(false)
321
351
 
322
352
  product_id = product.id
323
353
  product = Product.find(product_id)
324
- json = product.as_json
354
+ json = product.as_json(:root => nil)
325
355
  expect(json["category_fields"]).to eq({"vin_number"=>"345"})
326
356
  end
327
357
  end
@@ -339,35 +369,35 @@ describe HasDynamicColumns do
339
369
  "vin_number" => "first:this is the vin number",
340
370
  "serial_number" => "first:serial number!"
341
371
  }
342
- json = product.as_json
372
+ json = product.as_json(:root => nil)
343
373
  expect(json["product_fields"]).to eq({"rarity"=>"very rare"})
344
374
  expect(json["category_fields"]).to eq({"vin_number"=>"first:this is the vin number", "serial_number"=>"first:serial number!"})
345
375
 
346
376
  product.save
347
- json = product.as_json
377
+ json = product.as_json(:root => nil)
348
378
  expect(json["product_fields"]).to eq({"rarity"=>"very rare"})
349
379
  expect(json["category_fields"]).to eq({"vin_number"=>"first:this is the vin number", "serial_number"=>"first:serial number!"})
350
380
 
351
381
  product_id = product.id
352
382
  product = Product.find(product_id)
353
- json = product.as_json
383
+ json = product.as_json(:root => nil)
354
384
  expect(json["product_fields"]).to eq({"rarity"=>"very rare"})
355
385
  expect(json["category_fields"]).to eq({"vin_number"=>"first:this is the vin number", "serial_number"=>"first:serial number!"})
356
386
 
357
387
  product.category_fields = {
358
388
  "serial_number" => "second:serial number!"
359
389
  }
360
- json = product.as_json
390
+ json = product.as_json(:root => nil)
361
391
  expect(json["product_fields"]).to eq({"rarity"=>"very rare"})
362
392
  expect(json["category_fields"]).to eq({"vin_number"=>"first:this is the vin number", "serial_number"=>"second:serial number!"})
363
393
 
364
394
  product.save
365
- json = product.as_json
395
+ json = product.as_json(:root => nil)
366
396
  expect(json["product_fields"]).to eq({"rarity"=>"very rare"})
367
397
  expect(json["category_fields"]).to eq({"vin_number"=>"first:this is the vin number", "serial_number"=>"second:serial number!"})
368
398
 
369
399
  product = Product.find(product_id)
370
- json = product.as_json
400
+ json = product.as_json(:root => nil)
371
401
  expect(json["product_fields"]).to eq({"rarity"=>"very rare"})
372
402
  expect(json["category_fields"]).to eq({"vin_number"=>"first:this is the vin number", "serial_number"=>"second:serial number!"})
373
403
 
@@ -382,13 +412,13 @@ describe HasDynamicColumns do
382
412
  "funkier_data" => "this is funkier data",
383
413
  "ok_data" => "this is ok data"
384
414
  }
385
- json = product.as_json
415
+ json = product.as_json(:root => nil)
386
416
  expect(json["product_fields"]).to eq({"rarity"=>"very rare"})
387
417
  expect(json["category_fields"]).to eq({"vin_number"=>"first:this is the vin number", "serial_number"=>"second:serial number!", "funky_data"=>nil, "funkier_data"=>"this is funkier data", "funkiest_data"=>nil, "ok_data"=>"this is ok data"})
388
418
 
389
419
  product.save
390
420
  product = Product.find(product_id)
391
- json = product.as_json
421
+ json = product.as_json(:root => nil)
392
422
  expect(json["product_fields"]).to eq({"rarity"=>"very rare"})
393
423
  expect(json["category_fields"]).to eq({"vin_number"=>"first:this is the vin number", "serial_number"=>"second:serial number!", "funky_data"=>nil, "funkier_data"=>"this is funkier data", "funkiest_data"=>nil, "ok_data"=>"this is ok data"})
394
424
  end
@@ -454,20 +484,20 @@ describe HasDynamicColumns do
454
484
  c = customer
455
485
 
456
486
  c.fields = { "trusted" => true }
457
- expect(c.as_json["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>true})
487
+ expect(c.as_json(:root => nil)["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>true})
458
488
  c.save
459
- expect(c.as_json["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>true})
489
+ expect(c.as_json(:root => nil)["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>true})
460
490
 
461
491
  c = Customer.find(c.id)
462
- expect(c.as_json["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>true})
492
+ expect(c.as_json(:root => nil)["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>true})
463
493
 
464
494
  c.fields = { "trusted" => false }
465
- expect(c.as_json["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>false})
495
+ expect(c.as_json(:root => nil)["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>false})
466
496
  c.save
467
- expect(c.as_json["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>false})
497
+ expect(c.as_json(:root => nil)["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>false})
468
498
 
469
499
  c = Customer.find(c.id)
470
- expect(c.as_json["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>false})
500
+ expect(c.as_json(:root => nil)["fields"]).to eq({"first_name"=>"Butch", "last_name"=>"Marshall", "email"=>"butch.a.marshall@gmail.com", "trusted"=>false})
471
501
  end
472
502
  end
473
503
 
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'logger'
2
2
  require 'rspec'
3
+ require 'factory_girl'
3
4
 
4
5
  require 'has_dynamic_columns'
5
6
 
@@ -27,38 +28,40 @@ ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ':me
27
28
  ActiveRecord::Migration.verbose = false
28
29
 
29
30
  require "generators/has_dynamic_columns/templates/migration"
31
+ require "generators/has_dynamic_columns/templates/migration_0.3.0"
30
32
  ActiveRecord::Schema.define do
31
33
  AddHasDynamicColumns.up
34
+ AddHasDynamicColumnsDatastore.up
32
35
 
33
36
  create_table :accounts, force: true do |t|
34
37
  t.string :name
35
- t.timestamps
38
+ t.timestamps null: false
36
39
  end
37
40
  create_table :customers, force: true do |t|
38
41
  t.string :name
39
42
  t.integer :account_id
40
- t.timestamps
43
+ t.timestamps null: false
41
44
  end
42
45
  create_table :customer_addresses, force: true do |t|
43
46
  t.string :name
44
47
  t.integer :customer_id
45
- t.timestamps
48
+ t.timestamps null: false
46
49
  end
47
50
  create_table :products, force: true do |t|
48
51
  t.string :name
49
52
  t.integer :account_id
50
- t.timestamps
53
+ t.timestamps null: false
51
54
  end
52
55
  create_table :categories, force: true do |t|
53
56
  t.string :name
54
57
  t.integer :account_id
55
- t.timestamps
58
+ t.timestamps null: false
56
59
  end
57
60
  create_table :category_owners, force: true do |t|
58
61
  t.integer :category_id
59
62
  t.integer :owner_id
60
63
  t.string :owner_type
61
- t.timestamps
64
+ t.timestamps null: false
62
65
  end
63
66
  end
64
67
 
@@ -102,11 +105,13 @@ class CategoryOwner < ActiveRecord::Base
102
105
  belongs_to :owner, :polymorphic => true
103
106
  end
104
107
 
108
+ require_relative '../spec/factories/account'
109
+ require_relative '../spec/factories/customer'
110
+
105
111
  RSpec.configure do |config|
112
+ config.include FactoryGirl::Syntax::Methods
106
113
  config.after(:each) do
107
-
108
114
  end
109
-
110
115
  config.expect_with :rspec do |c|
111
116
  c.syntax = :expect
112
117
  end
metadata CHANGED
@@ -1,29 +1,63 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_dynamic_columns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Butch Marshall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-12 00:00:00.000000000 Z
11
+ date: 2015-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '4.2'
22
+ version: '5.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: sqlite3
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">"
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">"
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: factory_girl
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">"
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">"
25
59
  - !ruby/object:Gem::Version
26
- version: '4.2'
60
+ version: '0'
27
61
  - !ruby/object:Gem::Dependency
28
62
  name: bundler
29
63
  requirement: !ruby/object:Gem::Requirement
@@ -74,20 +108,42 @@ files:
74
108
  - lib/generators/has_dynamic_columns/has_dynamic_columns_generator.rb
75
109
  - lib/generators/has_dynamic_columns/next_migration_version.rb
76
110
  - lib/generators/has_dynamic_columns/templates/migration.rb
111
+ - lib/generators/has_dynamic_columns/templates/migration_0.3.0.rb
112
+ - lib/generators/has_dynamic_columns/upgrade_0_3_0_active_record_generator.rb
77
113
  - lib/has_dynamic_columns.rb
78
114
  - lib/has_dynamic_columns/active_record.rb
79
115
  - lib/has_dynamic_columns/active_record/query_methods.rb
80
116
  - lib/has_dynamic_columns/active_record/relation.rb
117
+ - lib/has_dynamic_columns/active_record/v3/query_methods.rb
118
+ - lib/has_dynamic_columns/active_record/v3/relation.rb
119
+ - lib/has_dynamic_columns/active_record/v4/query_methods.rb
120
+ - lib/has_dynamic_columns/active_record/v4/relation.rb
81
121
  - lib/has_dynamic_columns/active_record_relation.rb
82
122
  - lib/has_dynamic_columns/compatibility.rb
83
123
  - lib/has_dynamic_columns/dynamic_column.rb
124
+ - lib/has_dynamic_columns/dynamic_column_boolean_datum.rb
125
+ - lib/has_dynamic_columns/dynamic_column_date_datum.rb
126
+ - lib/has_dynamic_columns/dynamic_column_datetime_datum.rb
84
127
  - lib/has_dynamic_columns/dynamic_column_datum.rb
128
+ - lib/has_dynamic_columns/dynamic_column_enum_datum.rb
129
+ - lib/has_dynamic_columns/dynamic_column_float_datum.rb
130
+ - lib/has_dynamic_columns/dynamic_column_integer_datum.rb
85
131
  - lib/has_dynamic_columns/dynamic_column_option.rb
132
+ - lib/has_dynamic_columns/dynamic_column_string_datum.rb
133
+ - lib/has_dynamic_columns/dynamic_column_text_datum.rb
134
+ - lib/has_dynamic_columns/dynamic_column_time_datum.rb
135
+ - lib/has_dynamic_columns/dynamic_column_timestamp_datum.rb
86
136
  - lib/has_dynamic_columns/dynamic_column_validation.rb
87
137
  - lib/has_dynamic_columns/model.rb
88
138
  - lib/has_dynamic_columns/model/class_methods.rb
89
139
  - lib/has_dynamic_columns/model/instance_methods.rb
90
140
  - lib/has_dynamic_columns/version.rb
141
+ - rspec_rvm
142
+ - spec/factories/account.rb
143
+ - spec/factories/customer.rb
144
+ - spec/has_dynamic_columns/active_record/query_methods_spec.rb
145
+ - spec/has_dynamic_columns/dynamic_columns_integer_datum_spec.rb
146
+ - spec/has_dynamic_columns/dynamic_columns_string_datum_spec.rb
91
147
  - spec/has_dynamic_columns_spec.rb
92
148
  - spec/spec_helper.rb
93
149
  homepage: https://github.com/butchmarshall/has_dynamic_columns
@@ -115,5 +171,10 @@ signing_key:
115
171
  specification_version: 4
116
172
  summary: Dynamic fields for activerecord models
117
173
  test_files:
174
+ - spec/factories/account.rb
175
+ - spec/factories/customer.rb
176
+ - spec/has_dynamic_columns/active_record/query_methods_spec.rb
177
+ - spec/has_dynamic_columns/dynamic_columns_integer_datum_spec.rb
178
+ - spec/has_dynamic_columns/dynamic_columns_string_datum_spec.rb
118
179
  - spec/has_dynamic_columns_spec.rb
119
180
  - spec/spec_helper.rb