trax_model 0.0.92 → 0.0.93

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -1
  3. data/README.md +227 -86
  4. data/lib/trax.rb +0 -1
  5. data/lib/trax/model.rb +23 -29
  6. data/lib/trax/model/attributes.rb +3 -1
  7. data/lib/trax/model/attributes/attribute.rb +11 -0
  8. data/lib/trax/model/attributes/definitions.rb +16 -0
  9. data/lib/trax/model/attributes/errors.rb +8 -0
  10. data/lib/trax/model/attributes/fields.rb +74 -0
  11. data/lib/trax/model/attributes/mixin.rb +48 -19
  12. data/lib/trax/model/attributes/type.rb +4 -0
  13. data/lib/trax/model/attributes/types/array.rb +8 -25
  14. data/lib/trax/model/attributes/types/boolean.rb +51 -0
  15. data/lib/trax/model/attributes/types/enum.rb +53 -12
  16. data/lib/trax/model/attributes/types/json.rb +36 -33
  17. data/lib/trax/model/attributes/types/string.rb +50 -0
  18. data/lib/trax/model/attributes/types/uuid_array.rb +17 -28
  19. data/lib/trax/model/attributes/value.rb +16 -0
  20. data/lib/trax/model/errors.rb +7 -0
  21. data/lib/trax/model/mixins.rb +11 -0
  22. data/lib/trax/model/mixins/field_scopes.rb +60 -0
  23. data/lib/trax/model/mixins/id_scopes.rb +36 -0
  24. data/lib/trax/model/mixins/sort_by_scopes.rb +25 -0
  25. data/lib/trax/model/railtie.rb +1 -0
  26. data/lib/trax/model/scopes.rb +16 -0
  27. data/lib/trax/model/struct.rb +168 -14
  28. data/lib/trax/model/unique_id.rb +14 -21
  29. data/lib/trax/model/uuid.rb +1 -1
  30. data/lib/trax/validators/enum_attribute_validator.rb +9 -0
  31. data/lib/trax/validators/future_validator.rb +1 -1
  32. data/lib/trax/validators/json_attribute_validator.rb +3 -3
  33. data/lib/trax/validators/string_attribute_validator.rb +17 -0
  34. data/lib/trax_model/version.rb +1 -1
  35. data/spec/db/database.yml +16 -0
  36. data/spec/db/schema/default_tables.rb +68 -0
  37. data/spec/db/schema/pg_tables.rb +27 -0
  38. data/spec/spec_helper.rb +20 -3
  39. data/spec/support/models.rb +123 -0
  40. data/spec/support/pg/models.rb +103 -0
  41. data/spec/trax/model/attributes/fields_spec.rb +88 -0
  42. data/spec/trax/model/attributes/types/enum_spec.rb +51 -0
  43. data/spec/trax/model/attributes/types/json_spec.rb +107 -0
  44. data/spec/trax/model/attributes_spec.rb +13 -0
  45. data/spec/trax/model/errors_spec.rb +1 -2
  46. data/spec/trax/model/mixins/field_scopes_spec.rb +7 -0
  47. data/spec/trax/model/struct_spec.rb +1 -1
  48. data/spec/trax/model/unique_id_spec.rb +1 -3
  49. data/spec/trax/validators/url_validator_spec.rb +1 -1
  50. data/trax_model.gemspec +4 -4
  51. metadata +57 -19
  52. data/lib/trax/model/config.rb +0 -16
  53. data/lib/trax/model/validators.rb +0 -15
  54. data/lib/trax/validators/enum_validator.rb +0 -16
  55. data/spec/support/schema.rb +0 -151
  56. data/spec/trax/model/config_spec.rb +0 -13
