datamapper 0.2.5 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. data/CHANGELOG +5 -1
  2. data/FAQ +96 -0
  3. data/QUICKLINKS +12 -0
  4. data/README +57 -155
  5. data/environment.rb +61 -43
  6. data/example.rb +30 -12
  7. data/lib/data_mapper.rb +6 -1
  8. data/lib/data_mapper/adapters/abstract_adapter.rb +0 -57
  9. data/lib/data_mapper/adapters/data_object_adapter.rb +203 -97
  10. data/lib/data_mapper/adapters/mysql_adapter.rb +4 -0
  11. data/lib/data_mapper/adapters/postgresql_adapter.rb +7 -1
  12. data/lib/data_mapper/adapters/sql/coersion.rb +3 -2
  13. data/lib/data_mapper/adapters/sql/commands/load_command.rb +29 -10
  14. data/lib/data_mapper/adapters/sql/mappings/associations_set.rb +4 -0
  15. data/lib/data_mapper/adapters/sql/mappings/column.rb +13 -9
  16. data/lib/data_mapper/adapters/sql/mappings/conditions.rb +172 -0
  17. data/lib/data_mapper/adapters/sql/mappings/table.rb +43 -17
  18. data/lib/data_mapper/adapters/sqlite3_adapter.rb +9 -2
  19. data/lib/data_mapper/associations.rb +75 -3
  20. data/lib/data_mapper/associations/belongs_to_association.rb +70 -36
  21. data/lib/data_mapper/associations/has_and_belongs_to_many_association.rb +195 -86
  22. data/lib/data_mapper/associations/has_many_association.rb +168 -61
  23. data/lib/data_mapper/associations/has_n_association.rb +23 -3
  24. data/lib/data_mapper/attributes.rb +73 -0
  25. data/lib/data_mapper/auto_migrations.rb +2 -6
  26. data/lib/data_mapper/base.rb +5 -9
  27. data/lib/data_mapper/database.rb +4 -3
  28. data/lib/data_mapper/embedded_value.rb +66 -30
  29. data/lib/data_mapper/identity_map.rb +1 -3
  30. data/lib/data_mapper/is/tree.rb +121 -0
  31. data/lib/data_mapper/migration.rb +155 -0
  32. data/lib/data_mapper/persistence.rb +532 -218
  33. data/lib/data_mapper/property.rb +306 -0
  34. data/lib/data_mapper/query.rb +164 -0
  35. data/lib/data_mapper/support/blank.rb +2 -2
  36. data/lib/data_mapper/support/connection_pool.rb +5 -6
  37. data/lib/data_mapper/support/enumerable.rb +3 -3
  38. data/lib/data_mapper/support/errors.rb +10 -1
  39. data/lib/data_mapper/support/inflector.rb +174 -238
  40. data/lib/data_mapper/support/object.rb +54 -0
  41. data/lib/data_mapper/support/serialization.rb +19 -1
  42. data/lib/data_mapper/support/string.rb +7 -16
  43. data/lib/data_mapper/support/symbol.rb +3 -15
  44. data/lib/data_mapper/support/typed_set.rb +68 -0
  45. data/lib/data_mapper/types/base.rb +44 -0
  46. data/lib/data_mapper/types/string.rb +34 -0
  47. data/lib/data_mapper/validations/number_validator.rb +40 -0
  48. data/lib/data_mapper/validations/string_validator.rb +20 -0
  49. data/lib/data_mapper/validations/validator.rb +13 -0
  50. data/performance.rb +26 -1
  51. data/profile_data_mapper.rb +1 -1
  52. data/rakefile.rb +42 -2
  53. data/spec/acts_as_tree_spec.rb +11 -3
  54. data/spec/adapters/data_object_adapter_spec.rb +31 -0
  55. data/spec/associations/belongs_to_association_spec.rb +98 -0
  56. data/spec/associations/has_and_belongs_to_many_association_spec.rb +377 -0
  57. data/spec/associations/has_many_association_spec.rb +337 -0
  58. data/spec/attributes_spec.rb +23 -1
  59. data/spec/auto_migrations_spec.rb +86 -29
  60. data/spec/callbacks_spec.rb +107 -0
  61. data/spec/column_spec.rb +5 -2
  62. data/spec/count_command_spec.rb +33 -1
  63. data/spec/database_spec.rb +18 -0
  64. data/spec/dependency_spec.rb +4 -2
  65. data/spec/embedded_value_spec.rb +8 -8
  66. data/spec/fixtures/people.yaml +1 -1
  67. data/spec/fixtures/projects.yaml +10 -1
  68. data/spec/fixtures/tasks.yaml +6 -0
  69. data/spec/fixtures/tasks_tasks.yaml +2 -0
  70. data/spec/fixtures/tomatoes.yaml +1 -0
  71. data/spec/is_a_tree_spec.rb +149 -0
  72. data/spec/load_command_spec.rb +71 -9
  73. data/spec/magic_columns_spec.rb +17 -2
  74. data/spec/migration_spec.rb +267 -0
  75. data/spec/models/animal.rb +1 -1
  76. data/spec/models/candidate.rb +8 -0
  77. data/spec/models/career.rb +1 -1
  78. data/spec/models/chain.rb +8 -0
  79. data/spec/models/comment.rb +1 -1
  80. data/spec/models/exhibit.rb +1 -1
  81. data/spec/models/fence.rb +7 -0
  82. data/spec/models/fruit.rb +2 -2
  83. data/spec/models/job.rb +8 -0
  84. data/spec/models/person.rb +2 -3
  85. data/spec/models/post.rb +1 -1
  86. data/spec/models/project.rb +21 -1
  87. data/spec/models/section.rb +1 -1
  88. data/spec/models/serializer.rb +1 -1
  89. data/spec/models/task.rb +9 -0
  90. data/spec/models/tomato.rb +27 -0
  91. data/spec/models/user.rb +8 -2
  92. data/spec/models/zoo.rb +2 -7
  93. data/spec/paranoia_spec.rb +1 -1
  94. data/spec/{base_spec.rb → persistence_spec.rb} +207 -18
  95. data/spec/postgres_spec.rb +48 -6
  96. data/spec/property_spec.rb +90 -9
  97. data/spec/query_spec.rb +71 -5
  98. data/spec/save_command_spec.rb +11 -0
  99. data/spec/spec_helper.rb +14 -11
  100. data/spec/support/blank_spec.rb +8 -0
  101. data/spec/support/inflector_spec.rb +41 -0
  102. data/spec/support/object_spec.rb +9 -0
  103. data/spec/{serialization_spec.rb → support/serialization_spec.rb} +1 -1
  104. data/spec/support/silence_spec.rb +15 -0
  105. data/spec/{support_spec.rb → support/string_spec.rb} +3 -3
  106. data/spec/support/struct_spec.rb +12 -0
  107. data/spec/support/typed_set_spec.rb +66 -0
  108. data/spec/table_spec.rb +3 -3
  109. data/spec/types/string.rb +81 -0
  110. data/spec/validates_uniqueness_of_spec.rb +17 -0
  111. data/spec/validations/number_validator.rb +59 -0
  112. data/spec/validations/string_validator.rb +14 -0
  113. metadata +59 -17
  114. data/do_performance.rb +0 -153
  115. data/lib/data_mapper/support/active_record_impersonation.rb +0 -103
  116. data/lib/data_mapper/support/weak_hash.rb +0 -46
  117. data/spec/active_record_impersonation_spec.rb +0 -129
  118. data/spec/associations_spec.rb +0 -232
  119. data/spec/conditions_spec.rb +0 -49
  120. data/spec/has_many_association_spec.rb +0 -173
  121. data/spec/models/animals_exhibit.rb +0 -8
