diametric 0.1.2 → 0.1.3
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 +6 -14
- data/Gemfile +3 -3
- data/Jarfile +13 -6
- data/LICENSE.txt +2 -2
- data/README.md +57 -26
- data/Rakefile +1 -0
- data/bin/datomic-rest +1 -1
- data/bin/download-datomic +1 -1
- data/datomic_version.yml +2 -2
- data/diametric.gemspec +8 -7
- data/ext/diametric/DiametricCollection.java +45 -38
- data/ext/diametric/DiametricConnection.java +16 -15
- data/ext/diametric/DiametricDatabase.java +9 -8
- data/ext/diametric/DiametricEntity.java +104 -21
- data/ext/diametric/DiametricObject.java +12 -1
- data/ext/diametric/DiametricPeer.java +52 -31
- data/ext/diametric/DiametricService.java +2 -0
- data/ext/diametric/DiametricSet.java +11 -4
- data/ext/diametric/DiametricUUID.java +8 -1
- data/ext/diametric/DiametricUtils.java +90 -62
- data/lib/diametric.rb +1 -0
- data/lib/diametric/associations/collection.rb +103 -0
- data/lib/diametric/entity.rb +166 -103
- data/lib/diametric/persistence/common.rb +0 -44
- data/lib/diametric/persistence/peer.rb +53 -2
- data/lib/diametric/persistence/rest.rb +27 -1
- data/lib/diametric/query.rb +49 -31
- data/lib/diametric/rest_service.rb +8 -9
- data/lib/diametric/service_base.rb +7 -7
- data/lib/diametric/transactor.rb +6 -5
- data/lib/diametric/version.rb +1 -1
- data/lib/diametric_service.jar +0 -0
- data/spec/config/free-transactor-template.properties +6 -6
- data/spec/developer_query_spec.rb +17 -6
- data/spec/diametric/entity_spec.rb +62 -139
- data/spec/diametric/peer_api_spec.rb +23 -23
- data/spec/diametric/persistence/peer_spec.rb +73 -11
- data/spec/diametric/persistence/rest_spec.rb +108 -16
- data/spec/diametric/query_spec.rb +3 -3
- data/spec/diametric/rest_service_spec.rb +4 -4
- data/spec/diametric/schema_spec.rb +526 -0
- data/spec/diametric/transactor_spec.rb +5 -6
- data/spec/integration_spec.rb +7 -7
- data/spec/peer_integration_spec.rb +25 -1
- data/spec/peer_seattle_spec.rb +1 -2
- data/spec/spec_helper.rb +31 -4
- data/spec/support/cardinarity_many_example.rb +37 -0
- data/spec/support/entities.rb +127 -0
- data/spec/support/has_a_example.rb +31 -0
- data/spec/support/has_many_example.rb +79 -0
- data/spec/support/persistence_examples.rb +13 -5
- data/spec/support/various_types_examples.rb +163 -0
- data/spec/test_version_file.yml +2 -2
- metadata +66 -15
@@ -65,7 +65,8 @@ shared_examples "persistence API" do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "can find it by attribute" do
|
68
|
-
model2 = model_class.first({:name => "Wilbur"}, nil, true)
|
68
|
+
model2 = model_class.first({:name => "Wilbur"}, nil, true) if model_class.ancestors.include? Diametric::Persistence::Peer
|
69
|
+
model2 = model_class.first({:name => "Wilbur"}) if model_class.ancestors.include? Diametric::Persistence::REST
|
69
70
|
model2.should_not be_nil
|
70
71
|
model2.dbid.should == model.dbid
|
71
72
|
model2.should == model if model2.is_a? Rat
|
@@ -73,23 +74,30 @@ shared_examples "persistence API" do
|
|
73
74
|
end
|
74
75
|
|
75
76
|
it "can find all matching conditions" do
|
76
|
-
|
77
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
78
|
+
mice = model_class.where({:name => "Wilbur"}, nil, true).where(:age => 2).all
|
79
|
+
else
|
80
|
+
mice = model_class.where({:name => "Wilbur"}).where(:age => 2).all
|
81
|
+
end
|
77
82
|
mice.should == [model]
|
78
83
|
mice.should include(model)
|
79
84
|
end
|
80
85
|
|
81
86
|
it "can filter entities" do
|
82
|
-
mice = model_class.filter(:<, :age, 3).all
|
87
|
+
mice = model_class.filter(nil, :<, :age, 3).all if model_class.ancestors.include? Diametric::Persistence::Peer
|
88
|
+
mice = model_class.filter(:<, :age, 3).all if model_class.ancestors.include? Diametric::Persistence::REST
|
83
89
|
mice.should == [model]
|
84
90
|
mice.should include(model)
|
85
91
|
|
86
|
-
mice = model_class.filter(:>, :age, 3).all
|
92
|
+
mice = model_class.filter(nil, :>, :age, 3).all if model_class.ancestors.include? Diametric::Persistence::Peer
|
93
|
+
mice = model_class.filter(:>, :age, 3).all if model_class.ancestors.include? Diametric::Persistence::REST
|
87
94
|
mice.should == []
|
88
95
|
end
|
89
96
|
|
90
97
|
it "can find all" do
|
91
98
|
model_class.new(:name => "Smith", :age => 5).save
|
92
|
-
mice = model_class.all(nil, true)
|
99
|
+
mice = model_class.all(nil, true) if model_class.ancestors.include? Diametric::Persistence::Peer
|
100
|
+
mice = model_class.all if model_class.ancestors.include? Diametric::Persistence::REST
|
93
101
|
mice.should_not be_nil
|
94
102
|
mice.size.should == 2
|
95
103
|
names = ["Smith", "Wilbur"]
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require 'uuid'
|
2
|
+
|
3
|
+
shared_examples "supports various types" do
|
4
|
+
describe "entity instance" do
|
5
|
+
let(:model) { model_class.new }
|
6
|
+
|
7
|
+
it "can save" do
|
8
|
+
model.name = "Wilbur"
|
9
|
+
model.description = "This bird has a lot of colors on its body which draws other animals' attentions"
|
10
|
+
model.talkative = true
|
11
|
+
model.colors = 200
|
12
|
+
model.average_speed = 12.34
|
13
|
+
model.observed = DateTime.parse("2013-12-24T07:18:29")
|
14
|
+
# REST failes to save UUID
|
15
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
16
|
+
model.case_no = UUID.new.generate
|
17
|
+
model.serial = UUID.new.generate
|
18
|
+
end
|
19
|
+
model.save.should be_true
|
20
|
+
model.should be_persisted
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#update_attributes' do
|
24
|
+
let(:bird) {
|
25
|
+
model.name = "William"
|
26
|
+
model.description = "This bird is famous for its colorful body."
|
27
|
+
model.talkative = false
|
28
|
+
model.colors = 150
|
29
|
+
model.average_speed = 6.99
|
30
|
+
model.observed = DateTime.parse("2010-11-12T05:16:27")
|
31
|
+
# REST failes to save UUID
|
32
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
33
|
+
model.case_no = UUID.new.generate
|
34
|
+
model.serial = UUID.new.generate
|
35
|
+
end
|
36
|
+
model.save
|
37
|
+
model
|
38
|
+
}
|
39
|
+
|
40
|
+
it "saves and updates name" do
|
41
|
+
new_values = { "name" => "Stuart" }
|
42
|
+
bird.update_attributes(new_values)
|
43
|
+
|
44
|
+
bird.should_not be_changed
|
45
|
+
bird.name.should == "Stuart"
|
46
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
47
|
+
result = model_class.where({:name => new_values["name"]}, nil, true).first
|
48
|
+
else
|
49
|
+
result = model_class.where({:name => new_values["name"]}).first
|
50
|
+
end
|
51
|
+
result.dbid.should == model.dbid
|
52
|
+
end
|
53
|
+
|
54
|
+
it "saves and updates description" do
|
55
|
+
new_values = { "description" => "Many words should be here to replace the value of description." }
|
56
|
+
bird.update_attributes(new_values)
|
57
|
+
|
58
|
+
bird.should_not be_changed
|
59
|
+
bird.description.should include("Many words")
|
60
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
61
|
+
result = model_class.where({:description => new_values["description"]}, nil, true).first
|
62
|
+
else
|
63
|
+
result = model_class.where({:description => new_values["description"]}).first
|
64
|
+
end
|
65
|
+
result.dbid.should == model.dbid
|
66
|
+
end
|
67
|
+
|
68
|
+
it "saves and updates talkative" do
|
69
|
+
new_values = { "talkative" => true }
|
70
|
+
bird.update_attributes(new_values)
|
71
|
+
|
72
|
+
bird.should_not be_changed
|
73
|
+
bird.talkative.should be_true
|
74
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
75
|
+
result = model_class.where({:talkative => new_values["talkative"]}, nil, true).first
|
76
|
+
else
|
77
|
+
result = model_class.where({:talkative => new_values["talkative"]}).first
|
78
|
+
end
|
79
|
+
result.dbid.should == model.dbid
|
80
|
+
end
|
81
|
+
|
82
|
+
it "saves and updates colors" do
|
83
|
+
new_values = { "colors" => 345 }
|
84
|
+
bird.update_attributes(new_values)
|
85
|
+
|
86
|
+
bird.should_not be_changed
|
87
|
+
bird.colors.should be_true
|
88
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
89
|
+
result = model_class.where({:colors => new_values["colors"]}, nil, true).first
|
90
|
+
else
|
91
|
+
result = model_class.where({:colors => new_values["colors"]}).first
|
92
|
+
end
|
93
|
+
result.dbid.should == model.dbid
|
94
|
+
end
|
95
|
+
|
96
|
+
it "saves and updates average_speed" do
|
97
|
+
new_values = { "average_speed" => 1.58 }
|
98
|
+
bird.update_attributes(new_values)
|
99
|
+
|
100
|
+
bird.should_not be_changed
|
101
|
+
bird.average_speed.should be_true
|
102
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
103
|
+
result = model_class.where({:average_speed => new_values["average_speed"]}, nil, true).first
|
104
|
+
else
|
105
|
+
result = model_class.where({:average_speed => new_values["average_speed"]}).first
|
106
|
+
end
|
107
|
+
result.dbid.should == model.dbid
|
108
|
+
end
|
109
|
+
|
110
|
+
it "saves and updates observed" do
|
111
|
+
new_values = { "observed" => DateTime.parse("2012-11-23T06:17:28") }
|
112
|
+
bird.update_attributes(new_values)
|
113
|
+
|
114
|
+
bird.should_not be_changed
|
115
|
+
bird.observed.should be_true
|
116
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
117
|
+
result = model_class.where({:observed => new_values["observed"]}, nil, true).first
|
118
|
+
else
|
119
|
+
result = model_class.where({:observed => new_values["observed"]}).first
|
120
|
+
end
|
121
|
+
result.dbid.should == model.dbid
|
122
|
+
end
|
123
|
+
|
124
|
+
it "saves and updates case_no" do
|
125
|
+
if model_class.ancestors.include? Diametric::Persistence::REST
|
126
|
+
pending "REST fails to save UUID type"
|
127
|
+
else
|
128
|
+
no = UUID.new.generate
|
129
|
+
new_values = { "case_no" => no }
|
130
|
+
bird.update_attributes(new_values)
|
131
|
+
|
132
|
+
bird.should_not be_changed
|
133
|
+
bird.case_no.should be_true
|
134
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
135
|
+
result = model_class.where({:case_no => new_values["case_no"]}, nil, true).first
|
136
|
+
else
|
137
|
+
result = model_class.where({:case_no => new_values["case_no"]}).first
|
138
|
+
end
|
139
|
+
result.dbid.should == model.dbid
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
it "saves and updates serial" do
|
144
|
+
if model_class.ancestors.include? Diametric::Persistence::REST
|
145
|
+
pending "REST fails to save UUID type"
|
146
|
+
else
|
147
|
+
no = UUID.new.generate
|
148
|
+
new_values = { "serial" => no }
|
149
|
+
bird.update_attributes(new_values)
|
150
|
+
|
151
|
+
bird.should_not be_changed
|
152
|
+
bird.serial.should be_true
|
153
|
+
if model_class.ancestors.include? Diametric::Persistence::Peer
|
154
|
+
result = model_class.where({:serial => new_values["serial"]}, nil, true).first
|
155
|
+
else
|
156
|
+
result = model_class.where({:serial => new_values["serial"]}).first
|
157
|
+
end
|
158
|
+
result.dbid.should == model.dbid
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
data/spec/test_version_file.yml
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diametric
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clinton N. Dreisbach
|
@@ -10,13 +10,16 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2014-02-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: edn
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.0'
|
22
|
+
- - '>='
|
20
23
|
- !ruby/object:Gem::Version
|
21
24
|
version: 1.0.2
|
22
25
|
type: :runtime
|
@@ -24,6 +27,9 @@ dependencies:
|
|
24
27
|
version_requirements: !ruby/object:Gem::Requirement
|
25
28
|
requirements:
|
26
29
|
- - ~>
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '1.0'
|
32
|
+
- - '>='
|
27
33
|
- !ruby/object:Gem::Version
|
28
34
|
version: 1.0.2
|
29
35
|
- !ruby/object:Gem::Dependency
|
@@ -32,33 +38,48 @@ dependencies:
|
|
32
38
|
requirements:
|
33
39
|
- - ~>
|
34
40
|
- !ruby/object:Gem::Version
|
35
|
-
version: 3.2
|
41
|
+
version: '3.2'
|
42
|
+
- - '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 3.2.16
|
36
45
|
type: :runtime
|
37
46
|
prerelease: false
|
38
47
|
version_requirements: !ruby/object:Gem::Requirement
|
39
48
|
requirements:
|
40
49
|
- - ~>
|
41
50
|
- !ruby/object:Gem::Version
|
42
|
-
version: 3.2
|
51
|
+
version: '3.2'
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.2.16
|
43
55
|
- !ruby/object:Gem::Dependency
|
44
56
|
name: activemodel
|
45
57
|
requirement: !ruby/object:Gem::Requirement
|
46
58
|
requirements:
|
47
59
|
- - ~>
|
48
60
|
- !ruby/object:Gem::Version
|
49
|
-
version: 3.2
|
61
|
+
version: '3.2'
|
62
|
+
- - '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 3.2.16
|
50
65
|
type: :runtime
|
51
66
|
prerelease: false
|
52
67
|
version_requirements: !ruby/object:Gem::Requirement
|
53
68
|
requirements:
|
54
69
|
- - ~>
|
55
70
|
- !ruby/object:Gem::Version
|
56
|
-
version: 3.2
|
71
|
+
version: '3.2'
|
72
|
+
- - '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 3.2.16
|
57
75
|
- !ruby/object:Gem::Dependency
|
58
76
|
name: datomic-client
|
59
77
|
requirement: !ruby/object:Gem::Requirement
|
60
78
|
requirements:
|
61
79
|
- - ~>
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0.4'
|
82
|
+
- - '>='
|
62
83
|
- !ruby/object:Gem::Version
|
63
84
|
version: 0.4.1
|
64
85
|
type: :runtime
|
@@ -66,6 +87,9 @@ dependencies:
|
|
66
87
|
version_requirements: !ruby/object:Gem::Requirement
|
67
88
|
requirements:
|
68
89
|
- - ~>
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0.4'
|
92
|
+
- - '>='
|
69
93
|
- !ruby/object:Gem::Version
|
70
94
|
version: 0.4.1
|
71
95
|
- !ruby/object:Gem::Dependency
|
@@ -73,6 +97,9 @@ dependencies:
|
|
73
97
|
requirement: !ruby/object:Gem::Requirement
|
74
98
|
requirements:
|
75
99
|
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0.9'
|
102
|
+
- - '>='
|
76
103
|
- !ruby/object:Gem::Version
|
77
104
|
version: 0.9.9
|
78
105
|
type: :runtime
|
@@ -80,6 +107,9 @@ dependencies:
|
|
80
107
|
version_requirements: !ruby/object:Gem::Requirement
|
81
108
|
requirements:
|
82
109
|
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0.9'
|
112
|
+
- - '>='
|
83
113
|
- !ruby/object:Gem::Version
|
84
114
|
version: 0.9.9
|
85
115
|
- !ruby/object:Gem::Dependency
|
@@ -87,6 +117,9 @@ dependencies:
|
|
87
117
|
requirement: !ruby/object:Gem::Requirement
|
88
118
|
requirements:
|
89
119
|
- - ~>
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '2.3'
|
122
|
+
- - '>='
|
90
123
|
- !ruby/object:Gem::Version
|
91
124
|
version: 2.3.7
|
92
125
|
type: :runtime
|
@@ -94,6 +127,9 @@ dependencies:
|
|
94
127
|
version_requirements: !ruby/object:Gem::Requirement
|
95
128
|
requirements:
|
96
129
|
- - ~>
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.3'
|
132
|
+
- - '>='
|
97
133
|
- !ruby/object:Gem::Version
|
98
134
|
version: 2.3.7
|
99
135
|
- !ruby/object:Gem::Dependency
|
@@ -101,6 +137,9 @@ dependencies:
|
|
101
137
|
requirement: !ruby/object:Gem::Requirement
|
102
138
|
requirements:
|
103
139
|
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '2.3'
|
142
|
+
- - '>='
|
104
143
|
- !ruby/object:Gem::Version
|
105
144
|
version: 2.14.1
|
106
145
|
type: :runtime
|
@@ -108,15 +147,15 @@ dependencies:
|
|
108
147
|
version_requirements: !ruby/object:Gem::Requirement
|
109
148
|
requirements:
|
110
149
|
- - ~>
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '2.3'
|
152
|
+
- - '>='
|
111
153
|
- !ruby/object:Gem::Version
|
112
154
|
version: 2.14.1
|
113
|
-
description:
|
114
|
-
|
155
|
+
description: |
|
156
|
+
Diametric is a library for building schemas, queries, and transactions
|
115
157
|
for Datomic from Ruby objects. It is also used to map Ruby objects
|
116
|
-
|
117
158
|
as entities into a Datomic database.
|
118
|
-
|
119
|
-
'
|
120
159
|
email:
|
121
160
|
- crnixon@gmail.com
|
122
161
|
- ryan@thinkrelevance.com
|
@@ -136,6 +175,7 @@ files:
|
|
136
175
|
- datomic_version.yml
|
137
176
|
- diametric.gemspec
|
138
177
|
- lib/boolean_type.rb
|
178
|
+
- lib/diametric/associations/collection.rb
|
139
179
|
- lib/diametric/config/environment.rb
|
140
180
|
- lib/diametric/config.rb
|
141
181
|
- lib/diametric/entity.rb
|
@@ -184,6 +224,7 @@ files:
|
|
184
224
|
- spec/diametric/persistence_spec.rb
|
185
225
|
- spec/diametric/query_spec.rb
|
186
226
|
- spec/diametric/rest_service_spec.rb
|
227
|
+
- spec/diametric/schema_spec.rb
|
187
228
|
- spec/diametric/transactor_spec.rb
|
188
229
|
- spec/integration_spec.rb
|
189
230
|
- spec/parent_child_sample.rb
|
@@ -195,14 +236,19 @@ files:
|
|
195
236
|
- spec/seattle_integration_spec.rb
|
196
237
|
- spec/simple_validation_sample.rb
|
197
238
|
- spec/spec_helper.rb
|
239
|
+
- spec/support/cardinarity_many_example.rb
|
198
240
|
- spec/support/entities.rb
|
199
241
|
- spec/support/gen_entity_class.rb
|
242
|
+
- spec/support/has_a_example.rb
|
243
|
+
- spec/support/has_many_example.rb
|
200
244
|
- spec/support/persistence_examples.rb
|
245
|
+
- spec/support/various_types_examples.rb
|
201
246
|
- spec/test_version_file.yml
|
202
247
|
- bin/datomic-rest
|
203
248
|
- bin/download-datomic
|
204
249
|
homepage: https://github.com/relevance/diametric
|
205
|
-
licenses:
|
250
|
+
licenses:
|
251
|
+
- MIT
|
206
252
|
metadata: {}
|
207
253
|
post_install_message:
|
208
254
|
rdoc_options: []
|
@@ -210,17 +256,17 @@ require_paths:
|
|
210
256
|
- lib
|
211
257
|
required_ruby_version: !ruby/object:Gem::Requirement
|
212
258
|
requirements:
|
213
|
-
- -
|
259
|
+
- - '>='
|
214
260
|
- !ruby/object:Gem::Version
|
215
261
|
version: '0'
|
216
262
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
217
263
|
requirements:
|
218
|
-
- -
|
264
|
+
- - '>='
|
219
265
|
- !ruby/object:Gem::Version
|
220
266
|
version: '0'
|
221
267
|
requirements: []
|
222
268
|
rubyforge_project:
|
223
|
-
rubygems_version: 2.
|
269
|
+
rubygems_version: 2.1.11
|
224
270
|
signing_key:
|
225
271
|
specification_version: 4
|
226
272
|
summary: ActiveModel for Datomic
|
@@ -237,6 +283,7 @@ test_files:
|
|
237
283
|
- spec/diametric/persistence_spec.rb
|
238
284
|
- spec/diametric/query_spec.rb
|
239
285
|
- spec/diametric/rest_service_spec.rb
|
286
|
+
- spec/diametric/schema_spec.rb
|
240
287
|
- spec/diametric/transactor_spec.rb
|
241
288
|
- spec/integration_spec.rb
|
242
289
|
- spec/parent_child_sample.rb
|
@@ -248,7 +295,11 @@ test_files:
|
|
248
295
|
- spec/seattle_integration_spec.rb
|
249
296
|
- spec/simple_validation_sample.rb
|
250
297
|
- spec/spec_helper.rb
|
298
|
+
- spec/support/cardinarity_many_example.rb
|
251
299
|
- spec/support/entities.rb
|
252
300
|
- spec/support/gen_entity_class.rb
|
301
|
+
- spec/support/has_a_example.rb
|
302
|
+
- spec/support/has_many_example.rb
|
253
303
|
- spec/support/persistence_examples.rb
|
304
|
+
- spec/support/various_types_examples.rb
|
254
305
|
has_rdoc:
|