@@ -0,0 +1,88 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Trax::Model::Attributes::Fields do
4
+ subject{ ::Products::MensShoes.fields }
5
+
6
+ describe "#all" do
7
+ it { expect(subject.all).to have_key(:size) }
8
+
9
+ context "inherited properties" do
10
+ it { expect(subject.all).to have_key(:active) }
11
+ end
12
+ end
13
+
14
+ describe "#by_type" do
15
+ it { expect(subject.by_type(:boolean)).to have_key(:active) }
16
+
17
+ context "enums" do
18
+ [:size, :status].each do |k|
19
+ it "has #{k}" do
20
+ expect(subject.by_type(:enum)).to have_key(k)
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ describe "#to_schema" do
27
+ it { expect(subject.to_schema).to be_a(Hash) }
28
+
29
+ context "enums" do
30
+ it {
31
+ expect(subject.to_schema["status"]["source"]).to eq "Products::MensShoes::Fields::Status"
32
+ }
33
+
34
+ context "includes full choice definitions" do
35
+ let(:expectation) do
36
+ {
37
+ "source"=>"Products::MensShoes::Fields::Status::InStock",
38
+ "name"=>"in_stock",
39
+ "type"=>:enum_value,
40
+ "integer_value"=>1
41
+ }
42
+ end
43
+
44
+ it { expect(subject.to_schema["status"]["choices"][0]).to eq expectation }
45
+ end
46
+
47
+ context "values" do
48
+ let(:expectation) do
49
+ ::Products::MensShoes::Fields::Size.names.map(&:to_sym)
50
+ end
51
+
52
+ it { expect(subject.to_schema["size"]["values"]).to eq expectation }
53
+ end
54
+ end
55
+
56
+ context "booleans" do
57
+ it { expect(subject.to_schema["active"]["name"]).to eq "active" }
58
+ it { expect(subject.to_schema["active"]["type"]).to eq "boolean" }
59
+ it { expect(subject.to_schema["active"]["source"]).to eq "Products::MensShoes::Fields::Active" }
60
+ end
61
+ end
62
+
63
+ context "base product class" do
64
+ subject { ::Product.fields }
65
+
66
+ describe "#all" do
67
+ it { expect(subject.all).to_not have_key(:size) }
68
+ it { expect(subject.all).to have_key(:active) }
69
+ end
70
+ end
71
+
72
+ context "struct fields", :postgres => true do
73
+ subject { ::Ecommerce::Products::MensShoes.fields }
74
+
75
+ it { expect(subject.all).to have_key(:custom_fields) }
76
+ it { expect(subject[:custom_fields].fields.all).to have_key(:size) }
77
+
78
+ describe "#to_schema" do
79
+ let(:expectation) do
80
+ subject::CustomFields::Fields::Size.names.map(&:to_sym)
81
+ end
82
+
83
+ it {
84
+ expect(subject[:custom_fields].fields[:size].to_schema["values"]).to eq expectation
85
+ }
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Trax::Model::Attributes::Types::Enum do
4
+ subject{ ::Products::MensShoes::Fields::Size }
5
+
6
+ let(:shoe_size_integer_values) { (1..7).to_a }
7
+ let(:names) { [:mens_6, :mens_7, :mens_8, :mens_9, :mens_10, :mens_11, :mens_12] }
8
+
9
+ it { expect(subject.values).to eq shoe_size_integer_values }
10
+ it { expect(subject.names.map(&:to_sym)).to eq names }
11
+
12
+ context "model" do
13
+ subject {
14
+ ::Products::MensShoes.new
15
+ }
16
+
17
+ context "default value" do
18
+ it { subject.size.should eq :mens_9 }
19
+ end
20
+
21
+ context "search scopes" do
22
+ [ :mens_6, :mens_7, :mens_10 ].each_with_index do |enum_name|
23
+ let!(enum_name) do
24
+ ::Products::MensShoes.create(:size => enum_name)
25
+ end
26
+ end
27
+
28
+ subject { ::Products::MensShoes.all }
29
+
30
+ it { expect(subject.by_size(:mens_6, :mens_7)).to include(mens_6, mens_7) }
31
+ it { expect(subject.by_size(:mens_6, :mens_7)).to_not include(mens_10) }
32
+ end
33
+
34
+ context "dirty attributes" do
35
+ subject { ::Products::MensShoes.create(:size => :mens_6) }
36
+
37
+ context "it tracks changes providing the human readable name" do
38
+ before do
39
+ subject.size = :mens_7
40
+ end
41
+
42
+ it do
43
+ subject.size = :mens_7
44
+ expect(subject.changes["size"]).to eq [:mens_6, :mens_7]
45
+ end
46
+
47
+ it { expect(subject.size_was).to eq :mens_6 }
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,107 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Trax::Model::Attributes::Types::Json, :postgres => true do
4
+ subject{ ::Ecommerce::Products::MensShoes::Fields::CustomFields }
5
+
6
+ it { expect(subject.new.primary_utility).to eq "Skateboarding" }
7
+ it { expect(subject.new.sole_material).to eq "" }
8
+
9
+ context "model" do
10
+ subject { ::Ecommerce::Products::MensShoes.new }
11
+
12
+ context "default values" do
13
+ it { subject.custom_fields.size.should eq :mens_9 }
14
+ end
15
+
16
+ context "search scopes" do
17
+ context "enum property" do
18
+ [ :mens_6, :mens_7, :mens_10 ].each_with_index do |enum_name|
19
+ let!(enum_name) do
20
+ ::Ecommerce::Products::MensShoes.create(:custom_fields => { :size => enum_name })
21
+ end
22
+ end
23
+ subject { ::Ecommerce::Products::MensShoes.all }
24
+
25
+ it { expect(subject.by_custom_fields_size(:mens_6, :mens_7)).to include(mens_6, mens_7) }
26
+ it { expect(subject.by_custom_fields_size(:mens_6, :mens_7)).to_not include(mens_10) }
27
+ end
28
+
29
+ context "boolean property" do
30
+ [ :mens_6, :mens_7, :mens_10 ].each_with_index do |enum_name|
31
+ let!(enum_name) do
32
+ ::Ecommerce::Products::MensShoes.create(:custom_fields => { :size => enum_name })
33
+ end
34
+ end
35
+
36
+ subject { ::Ecommerce::Products::MensShoes.all }
37
+
38
+ it { expect(subject.by_custom_fields_size(:mens_6, :mens_7)).to include(mens_6, mens_7) }
39
+ it { expect(subject.by_custom_fields_size(:mens_6, :mens_7)).to_not include(mens_10) }
40
+ end
41
+ end
42
+
43
+ context "dirty attributes" do
44
+ subject { ::Ecommerce::Products::MensShoes.create(:custom_fields => { :size => :mens_6 }) }
45
+
46
+ context "it tracks changes providing the human readable name" do
47
+ before do
48
+ subject.custom_fields.size = :mens_7
49
+ end
50
+
51
+ it { expect(subject.changes["custom_fields"][0]["size"]).to eq :mens_6 }
52
+ it { expect(subject["custom_fields"]["size"]).to eq :mens_7 }
53
+ it { expect(subject.changed_attributes["custom_fields"]["size"]).to eq :mens_6 }
54
+ end
55
+ end
56
+
57
+ context "validation" do
58
+ let(:subject_attributes) { {} }
59
+ subject { ::Ecommerce::ShippingAttributes.create(subject_attributes) }
60
+
61
+ context "invalid struct attribute" do
62
+ subject { ::Ecommerce::ShippingAttributes.create(subject_attributes) }
63
+
64
+ let(:subject_attributes) { { :specifics => {:cost => "asdasd", :dimensions => {}}} }
65
+
66
+ it { expect(subject.valid?).to eq false }
67
+ it { expect(subject.errors.messages).to have_key(:"specifics.cost") }
68
+ end
69
+
70
+ context "valid struct attribute" do
71
+ let(:subject_attributes) { { :specifics => { :cost => "asdasdasdasdasd", :dimensions => {}}} }
72
+
73
+ it { expect(subject.valid?).to eq true }
74
+ end
75
+
76
+ context "enum_property coercing" do
77
+ context "valid enum value" do
78
+ context "value is symbol" do
79
+ let(:subject_attributes) { { :specifics => { :service => :usps } } }
80
+
81
+ it { expect(subject.specifics.service.to_i).to eq 1 }
82
+ end
83
+
84
+ context "value is symbol" do
85
+ let(:subject_attributes) { { :specifics => { :service => "usps" } } }
86
+
87
+ it { expect(subject.specifics.service.to_i).to eq 1 }
88
+ end
89
+ end
90
+
91
+ context "invalid enum attributes" do
92
+ context "out of range integer" do
93
+ let(:subject_attributes) { { :specifics => { :service => 20 } } }
94
+
95
+ it { expect(subject.specifics.service).to eq nil }
96
+ end
97
+
98
+ context "non existent string" do
99
+ let(:subject_attributes) { { :specifics => { :service => "sasdasd" } } }
100
+
101
+ it { expect(subject.specifics.service).to eq nil }
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Trax::Model::Attributes do
4
+ subject{ described_class }
5
+
6
+ describe ".register_attribute_type" do
7
+ [:array, :boolean, :enum, :json, :string, :uuid_array].each do |type|
8
+ it "registers attribute type #{type}" do
9
+ expect(subject.config.attribute_types).to have_key(type)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -4,7 +4,6 @@ describe ::Trax::Model::Errors do
4
4
  subject{ Trax::Model::Errors::InvalidPrefix }