@@ -1,7 +1,7 @@
1
- describe DataMapper::Support do
1
+ describe DataMapper::Support::String do
2
2
 
3
- it "a String should translate" do
3
+ it "should translate" do
4
4
  "%s is great!".t('DataMapper').should eql("DataMapper is great!")
5
5
  end
6
6
 
7
- end
7
+ end
@@ -0,0 +1,12 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ describe Struct do
4
+
5
+ it "should have attributes" do
6
+
7
+ s = Struct.new(:name).new('bob')
8
+ s.attributes.should == { :name => 'bob' }
9
+
10
+ end
11
+
12
+ end
@@ -0,0 +1,66 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ describe DataMapper::Support::TypedSet do
4
+
5
+ it "should accept objects of a defined type, and raise for others" do
6
+
7
+ s = DataMapper::Support::TypedSet.new(Zoo, Animal)
8
+
9
+ lambda do
10
+ s << Zoo.new
11
+ s.size.should == 1
12
+ end.should_not raise_error(ArgumentError)
13
+
14
+ lambda do
15
+ s << Animal.new
16
+ s.size.should == 2
17
+ end.should_not raise_error(ArgumentError)
18
+
19
+ lambda do
20
+ s << Exhibit.new
21
+ s.size.should == 2
22
+ end.should raise_error(ArgumentError)
23
+
24
+ end
25
+
26
+ it "should be sorted" do
27
+
28
+ s = DataMapper::Support::TypedSet.new(Numeric)
29
+
30
+ s << 8
31
+ s << 4
32
+ s << 9
33
+ s << 27
34
+ s << 30
35
+ s << 1
36
+ s << 0
37
+ s << 5
38
+ s << 3
39
+
40
+ s.entries.first.should eql(0)
41
+ s.entries.last.should eql(30)
42
+ end
43
+
44
+ it "should respond to blank?" do
45
+ s = DataMapper::Support::TypedSet.new(Numeric)
46
+ s.should be_blank
47
+
48
+ s << 4
49
+ s.should_not be_blank
50
+ end
51
+
52
+ it "should return the combined entries for two sets" do
53
+ a = DataMapper::Support::TypedSet.new(Numeric)
54
+ b = DataMapper::Support::TypedSet.new(Numeric)
55
+
56
+ a << 1 << 2 << 3
57
+ b << 4 << 5 << 6 << 3
58
+
59
+ c = (a + b)
60
+ c.should have(6).entries
61
+ c.entries.should == [ 1, 2, 3, 4, 5, 6 ]
62
+
63
+ lambda { (c + nil) }.should_not raise_error
64
+ end
65
+
66
+ end
@@ -31,7 +31,7 @@ describe DataMapper::Adapters::Sql::Mappings::Table do
31
31
  end
