datamapper 0.2.5 → 0.3.0

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 (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