5
5
 
6
6
  it do
7
- expect{raise subject.new("blah")}.to raise_error(subject, /blah/)
7
+ expect{subject.new(:blah => "blah")}.to raise_error
8
8
  end
9
-
10
9
  end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe ::Trax::Model::Mixins::FieldScopes do
4
+ subject{ ::Message.create(:title => "Whatever") }
5
+
6
+ its(:status) { should eq "queued" }
7
+ end
@@ -12,5 +12,5 @@ describe ::Trax::Model::Struct do
12
12
 
13
13
  its("name") { should eq "watches" }
14
14
  its("meta_attributes.description") { should eq "Watches and stuff" }
15
- its("meta_attributes.class") { should eq StoreCategory::MetaAttributesStruct }
15
+ its("meta_attributes.class") { should eq StoreCategory::Fields::MetaAttributes }
16
16
  end
@@ -2,9 +2,7 @@ require 'spec_helper'
2
2
  describe ::Trax::Model::UniqueId do
3
3
  subject{ ::Product }
4
4
 
5
- its(:uuid_prefix) {
6
- should be_instance_of(::Trax::Model::UUIDPrefix)
7
- }
5
+ its(:uuid_prefix) { should be_instance_of(::Trax::Model::UUIDPrefix) }
8
6
 
9
7
  describe "uuid_prefix" do