32
32
 
33
33
  it "should create sql for composite unique indexes" do
34
- class Cage
34
+ class Cage #< DataMapper::Base # please do not remove this
35
35
  include DataMapper::Persistence
36
36
 
37
37
  property :name, :string
@@ -45,7 +45,7 @@ describe DataMapper::Adapters::Sql::Mappings::Table do
45
45
  end
46
46
 
47
47
  it "should create sql for composite indexes" do
48
- class Lion
48
+ class Lion #< DataMapper::Base # please do not remove this
49
49
  include DataMapper::Persistence
50
50
 
51
51
  property :name, :string
@@ -59,7 +59,7 @@ describe DataMapper::Adapters::Sql::Mappings::Table do
59
59
  end
60
60
 
61
61
  it "should create sql for multiple composite indexes" do
62
- class Course
62
+ class Course #< DataMapper::Base # please do not remove this
63
63
  include DataMapper::Persistence
64
64
 
65
65
  property :code, :string
@@ -0,0 +1,81 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ describe DataMapper::Types::String do
4
+ it "should look like a String" do
5
+ DataMapper::Types::String.new("duh").should be_a_kind_of(String)
6
+ end
7
+
8
+ it "should answer for :string" do
9
+ DataMapper::Types::TYPE_MAP[:string].should == DataMapper::Types::String
10
+ end
11
+
12
+ it "should be ready to replace Strings" do
13
+ DataMapper::Types::TYPE_MAP[String].should == DataMapper::Types::String
14
+ end
15
+
16
+ describe "with validations" do
17
+
18
+ it "should catch length errors" do
19
+ nval = mock("length validator")
20
+ nval.should_receive(:<)
21
+
22
+ DataMapper::Validations::NumberValidator.should_receive(:new).and_return(nval)
23
+
24
+ class T < DataMapper::Types::String
25
+ length < 25
26
+ end
27
+
28
+ inst = T.new("Whatever")
29
+
30
+ nval.should_receive(:errors_for).with(inst.length).and_return(["error"])
31
+
32
+ inst.should_not be_valid
33
+ inst.errors.should have_exactly(1).item
34
+ inst.errors[0].should == "error"
35
+ end
36
+
37
+ it "should catch match errors" do
38
+ sval = mock("match validator")
39
+ sval.should_receive(:matches)
40
+
41
+ DataMapper::Validations::StringValidator.should_receive(:new).and_return(sval)
42
+
43
+ class R < DataMapper::Types::String
44
+ matches /aabb/
45
+ end
46
+
47
+ inst = R.new("Whatever")
48
+
49
+ sval.should_receive(:errors_for).with(inst).and_return(["error"])
50
+
51
+ inst.should_not be_valid
52
+ inst.errors.should have_exactly(1).item
53
+ inst.errors[0].should == "error"
54
+ end
55
+
56
+ it "should be valid" do
57
+ nval = mock("length validator")
58
+ nval.should_receive(:<)
59
+
60
+ DataMapper::Validations::NumberValidator.should_receive(:new).and_return(nval)
61
+
62
+ sval = mock("match validator")
63
+ sval.should_receive(:matches)
64
+
65
+ DataMapper::Validations::StringValidator.should_receive(:new).and_return(sval)
66
+
67
+ class Q < DataMapper::Types::String
68
+ length < 25
69
+ matches /aabb/
70
+ end
71
+
72
+ inst = Q.new("Whatever")
73
+
74
+ nval.should_receive(:errors_for).with(inst.length).and_return([])
75
+ sval.should_receive(:errors_for).with(inst).and_return([])
76
+
77
+ inst.should be_valid
78
+ inst.errors.should be_empty
79
+ end
80
+ end
81
+ end
@@ -72,4 +72,21 @@ describe Validatable::ValidatesUniquenessOf do
72
72
  bugaboo.valid?(:save).should == false