10
8
  context "bad prefixes" do
@@ -5,7 +5,7 @@ describe ::UrlValidator do
5
5
 
6
6
  its(:valid?) { should eq true }
7
7
 
8
- ["www.initech.com", "http://www.initech.com!"].each do |bad_url|
8
+ ["www.initech.com"].each do |bad_url|
9
9
  it "should fail validation for #{bad_url}" do
10
10
  widget = ::Widget.create(:website => bad_url)
11
11
  widget.errors.messages.should have_key(:website)
@@ -18,11 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "trax_core", "~> 0.0.3"
21
+ spec.add_dependency "trax_core", "~> 0.0.74"
22
22
  spec.add_dependency "default_value_for", "~> 3.0.0"
23
23
  spec.add_dependency "simple_enum"
24
- spec.add_development_dependency "hashie", "~> 3.4.1"
25
- spec.add_development_dependency "activerecord"
24
+ spec.add_development_dependency "hashie", ">= 3.4.2"
25
+ spec.add_development_dependency "activerecord", "~> 4.2.0"
26
26
  spec.add_development_dependency "bundler", "~> 1.6"
27
27
  spec.add_development_dependency "rake"
28
28
  spec.add_development_dependency "sqlite3"
@@ -32,10 +32,10 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "simplecov"
33
33
  spec.add_development_dependency 'rspec-its', '~> 1'
34
34
  spec.add_development_dependency 'rspec-collection_matchers', '~> 1'
35
+ spec.add_development_dependency "pg"
35
36
  spec.add_development_dependency 'guard', '~> 2'
36
37
  spec.add_development_dependency 'guard-rspec', '~> 4'
37
38
  spec.add_development_dependency 'guard-bundler', '~> 2'
38
39
  spec.add_development_dependency 'rb-fsevent'
39
40
  spec.add_development_dependency 'terminal-notifier-guard'
40
-
41
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trax_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.92
4
+ version: 0.0.93
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Ayre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-07 00:00:00.000000000 Z
11
+ date: 2015-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trax_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.0.3
19
+ version: 0.0.74
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.0.3
26
+ version: 0.0.74
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: default_value_for
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -56,30 +56,30 @@ dependencies:
56
56
  name: hashie
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 3.4.1
61
+ version: 3.4.2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 3.4.1
68
+ version: 3.4.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activerecord
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 4.2.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 4.2.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: '1'
209
+ - !ruby/object:Gem::Dependency
210
+ name: pg
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: guard
211
225
  requirement: !ruby/object:Gem::Requirement
@@ -294,22 +308,29 @@ files:
294
308
  - lib/trax.rb
295
309
  - lib/trax/model.rb
296
310
  - lib/trax/model/attributes.rb
311
+ - lib/trax/model/attributes/attribute.rb
297
312
  - lib/trax/model/attributes/definitions.rb
298
313
  - lib/trax/model/attributes/errors.rb
314
+ - lib/trax/model/attributes/fields.rb
299
315
  - lib/trax/model/attributes/mixin.rb
300
316
  - lib/trax/model/attributes/type.rb
301
317
  - lib/trax/model/attributes/types.rb
302
318
  - lib/trax/model/attributes/types/array.rb
319
+ - lib/trax/model/attributes/types/boolean.rb
303
320
  - lib/trax/model/attributes/types/enum.rb
304
321
  - lib/trax/model/attributes/types/json.rb
322
+ - lib/trax/model/attributes/types/string.rb
305
323
  - lib/trax/model/attributes/types/uuid_array.rb
306
324
  - lib/trax/model/attributes/value.rb
307
- - lib/trax/model/config.rb
308
325
  - lib/trax/model/enum.rb
309
326
  - lib/trax/model/errors.rb
310
327
  - lib/trax/model/freezable.rb
311
328
  - lib/trax/model/matchable.rb
312
329
  - lib/trax/model/mixin.rb
330
+ - lib/trax/model/mixins.rb
331
+ - lib/trax/model/mixins/field_scopes.rb
332
+ - lib/trax/model/mixins/id_scopes.rb
333
+ - lib/trax/model/mixins/sort_by_scopes.rb
313
334
  - lib/trax/model/mti.rb
314
335
  - lib/trax/model/mti/abstract.rb
315
336
  - lib/trax/model/mti/entity.rb
@@ -317,6 +338,7 @@ files:
317
338
  - lib/trax/model/railtie.rb
318
339
  - lib/trax/model/registry.rb
319
340
  - lib/trax/model/restorable.rb
341
+ - lib/trax/model/scopes.rb
320
342
  - lib/trax/model/sti.rb
321
343
  - lib/trax/model/sti/attributes.rb
322
344
  - lib/trax/model/struct.rb
@@ -324,24 +346,32 @@ files:
324
346
  - lib/trax/model/uuid.rb
325
347
  - lib/trax/model/uuid_array.rb
326
348
  - lib/trax/model/uuid_prefix.rb
327
- - lib/trax/model/validators.rb
328
349
  - lib/trax/string.rb
329
350
  - lib/trax/validators/boolean_validator.rb
330
351
  - lib/trax/validators/email_validator.rb
331
- - lib/trax/validators/enum_validator.rb
352
+ - lib/trax/validators/enum_attribute_validator.rb
332
353
  - lib/trax/validators/frozen_validator.rb
333
354
  - lib/trax/validators/future_validator.rb
334
355
  - lib/trax/validators/json_attribute_validator.rb
356
+ - lib/trax/validators/string_attribute_validator.rb
335
357
  - lib/trax/validators/subdomain_validator.rb
336
358
  - lib/trax/validators/url_validator.rb
337
359
  - lib/trax_model.rb
338
360
  - lib/trax_model/version.rb
361
+ - spec/db/database.yml
362
+ - spec/db/schema/default_tables.rb
363
+ - spec/db/schema/pg_tables.rb
339
364
  - spec/spec_helper.rb
340
- - spec/support/schema.rb
341
- - spec/trax/model/config_spec.rb
365
+ - spec/support/models.rb
366
+ - spec/support/pg/models.rb
367
+ - spec/trax/model/attributes/fields_spec.rb
368
+ - spec/trax/model/attributes/types/enum_spec.rb
369
+ - spec/trax/model/attributes/types/json_spec.rb
370
+ - spec/trax/model/attributes_spec.rb
342
371
  - spec/trax/model/errors_spec.rb
343
372
  - spec/trax/model/freezable_spec.rb
344
373
  - spec/trax/model/matchable_spec.rb
374
+ - spec/trax/model/mixins/field_scopes_spec.rb
345
375
  - spec/trax/model/registry_spec.rb
346
376
  - spec/trax/model/restorable_spec.rb
347
377
  - spec/trax/model/sti/attributes_spec.rb
@@ -381,12 +411,20 @@ signing_key:
381
411
  specification_version: 4
382
412
  summary: Higher level ActiveRecord models for rails
383
413
  test_files:
414
+ - spec/db/database.yml
415
+ - spec/db/schema/default_tables.rb
416
+ - spec/db/schema/pg_tables.rb
384
417
  - spec/spec_helper.rb
385
- - spec/support/schema.rb
386
- - spec/trax/model/config_spec.rb
418
+ - spec/support/models.rb
419
+ - spec/support/pg/models.rb
420
+ - spec/trax/model/attributes/fields_spec.rb
421
+ - spec/trax/model/attributes/types/enum_spec.rb
422
+ - spec/trax/model/attributes/types/json_spec.rb
423
+ - spec/trax/model/attributes_spec.rb
387
424
  - spec/trax/model/errors_spec.rb
388
425
  - spec/trax/model/freezable_spec.rb
389
426
  - spec/trax/model/matchable_spec.rb
427
+ - spec/trax/model/mixins/field_scopes_spec.rb
390
428
  - spec/trax/model/registry_spec.rb
391
429
  - spec/trax/model/restorable_spec.rb
392
430
  - spec/trax/model/sti/attributes_spec.rb