73
73
  bugaboo.errors.full_messages.first.should == 'You try to steal my name? I kill you!'
74
74
  end
75
+
76
+ it "should not interfere with the destruction of an object" do
77
+ pending "see: http://wm.lighthouseapp.com/projects/4819-datamapper/tickets/139"
78
+
79
+ ## creating two dups so that we have invalid records in the db
80
+ Project.create(:title => 'Dup')
81
+ Project.create(:title => 'Dup')
82
+
83
+ class Project
84
+ validations.clear
85
+ validates_uniqueness_of :title, :message => 'You try to steal my title? I kill you!'
86
+ end
87
+
88
+ project = Project.first(:title => 'Dup')
89
+ project.destroy!.should == true
90
+
91
+ end
75
92
  end
@@ -0,0 +1,59 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ describe DataMapper::Validations::NumberValidator do
4
+ before(:each) do
5
+ @v = DataMapper::Validations::NumberValidator.new
6
+ end
7
+
8
+ it "should validate 'less than'" do
9
+ @v < 10
10
+
11
+ @v.errors_for(11).should_not be_empty
12
+ @v.errors_for(10).should_not be_empty
13
+ @v.errors_for(9).should be_empty
14
+ end
15
+
16
+ it "should validate 'less than or equals'" do
17
+ @v <= 10
18
+
19
+ @v.errors_for(11).should_not be_empty
20
+ @v.errors_for(10).should be_empty
21
+ @v.errors_for(9).should be_empty
22
+ end
23
+
24
+ it "should validate 'greater than'" do
25
+ @v > 10
26
+
27
+ @v.errors_for(11).should be_empty
28
+ @v.errors_for(10).should_not be_empty
29
+ @v.errors_for(9).should_not be_empty
30
+ end
31
+
32
+ it "should validate 'greater than or equals'" do
33
+ @v >= 10
34
+
35
+ @v.errors_for(11).should be_empty
36
+ @v.errors_for(10).should be_empty
37
+ @v.errors_for(9).should_not be_empty
38
+ end
39
+
40
+ it "should validate 'between' (inclusive)" do
41
+ @v.between(1 .. 10)
42
+
43
+ @v.errors_for(11).should_not be_empty
44
+ @v.errors_for(0).should_not be_empty
45
+ @v.errors_for(10).should be_empty
46
+ @v.errors_for(1).should be_empty
47
+ @v.errors_for(5).should be_empty
48
+ end
49
+
50
+ it "should validate 'between' (exclusive)" do
51
+ @v.between(1 ... 10)
52
+
53
+ @v.errors_for(11).should_not be_empty
54
+ @v.errors_for(0).should_not be_empty
55
+ @v.errors_for(10).should_not be_empty
56
+ @v.errors_for(1).should be_empty
57
+ @v.errors_for(5).should be_empty
58
+ end
59
+ end
@@ -0,0 +1,14 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ describe DataMapper::Validations::StringValidator do
4
+ before(:each) do
5
+ @v = DataMapper::Validations::StringValidator.new
6
+ end
7
+
8
+ it "should validate 'matches'" do
9
+ @v.matches /aabb/
10
+
11
+ @v.errors_for("cde").should_not be_empty
12
+ @v.errors_for("aabbb").should be_empty
13
+ end
14
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datamapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Smoot
@@ -9,7 +9,7 @@ autorequire: data_mapper
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2007-12-19 00:00:00 -06:00
12
+ date: 2008-03-17 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -56,9 +56,10 @@ extensions: []
56
56
 
57
57
  extra_rdoc_files:
58
58
  - README
59
+ - FAQ
60
+ - QUICKLINKS
59
61
  - CHANGELOG
60
62
  - MIT-LICENSE
61
- - do_performance.rb
62
63
  - environment.rb
63
64
  - example.rb
64
65
  - performance.rb
@@ -72,6 +73,7 @@ extra_rdoc_files:
72
73
  - lib/data_mapper/adapters/sql/commands/load_command.rb
73
74
  - lib/data_mapper/adapters/sql/mappings/associations_set.rb
74
75
  - lib/data_mapper/adapters/sql/mappings/column.rb
76
+ - lib/data_mapper/adapters/sql/mappings/conditions.rb
75
77
  - lib/data_mapper/adapters/sql/mappings/schema.rb
76
78
  - lib/data_mapper/adapters/sql/mappings/table.rb
77
79
  - lib/data_mapper/adapters/sql/quoting.rb
@@ -82,6 +84,7 @@ extra_rdoc_files:
82
84
  - lib/data_mapper/associations/has_n_association.rb
83
85
  - lib/data_mapper/associations/reference.rb
84
86
  - lib/data_mapper/associations.rb
87
+ - lib/data_mapper/attributes.rb
85
88
  - lib/data_mapper/auto_migrations.rb
86
89
  - lib/data_mapper/base.rb
87
90
  - lib/data_mapper/callbacks.rb
@@ -90,20 +93,25 @@ extra_rdoc_files:
90
93
  - lib/data_mapper/dependency_queue.rb
91
94
  - lib/data_mapper/embedded_value.rb
92
95
  - lib/data_mapper/identity_map.rb
96
+ - lib/data_mapper/is/tree.rb
97
+ - lib/data_mapper/migration.rb
93
98
  - lib/data_mapper/persistence.rb
94
99
  - lib/data_mapper/property.rb
95
- - lib/data_mapper/support/active_record_impersonation.rb
100
+ - lib/data_mapper/query.rb
96
101
  - lib/data_mapper/support/blank.rb
97
102
  - lib/data_mapper/support/connection_pool.rb
98
103
  - lib/data_mapper/support/enumerable.rb
99
104
  - lib/data_mapper/support/errors.rb
100
105
  - lib/data_mapper/support/inflector.rb
106
+ - lib/data_mapper/support/object.rb
101
107
  - lib/data_mapper/support/serialization.rb
102
108
  - lib/data_mapper/support/silence.rb
103
109
  - lib/data_mapper/support/string.rb
104
110
  - lib/data_mapper/support/struct.rb
105
111
  - lib/data_mapper/support/symbol.rb
106
- - lib/data_mapper/support/weak_hash.rb
112
+ - lib/data_mapper/support/typed_set.rb
113
+ - lib/data_mapper/types/base.rb
114
+ - lib/data_mapper/types/string.rb
107
115
  - lib/data_mapper/validatable_extensions/errors.rb
108
116
  - lib/data_mapper/validatable_extensions/macros.rb
109
117
  - lib/data_mapper/validatable_extensions/validatable_instance_methods.rb
@@ -118,6 +126,9 @@ extra_rdoc_files:
118
126
  - lib/data_mapper/validatable_extensions/validations/validates_presence_of.rb
119
127
  - lib/data_mapper/validatable_extensions/validations/validates_true_for.rb
120
128
  - lib/data_mapper/validatable_extensions/validations/validates_uniqueness_of.rb
129
+ - lib/data_mapper/validations/number_validator.rb
130
+ - lib/data_mapper/validations/string_validator.rb
131
+ - lib/data_mapper/validations/validator.rb
121
132
  - lib/data_mapper/validations.rb
122
133
  - lib/data_mapper.rb
123
134
  - tasks/fixtures.rb
@@ -133,9 +144,10 @@ extra_rdoc_files:
133
144
  - plugins/can_has_sphinx/tasks/acts_as_sphinx_tasks.rake
134
145
  files:
135
146
  - README
147
+ - FAQ
148
+ - QUICKLINKS
136
149
  - CHANGELOG
137
150
  - MIT-LICENSE
138
- - do_performance.rb
139
151
  - environment.rb
140
152
  - example.rb
141
153
  - performance.rb
@@ -149,6 +161,7 @@ files:
149
161
  - lib/data_mapper/adapters/sql/commands/load_command.rb
150
162
  - lib/data_mapper/adapters/sql/mappings/associations_set.rb
151
163
  - lib/data_mapper/adapters/sql/mappings/column.rb
164
+ - lib/data_mapper/adapters/sql/mappings/conditions.rb
152
165
  - lib/data_mapper/adapters/sql/mappings/schema.rb
153
166
  - lib/data_mapper/adapters/sql/mappings/table.rb
154
167
  - lib/data_mapper/adapters/sql/quoting.rb
@@ -159,6 +172,7 @@ files:
159
172
  - lib/data_mapper/associations/has_n_association.rb
160
173
  - lib/data_mapper/associations/reference.rb
161
174
  - lib/data_mapper/associations.rb
175
+ - lib/data_mapper/attributes.rb
162
176
  - lib/data_mapper/auto_migrations.rb
163
177
  - lib/data_mapper/base.rb
164
178
  - lib/data_mapper/callbacks.rb
@@ -167,20 +181,25 @@ files:
167
181
  - lib/data_mapper/dependency_queue.rb
168
182
  - lib/data_mapper/embedded_value.rb
169
183
  - lib/data_mapper/identity_map.rb
184
+ - lib/data_mapper/is/tree.rb
185
+ - lib/data_mapper/migration.rb
170
186
  - lib/data_mapper/persistence.rb
171
187
  - lib/data_mapper/property.rb
172
- - lib/data_mapper/support/active_record_impersonation.rb
188
+ - lib/data_mapper/query.rb
173
189
  - lib/data_mapper/support/blank.rb
174
190
  - lib/data_mapper/support/connection_pool.rb
175
191
  - lib/data_mapper/support/enumerable.rb
176
192
  - lib/data_mapper/support/errors.rb
177
193
  - lib/data_mapper/support/inflector.rb
194
+ - lib/data_mapper/support/object.rb
178
195
  - lib/data_mapper/support/serialization.rb
179
196
  - lib/data_mapper/support/silence.rb
180
197
  - lib/data_mapper/support/string.rb
181
198
  - lib/data_mapper/support/struct.rb
182
199
  - lib/data_mapper/support/symbol.rb
183
- - lib/data_mapper/support/weak_hash.rb
200
+ - lib/data_mapper/support/typed_set.rb
201
+ - lib/data_mapper/types/base.rb
202
+ - lib/data_mapper/types/string.rb
184
203
  - lib/data_mapper/validatable_extensions/errors.rb
185
204
  - lib/data_mapper/validatable_extensions/macros.rb
186
205
  - lib/data_mapper/validatable_extensions/validatable_instance_methods.rb
@@ -195,61 +214,81 @@ files:
195
214
  - lib/data_mapper/validatable_extensions/validations/validates_presence_of.rb
196
215
  - lib/data_mapper/validatable_extensions/validations/validates_true_for.rb
197
216
  - lib/data_mapper/validatable_extensions/validations/validates_uniqueness_of.rb
217
+ - lib/data_mapper/validations/number_validator.rb
218
+ - lib/data_mapper/validations/string_validator.rb
219
+ - lib/data_mapper/validations/validator.rb
198
220
  - lib/data_mapper/validations.rb
199
221
  - lib/data_mapper.rb
200
- - spec/active_record_impersonation_spec.rb
201
222
  - spec/acts_as_tree_spec.rb
202
- - spec/associations_spec.rb
223
+ - spec/adapters/data_object_adapter_spec.rb
224
+ - spec/associations/belongs_to_association_spec.rb
225
+ - spec/associations/has_and_belongs_to_many_association_spec.rb
226
+ - spec/associations/has_many_association_spec.rb
203
227
  - spec/attributes_spec.rb
204
228
  - spec/auto_migrations_spec.rb
205
- - spec/base_spec.rb
206
229
  - spec/callbacks_spec.rb
207
230
  - spec/can_has_sphinx.rb
208
231
  - spec/coersion_spec.rb
209
232
  - spec/column_spec.rb
210
- - spec/conditions_spec.rb
211
233
  - spec/count_command_spec.rb
234
+ - spec/database_spec.rb
212
235
  - spec/dataobjects_spec.rb
213
236
  - spec/delete_command_spec.rb
214
237
  - spec/dependency_spec.rb
215
238
  - spec/embedded_value_spec.rb
216
- - spec/has_many_association_spec.rb
239
+ - spec/is_a_tree_spec.rb
217
240
  - spec/legacy_spec.rb
218
241
  - spec/load_command_spec.rb
219
242
  - spec/magic_columns_spec.rb
243
+ - spec/migration_spec.rb
220
244
  - spec/mock_adapter.rb
221
245
  - spec/models/animal.rb
222
- - spec/models/animals_exhibit.rb
246
+ - spec/models/candidate.rb
223
247
  - spec/models/career.rb
248
+ - spec/models/chain.rb
224
249
  - spec/models/comment.rb
225
250
  - spec/models/exhibit.rb
251
+ - spec/models/fence.rb
226
252
  - spec/models/fruit.rb
253
+ - spec/models/job.rb
227
254
  - spec/models/person.rb
228
255
  - spec/models/post.rb
229
256
  - spec/models/project.rb
230
257
  - spec/models/sales_person.rb
231
258
  - spec/models/section.rb
232
259
  - spec/models/serializer.rb
260
+ - spec/models/task.rb
261
+ - spec/models/tomato.rb
233
262
  - spec/models/user.rb
234
263
  - spec/models/zoo.rb
235
264
  - spec/natural_key_spec.rb
236
265
  - spec/paranoia_spec.rb
266
+ - spec/persistence_spec.rb
237
267
  - spec/postgres_spec.rb
238
268
  - spec/property_spec.rb
239
269
  - spec/query_spec.rb
240
270
  - spec/save_command_spec.rb
241
271
  - spec/schema_spec.rb
242
- - spec/serialization_spec.rb
243
272
  - spec/serialize_spec.rb
244
273
  - spec/single_table_inheritance_spec.rb
245
274
  - spec/spec_helper.rb
246
- - spec/support_spec.rb
275
+ - spec/support/blank_spec.rb
276
+ - spec/support/inflector_spec.rb
277
+ - spec/support/object_spec.rb
278
+ - spec/support/serialization_spec.rb
279
+ - spec/support/silence_spec.rb
280
+ - spec/support/string_spec.rb
281
+ - spec/support/struct_spec.rb
282
+ - spec/support/typed_set_spec.rb
247
283
  - spec/symbolic_operators_spec.rb
248
284
  - spec/table_spec.rb
285
+ - spec/types/string.rb
249
286
  - spec/validates_confirmation_of_spec.rb
250
287
  - spec/validates_format_of_spec.rb
251
288
  - spec/validates_length_of_spec.rb
252
289
  - spec/validates_uniqueness_of_spec.rb
290
+ - spec/validations/number_validator.rb
291
+ - spec/validations/string_validator.rb
253
292
  - spec/validations_spec.rb
254
293
  - spec/fixtures/animals.yaml
255
294
  - spec/fixtures/animals_exhibits.yaml
@@ -262,6 +301,9 @@ files:
262
301
  - spec/fixtures/projects.yaml
263
302
  - spec/fixtures/sections.yaml
264
303
  - spec/fixtures/serializers.yaml
304
+ - spec/fixtures/tasks.yaml
305
+ - spec/fixtures/tasks_tasks.yaml
306
+ - spec/fixtures/tomatoes.yaml
265
307
  - spec/fixtures/users.yaml
266
308
  - spec/fixtures/zoos.yaml
267
309
  - tasks/fixtures.rb
@@ -304,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
304
346
  requirements:
305
347
  - none
306
348
  rubyforge_project: datamapper
307
- rubygems_version: 0.9.5
349
+ rubygems_version: 1.0.1
308
350
  signing_key:
309
351
  specification_version: 2
310
352
  summary: An Object/Relational Mapper for Ruby