datamapper 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. data/example.rb +5 -5
  2. data/lib/data_mapper/adapters/abstract_adapter.rb +2 -2
  3. data/lib/data_mapper/adapters/data_object_adapter.rb +141 -147
  4. data/lib/data_mapper/adapters/mysql_adapter.rb +14 -1
  5. data/lib/data_mapper/adapters/postgresql_adapter.rb +123 -18
  6. data/lib/data_mapper/adapters/sql/coersion.rb +21 -9
  7. data/lib/data_mapper/adapters/sql/commands/load_command.rb +36 -19
  8. data/lib/data_mapper/adapters/sql/mappings/column.rb +111 -17
  9. data/lib/data_mapper/adapters/sql/mappings/schema.rb +27 -0
  10. data/lib/data_mapper/adapters/sql/mappings/table.rb +256 -29
  11. data/lib/data_mapper/adapters/sqlite3_adapter.rb +93 -8
  12. data/lib/data_mapper/associations/belongs_to_association.rb +53 -54
  13. data/lib/data_mapper/associations/has_and_belongs_to_many_association.rb +157 -25
  14. data/lib/data_mapper/associations/has_many_association.rb +45 -15
  15. data/lib/data_mapper/associations/has_n_association.rb +79 -20
  16. data/lib/data_mapper/associations/has_one_association.rb +2 -2
  17. data/lib/data_mapper/associations/reference.rb +1 -1
  18. data/lib/data_mapper/auto_migrations.rb +40 -0
  19. data/lib/data_mapper/base.rb +201 -98
  20. data/lib/data_mapper/context.rb +16 -10
  21. data/lib/data_mapper/database.rb +22 -11
  22. data/lib/data_mapper/dependency_queue.rb +28 -0
  23. data/lib/data_mapper/embedded_value.rb +61 -17
  24. data/lib/data_mapper/property.rb +4 -0
  25. data/lib/data_mapper/support/active_record_impersonation.rb +13 -5
  26. data/lib/data_mapper/support/errors.rb +5 -0
  27. data/lib/data_mapper/support/serialization.rb +8 -4
  28. data/lib/data_mapper/validatable_extensions/errors.rb +12 -0
  29. data/lib/data_mapper/validatable_extensions/macros.rb +7 -0
  30. data/lib/data_mapper/validatable_extensions/validatable_instance_methods.rb +62 -0
  31. data/lib/data_mapper/validatable_extensions/validation_base.rb +18 -0
  32. data/lib/data_mapper/validatable_extensions/validations/formats/email.rb +43 -0
  33. data/lib/data_mapper/validatable_extensions/validations/validates_acceptance_of.rb +7 -0
  34. data/lib/data_mapper/validatable_extensions/validations/validates_confirmation_of.rb +7 -0
  35. data/lib/data_mapper/validatable_extensions/validations/validates_each.rb +7 -0
  36. data/lib/data_mapper/validatable_extensions/validations/validates_format_of.rb +28 -0
  37. data/lib/data_mapper/validatable_extensions/validations/validates_length_of.rb +15 -0
  38. data/lib/data_mapper/validatable_extensions/validations/validates_numericality_of.rb +7 -0
  39. data/lib/data_mapper/validatable_extensions/validations/validates_presence_of.rb +7 -0
  40. data/lib/data_mapper/validatable_extensions/validations/validates_true_for.rb +7 -0
  41. data/lib/data_mapper/validatable_extensions/validations/validates_uniqueness_of.rb +33 -0
  42. data/lib/data_mapper/validations.rb +20 -0
  43. data/lib/data_mapper.rb +39 -34
  44. data/performance.rb +24 -18
  45. data/plugins/dataobjects/do_rb +0 -0
  46. data/rakefile.rb +12 -2
  47. data/spec/active_record_impersonation_spec.rb +133 -0
  48. data/spec/acts_as_tree_spec.rb +25 -9
  49. data/spec/associations_spec.rb +124 -4
  50. data/spec/attributes_spec.rb +13 -0
  51. data/spec/auto_migrations_spec.rb +44 -0
  52. data/spec/base_spec.rb +189 -1
  53. data/spec/column_spec.rb +85 -7
  54. data/spec/conditions_spec.rb +2 -2
  55. data/spec/dependency_spec.rb +25 -0
  56. data/spec/embedded_value_spec.rb +123 -3
  57. data/spec/fixtures/animals.yaml +1 -0
  58. data/spec/fixtures/careers.yaml +5 -0
  59. data/spec/fixtures/comments.yaml +1 -0
  60. data/spec/fixtures/people.yaml +14 -9
  61. data/spec/fixtures/projects.yaml +4 -0
  62. data/spec/fixtures/sections.yaml +5 -0
  63. data/spec/fixtures/serializers.yaml +6 -0
  64. data/spec/fixtures/users.yaml +1 -0
  65. data/spec/load_command_spec.rb +5 -4
  66. data/spec/mock_adapter.rb +2 -2
  67. data/spec/models/animal.rb +2 -1
  68. data/spec/models/animals_exhibit.rb +2 -2
  69. data/spec/models/career.rb +6 -0
  70. data/spec/models/comment.rb +4 -0
  71. data/spec/models/exhibit.rb +4 -0
  72. data/spec/models/person.rb +3 -13
  73. data/spec/models/project.rb +1 -1
  74. data/spec/models/serializer.rb +3 -0
  75. data/spec/models/user.rb +4 -0
  76. data/spec/models/zoo.rb +8 -1
  77. data/spec/natural_key_spec.rb +36 -0
  78. data/spec/paranoia_spec.rb +36 -0
  79. data/spec/property_spec.rb +70 -0
  80. data/spec/schema_spec.rb +10 -2
  81. data/spec/serialization_spec.rb +6 -3
  82. data/spec/serialize_spec.rb +19 -0
  83. data/spec/single_table_inheritance_spec.rb +7 -1
  84. data/spec/spec_helper.rb +26 -8
  85. data/spec/table_spec.rb +33 -0
  86. data/spec/validates_confirmation_of_spec.rb +20 -4
  87. data/spec/validates_format_of_spec.rb +22 -8
  88. data/spec/validates_length_of_spec.rb +26 -13
  89. data/spec/validates_uniqueness_of_spec.rb +18 -5
  90. data/spec/validations_spec.rb +55 -10
  91. data/tasks/fixtures.rb +13 -7
  92. metadata +189 -153
  93. data/lib/data_mapper/validations/confirmation_validator.rb +0 -53
  94. data/lib/data_mapper/validations/contextual_validations.rb +0 -50
  95. data/lib/data_mapper/validations/format_validator.rb +0 -85
  96. data/lib/data_mapper/validations/formats/email.rb +0 -78
  97. data/lib/data_mapper/validations/generic_validator.rb +0 -22
  98. data/lib/data_mapper/validations/length_validator.rb +0 -76
  99. data/lib/data_mapper/validations/required_field_validator.rb +0 -41
  100. data/lib/data_mapper/validations/unique_validator.rb +0 -56
  101. data/lib/data_mapper/validations/validation_errors.rb +0 -37
  102. data/lib/data_mapper/validations/validation_helper.rb +0 -77
  103. data/plugins/dataobjects/REVISION +0 -1
  104. data/plugins/dataobjects/Rakefile +0 -9
  105. data/plugins/dataobjects/do.rb +0 -348
  106. data/plugins/dataobjects/do_mysql.rb +0 -212
  107. data/plugins/dataobjects/do_postgres.rb +0 -196
  108. data/plugins/dataobjects/do_sqlite3.rb +0 -157
  109. data/plugins/dataobjects/spec/do_spec.rb +0 -150
  110. data/plugins/dataobjects/spec/spec_helper.rb +0 -81
  111. data/plugins/dataobjects/swig_mysql/extconf.rb +0 -45
  112. data/plugins/dataobjects/swig_mysql/mysql_c.c +0 -16602
  113. data/plugins/dataobjects/swig_mysql/mysql_c.i +0 -67
  114. data/plugins/dataobjects/swig_mysql/mysql_supp.i +0 -46
  115. data/plugins/dataobjects/swig_postgres/extconf.rb +0 -29
  116. data/plugins/dataobjects/swig_postgres/postgres_c.c +0 -8185
  117. data/plugins/dataobjects/swig_postgres/postgres_c.i +0 -73
  118. data/plugins/dataobjects/swig_sqlite/extconf.rb +0 -9
  119. data/plugins/dataobjects/swig_sqlite/sqlite3_c.c +0 -4725
  120. data/plugins/dataobjects/swig_sqlite/sqlite_c.i +0 -168
  121. data/tasks/drivers.rb +0 -20
@@ -1,21 +1,21 @@
1
1
  require File.dirname(__FILE__) + "/spec_helper"
2
2
 
3
- describe DataMapper::Validations do
3
+ describe Validatable do
4
4
 
5
5
  before(:all) do
6
6
  class Cow
7
7
 
8
8
  include DataMapper::CallbacksHelper
9
- include DataMapper::Validations::ValidationHelper
9
+ include DataMapper::Validations
10
10
 
11
11
  attr_accessor :name, :age
12
12
  end
13
13
  end
14
14
 
15
- it 'should allow you to specify not-null fields in different contexts' do
15
+ it 'should allow you to specify not-null fields for different events' do
16
16
  class Cow
17
- validations.clear!
18
- validates_presence_of :name, :context => :save
17
+ validations.clear
18
+ validates_presence_of :name, :event => :save
19
19
  end
20
20
 
21
21
  betsy = Cow.new
@@ -28,9 +28,9 @@ describe DataMapper::Validations do
28
28
  betsy.valid?(:save).should == true
29
29
  end
30
30
 
31
- it 'should be able to use ":on" for a context alias' do
31
+ it 'should be able to use ":on" for an event alias' do
32
32
  class Cow
33
- validations.clear!
33
+ validations.clear
34
34
  validates_presence_of :name, :age, :on => :create
35
35
  end
36
36
 
@@ -46,9 +46,9 @@ describe DataMapper::Validations do
46
46
  maggie.valid?(:create).should == true
47
47
  end
48
48
 
49
- it 'should default to a general context if unspecified' do
49
+ it 'should default to a general event if unspecified' do
50
50
  class Cow
51
- validations.clear!
51
+ validations.clear
52
52
  validates_presence_of :name, :age
53
53
  end
54
54
 
@@ -64,11 +64,33 @@ describe DataMapper::Validations do
64
64
  rhonda.valid?.should == true
65
65
  end
66
66
 
67
+ it "should always run validations without a specific event" do
68
+ class Cow
69
+ validations.clear
70
+ validates_presence_of :name
71
+ validates_presence_of :age, :on => :save
72
+ end
73
+
74
+ isabel = Cow.new
75
+ isabel.valid?.should == false
76
+ isabel.errors.should have(1).full_messages
77
+ isabel.errors.full_messages.should include('Name must not be blank')
78
+ isabel.errors.on(:name).should == ['Name must not be blank']
79
+
80
+ isabel.valid?(:save).should == false
81
+ isabel.errors.should have(2).full_messages
82
+
83
+ isabel.errors.full_messages.should include('Age must not be blank')
84
+ isabel.errors.full_messages.should include('Name must not be blank')
85
+ isabel.errors.on(:name).should == ['Name must not be blank']
86
+
87
+ end
88
+
67
89
  it 'should have 1 validation error' do
68
90
  class VPOTest
69
91
 
70
92
  include DataMapper::CallbacksHelper
71
- include DataMapper::Validations::ValidationHelper
93
+ include DataMapper::Validations
72
94
 
73
95
  attr_accessor :name, :whatever
74
96
 
@@ -92,5 +114,28 @@ describe DataMapper::Validations do
92
114
 
93
115
  String::translations.delete("%s must not be blank")
94
116
  end
117
+
118
+ it 'should be able to find specific error message' do
119
+ class Cow
120
+ validations.clear
121
+ validates_presence_of :name
122
+ end
123
+
124
+ gertie = Cow.new
125
+ gertie.should_not be_valid
126
+ gertie.errors.on(:name).should == ['Name must not be blank']
127
+ gertie.errors.on(:age).should == nil
128
+ end
129
+
130
+ it "should be able to specify custom error messages" do
131
+ class Cow
132
+ validations.clear
133
+ validates_presence_of :name, :message => 'Give me a name, bub!'
134
+ end
135
+
136
+ gertie = Cow.new
137
+ gertie.should_not be_valid
138
+ gertie.errors.on(:name).should == ['Give me a name, bub!']
139
+ end
95
140
 
96
141
  end
data/tasks/fixtures.rb CHANGED
@@ -14,15 +14,20 @@ namespace :dm do
14
14
  "#{DM_APP_ROOT}/#{fixture_path}/fixtures"
15
15
  end
16
16
 
17
+ task :dm_app_root do
18
+ p DM_APP_ROOT
19
+ end
20
+
17
21
  desc 'Dump database fixtures'
18
22
  task :dump do
19
23
  ENV['AUTO_MIGRATE'] = 'false'
20
24
  Rake::Task['environment'].invoke
21
25
  directory fixtures_path
22
- DataMapper::Base.subclasses.each do |table|
26
+ DataMapper::Base.subclasses.each do |klass|
27
+ table = database.table(klass)
23
28
  puts "Dumping #{table}"
24
- File.open( "#{fixtures_path}/#{Inflector.underscore(table.to_s)}.yml", "w+") do |file|
25
- file.write YAML::dump(table.all)
29
+ File.open( "#{fixtures_path}/#{table}.yaml", "w+") do |file|
30
+ file.write YAML::dump(klass.all)
26
31
  end
27
32
  end
28
33
  end
@@ -31,14 +36,15 @@ namespace :dm do
31
36
  task :load do
32
37
  Rake::Task['environment'].invoke
33
38
  directory fixtures_path
34
- DataMapper::Base.subclasses.each do |table|
35
- file_name = "#{fixtures_path}/#{Inflector.underscore(table.to_s)}.yml"
39
+ DataMapper::Base.subclasses.each do |klass|
40
+ table = database.table(klass)
41
+ file_name = "#{fixtures_path}/#{table}.yaml"
36
42
  next unless File.exists?( file_name )
37
43
  puts "Loading #{table}"
38
- table.delete_all
44
+ klass.delete_all
39
45
  File.open( file_name, "r") do |file|
40
46
  YAML::load(file).each do |attributes|
41
- table.create(attributes)
47
+ klass.create(attributes)
42
48
  end
43
49
  end
44
50
  end
metadata CHANGED
@@ -1,33 +1,136 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
3
- specification_version: 1
4
2
  name: datamapper
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.2.3
7
- date: 2007-11-05 00:00:00 -06:00
8
- summary: An Object/Relational Mapper for Ruby
9
- require_paths:
10
- - lib
11
- email: ssmoot@gmail.com
12
- homepage: http://datamapper.org
13
- rubyforge_project: datamapper
14
- description: Faster, Better, Simpler.
15
- autorequire: data_mapper
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 0.2.4
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Sam Smoot
8
+ autorequire: data_mapper
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2007-12-10 00:00:00 -06:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: fastthread
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: json
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: "0"
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: rspec
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: "0"
41
+ version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: validatable
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: "0"
50
+ version:
51
+ description: Faster, Better, Simpler.
52
+ email: ssmoot@gmail.com
53
+ executables: []
54
+
55
+ extensions: []
56
+
57
+ extra_rdoc_files:
58
+ - README
59
+ - CHANGELOG
60
+ - MIT-LICENSE
61
+ - do_performance.rb
62
+ - environment.rb
63
+ - example.rb
64
+ - performance.rb
65
+ - profile_data_mapper.rb
66
+ - rakefile.rb
67
+ - lib/data_mapper/adapters/abstract_adapter.rb
68
+ - lib/data_mapper/adapters/data_object_adapter.rb
69
+ - lib/data_mapper/adapters/mysql_adapter.rb
70
+ - lib/data_mapper/adapters/postgresql_adapter.rb
71
+ - lib/data_mapper/adapters/sql/coersion.rb
72
+ - lib/data_mapper/adapters/sql/commands/load_command.rb
73
+ - lib/data_mapper/adapters/sql/mappings/associations_set.rb
74
+ - lib/data_mapper/adapters/sql/mappings/column.rb
75
+ - lib/data_mapper/adapters/sql/mappings/schema.rb
76
+ - lib/data_mapper/adapters/sql/mappings/table.rb
77
+ - lib/data_mapper/adapters/sql/quoting.rb
78
+ - lib/data_mapper/adapters/sqlite3_adapter.rb
79
+ - lib/data_mapper/associations/belongs_to_association.rb
80
+ - lib/data_mapper/associations/has_and_belongs_to_many_association.rb
81
+ - lib/data_mapper/associations/has_many_association.rb
82
+ - lib/data_mapper/associations/has_n_association.rb
83
+ - lib/data_mapper/associations/has_one_association.rb
84
+ - lib/data_mapper/associations/reference.rb
85
+ - lib/data_mapper/associations.rb
86
+ - lib/data_mapper/auto_migrations.rb
87
+ - lib/data_mapper/base.rb
88
+ - lib/data_mapper/callbacks.rb
89
+ - lib/data_mapper/context.rb
90
+ - lib/data_mapper/database.rb
91
+ - lib/data_mapper/dependency_queue.rb
92
+ - lib/data_mapper/embedded_value.rb
93
+ - lib/data_mapper/identity_map.rb
94
+ - lib/data_mapper/property.rb
95
+ - lib/data_mapper/support/active_record_impersonation.rb
96
+ - lib/data_mapper/support/blank.rb
97
+ - lib/data_mapper/support/connection_pool.rb
98
+ - lib/data_mapper/support/enumerable.rb
99
+ - lib/data_mapper/support/errors.rb
100
+ - lib/data_mapper/support/inflector.rb
101
+ - lib/data_mapper/support/serialization.rb
102
+ - lib/data_mapper/support/silence.rb
103
+ - lib/data_mapper/support/string.rb
104
+ - lib/data_mapper/support/symbol.rb
105
+ - lib/data_mapper/support/weak_hash.rb
106
+ - lib/data_mapper/validatable_extensions/errors.rb
107
+ - lib/data_mapper/validatable_extensions/macros.rb
108
+ - lib/data_mapper/validatable_extensions/validatable_instance_methods.rb
109
+ - lib/data_mapper/validatable_extensions/validation_base.rb
110
+ - lib/data_mapper/validatable_extensions/validations/formats/email.rb
111
+ - lib/data_mapper/validatable_extensions/validations/validates_acceptance_of.rb
112
+ - lib/data_mapper/validatable_extensions/validations/validates_confirmation_of.rb
113
+ - lib/data_mapper/validatable_extensions/validations/validates_each.rb
114
+ - lib/data_mapper/validatable_extensions/validations/validates_format_of.rb
115
+ - lib/data_mapper/validatable_extensions/validations/validates_length_of.rb
116
+ - lib/data_mapper/validatable_extensions/validations/validates_numericality_of.rb
117
+ - lib/data_mapper/validatable_extensions/validations/validates_presence_of.rb
118
+ - lib/data_mapper/validatable_extensions/validations/validates_true_for.rb
119
+ - lib/data_mapper/validatable_extensions/validations/validates_uniqueness_of.rb
120
+ - lib/data_mapper/validations.rb
121
+ - lib/data_mapper.rb
122
+ - tasks/fixtures.rb
123
+ - plugins/can_has_sphinx/init.rb
124
+ - plugins/can_has_sphinx/install.rb
125
+ - plugins/can_has_sphinx/lib/acts_as_sphinx.rb
126
+ - plugins/can_has_sphinx/lib/sphinx.rb
127
+ - plugins/can_has_sphinx/LICENSE
128
+ - plugins/can_has_sphinx/Rakefile
129
+ - plugins/can_has_sphinx/README
130
+ - plugins/can_has_sphinx/REVISION
131
+ - plugins/can_has_sphinx/scripts/sphinx.sh
132
+ - plugins/can_has_sphinx/tasks/acts_as_sphinx_tasks.rake
133
+ - plugins/dataobjects/do_rb
31
134
  files:
32
135
  - README
33
136
  - CHANGELOG
@@ -57,36 +160,47 @@ files:
57
160
  - lib/data_mapper/associations/has_one_association.rb
58
161
  - lib/data_mapper/associations/reference.rb
59
162
  - lib/data_mapper/associations.rb
163
+ - lib/data_mapper/auto_migrations.rb
60
164
  - lib/data_mapper/base.rb
61
165
  - lib/data_mapper/callbacks.rb
62
166
  - lib/data_mapper/context.rb
63
167
  - lib/data_mapper/database.rb
168
+ - lib/data_mapper/dependency_queue.rb
64
169
  - lib/data_mapper/embedded_value.rb
65
170
  - lib/data_mapper/identity_map.rb
171
+ - lib/data_mapper/property.rb
66
172
  - lib/data_mapper/support/active_record_impersonation.rb
67
173
  - lib/data_mapper/support/blank.rb
68
174
  - lib/data_mapper/support/connection_pool.rb
69
175
  - lib/data_mapper/support/enumerable.rb
176
+ - lib/data_mapper/support/errors.rb
70
177
  - lib/data_mapper/support/inflector.rb
71
178
  - lib/data_mapper/support/serialization.rb
72
179
  - lib/data_mapper/support/silence.rb
73
180
  - lib/data_mapper/support/string.rb
74
181
  - lib/data_mapper/support/symbol.rb
75
182
  - lib/data_mapper/support/weak_hash.rb
76
- - lib/data_mapper/validations/confirmation_validator.rb
77
- - lib/data_mapper/validations/contextual_validations.rb
78
- - lib/data_mapper/validations/format_validator.rb
79
- - lib/data_mapper/validations/formats/email.rb
80
- - lib/data_mapper/validations/generic_validator.rb
81
- - lib/data_mapper/validations/length_validator.rb
82
- - lib/data_mapper/validations/required_field_validator.rb
83
- - lib/data_mapper/validations/unique_validator.rb
84
- - lib/data_mapper/validations/validation_errors.rb
85
- - lib/data_mapper/validations/validation_helper.rb
183
+ - lib/data_mapper/validatable_extensions/errors.rb
184
+ - lib/data_mapper/validatable_extensions/macros.rb
185
+ - lib/data_mapper/validatable_extensions/validatable_instance_methods.rb
186
+ - lib/data_mapper/validatable_extensions/validation_base.rb
187
+ - lib/data_mapper/validatable_extensions/validations/formats/email.rb
188
+ - lib/data_mapper/validatable_extensions/validations/validates_acceptance_of.rb
189
+ - lib/data_mapper/validatable_extensions/validations/validates_confirmation_of.rb
190
+ - lib/data_mapper/validatable_extensions/validations/validates_each.rb
191
+ - lib/data_mapper/validatable_extensions/validations/validates_format_of.rb
192
+ - lib/data_mapper/validatable_extensions/validations/validates_length_of.rb
193
+ - lib/data_mapper/validatable_extensions/validations/validates_numericality_of.rb
194
+ - lib/data_mapper/validatable_extensions/validations/validates_presence_of.rb
195
+ - lib/data_mapper/validatable_extensions/validations/validates_true_for.rb
196
+ - lib/data_mapper/validatable_extensions/validations/validates_uniqueness_of.rb
197
+ - lib/data_mapper/validations.rb
86
198
  - lib/data_mapper.rb
199
+ - spec/active_record_impersonation_spec.rb
87
200
  - spec/acts_as_tree_spec.rb
88
201
  - spec/associations_spec.rb
89
202
  - spec/attributes_spec.rb
203
+ - spec/auto_migrations_spec.rb
90
204
  - spec/base_spec.rb
91
205
  - spec/callbacks_spec.rb
92
206
  - spec/can_has_sphinx.rb
@@ -96,6 +210,7 @@ files:
96
210
  - spec/count_command_spec.rb
97
211
  - spec/dataobjects_spec.rb
98
212
  - spec/delete_command_spec.rb
213
+ - spec/dependency_spec.rb
99
214
  - spec/embedded_value_spec.rb
100
215
  - spec/legacy_spec.rb
101
216
  - spec/load_command_spec.rb
@@ -103,6 +218,8 @@ files:
103
218
  - spec/mock_adapter.rb
104
219
  - spec/models/animal.rb
105
220
  - spec/models/animals_exhibit.rb
221
+ - spec/models/career.rb
222
+ - spec/models/comment.rb
106
223
  - spec/models/exhibit.rb
107
224
  - spec/models/fruit.rb
108
225
  - spec/models/person.rb
@@ -110,15 +227,22 @@ files:
110
227
  - spec/models/project.rb
111
228
  - spec/models/sales_person.rb
112
229
  - spec/models/section.rb
230
+ - spec/models/serializer.rb
231
+ - spec/models/user.rb
113
232
  - spec/models/zoo.rb
233
+ - spec/natural_key_spec.rb
234
+ - spec/paranoia_spec.rb
235
+ - spec/property_spec.rb
114
236
  - spec/query_spec.rb
115
237
  - spec/save_command_spec.rb
116
238
  - spec/schema_spec.rb
117
239
  - spec/serialization_spec.rb
240
+ - spec/serialize_spec.rb
118
241
  - spec/single_table_inheritance_spec.rb
119
242
  - spec/spec_helper.rb
120
243
  - spec/support_spec.rb
121
244
  - spec/symbolic_operators_spec.rb
245
+ - spec/table_spec.rb
122
246
  - spec/validates_confirmation_of_spec.rb
123
247
  - spec/validates_format_of_spec.rb
124
248
  - spec/validates_length_of_spec.rb
@@ -126,12 +250,17 @@ files:
126
250
  - spec/validations_spec.rb
127
251
  - spec/fixtures/animals.yaml
128
252
  - spec/fixtures/animals_exhibits.yaml
253
+ - spec/fixtures/careers.yaml
254
+ - spec/fixtures/comments.yaml
129
255
  - spec/fixtures/exhibits.yaml
130
256
  - spec/fixtures/fruit.yaml
131
257
  - spec/fixtures/people.yaml
132
258
  - spec/fixtures/posts.yaml
259
+ - spec/fixtures/projects.yaml
260
+ - spec/fixtures/sections.yaml
261
+ - spec/fixtures/serializers.yaml
262
+ - spec/fixtures/users.yaml
133
263
  - spec/fixtures/zoos.yaml
134
- - tasks/drivers.rb
135
264
  - tasks/fixtures.rb
136
265
  - plugins/can_has_sphinx
137
266
  - plugins/can_has_sphinx/init.rb
@@ -148,131 +277,38 @@ files:
148
277
  - plugins/can_has_sphinx/tasks
149
278
  - plugins/can_has_sphinx/tasks/acts_as_sphinx_tasks.rake
150
279
  - plugins/dataobjects
151
- - plugins/dataobjects/do.rb
152
- - plugins/dataobjects/do_mysql.rb
153
- - plugins/dataobjects/do_postgres.rb
154
- - plugins/dataobjects/do_sqlite3.rb
155
- - plugins/dataobjects/Rakefile
156
- - plugins/dataobjects/REVISION
157
- - plugins/dataobjects/spec
158
- - plugins/dataobjects/spec/do_spec.rb
159
- - plugins/dataobjects/spec/spec_helper.rb
280
+ - plugins/dataobjects/do_rb
160
281
  - plugins/dataobjects/swig_mysql
161
- - plugins/dataobjects/swig_mysql/extconf.rb
162
- - plugins/dataobjects/swig_mysql/mysql_c.c
163
- - plugins/dataobjects/swig_mysql/mysql_c.i
164
- - plugins/dataobjects/swig_mysql/mysql_supp.i
165
282
  - plugins/dataobjects/swig_postgres
166
- - plugins/dataobjects/swig_postgres/extconf.rb
167
- - plugins/dataobjects/swig_postgres/postgres_c.c
168
- - plugins/dataobjects/swig_postgres/postgres_c.i
169
283
  - plugins/dataobjects/swig_sqlite
170
- - plugins/dataobjects/swig_sqlite/extconf.rb
171
- - plugins/dataobjects/swig_sqlite/sqlite3_c.c
172
- - plugins/dataobjects/swig_sqlite/sqlite_c.i
173
- test_files: []
174
-
284
+ has_rdoc: true
285
+ homepage: http://datamapper.org
286
+ post_install_message:
175
287
  rdoc_options:
176
288
  - --line-numbers
177
289
  - --inline-source
178
290
  - --main
179
291
  - README
180
- extra_rdoc_files:
181
- - README
182
- - CHANGELOG
183
- - MIT-LICENSE
184
- - do_performance.rb
185
- - environment.rb
186
- - example.rb
187
- - performance.rb
188
- - profile_data_mapper.rb
189
- - rakefile.rb
190
- - lib/data_mapper/adapters/abstract_adapter.rb
191
- - lib/data_mapper/adapters/data_object_adapter.rb
192
- - lib/data_mapper/adapters/mysql_adapter.rb
193
- - lib/data_mapper/adapters/postgresql_adapter.rb
194
- - lib/data_mapper/adapters/sql/coersion.rb
195
- - lib/data_mapper/adapters/sql/commands/load_command.rb
196
- - lib/data_mapper/adapters/sql/mappings/associations_set.rb
197
- - lib/data_mapper/adapters/sql/mappings/column.rb
198
- - lib/data_mapper/adapters/sql/mappings/schema.rb
199
- - lib/data_mapper/adapters/sql/mappings/table.rb
200
- - lib/data_mapper/adapters/sql/quoting.rb
201
- - lib/data_mapper/adapters/sqlite3_adapter.rb
202
- - lib/data_mapper/associations/belongs_to_association.rb
203
- - lib/data_mapper/associations/has_and_belongs_to_many_association.rb
204
- - lib/data_mapper/associations/has_many_association.rb
205
- - lib/data_mapper/associations/has_n_association.rb
206
- - lib/data_mapper/associations/has_one_association.rb
207
- - lib/data_mapper/associations/reference.rb
208
- - lib/data_mapper/associations.rb
209
- - lib/data_mapper/base.rb
210
- - lib/data_mapper/callbacks.rb
211
- - lib/data_mapper/context.rb
212
- - lib/data_mapper/database.rb
213
- - lib/data_mapper/embedded_value.rb
214
- - lib/data_mapper/identity_map.rb
215
- - lib/data_mapper/support/active_record_impersonation.rb
216
- - lib/data_mapper/support/blank.rb
217
- - lib/data_mapper/support/connection_pool.rb
218
- - lib/data_mapper/support/enumerable.rb
219
- - lib/data_mapper/support/inflector.rb
220
- - lib/data_mapper/support/serialization.rb
221
- - lib/data_mapper/support/silence.rb
222
- - lib/data_mapper/support/string.rb
223
- - lib/data_mapper/support/symbol.rb
224
- - lib/data_mapper/support/weak_hash.rb
225
- - lib/data_mapper/validations/confirmation_validator.rb
226
- - lib/data_mapper/validations/contextual_validations.rb
227
- - lib/data_mapper/validations/format_validator.rb
228
- - lib/data_mapper/validations/formats/email.rb
229
- - lib/data_mapper/validations/generic_validator.rb
230
- - lib/data_mapper/validations/length_validator.rb
231
- - lib/data_mapper/validations/required_field_validator.rb
232
- - lib/data_mapper/validations/unique_validator.rb
233
- - lib/data_mapper/validations/validation_errors.rb
234
- - lib/data_mapper/validations/validation_helper.rb
235
- - lib/data_mapper.rb
236
- - tasks/drivers.rb
237
- - tasks/fixtures.rb
238
- - plugins/can_has_sphinx/init.rb
239
- - plugins/can_has_sphinx/install.rb
240
- - plugins/can_has_sphinx/lib/acts_as_sphinx.rb
241
- - plugins/can_has_sphinx/lib/sphinx.rb
242
- - plugins/can_has_sphinx/LICENSE
243
- - plugins/can_has_sphinx/Rakefile
244
- - plugins/can_has_sphinx/README
245
- - plugins/can_has_sphinx/REVISION
246
- - plugins/can_has_sphinx/scripts/sphinx.sh
247
- - plugins/can_has_sphinx/tasks/acts_as_sphinx_tasks.rake
248
- - plugins/dataobjects/do.rb
249
- - plugins/dataobjects/do_mysql.rb
250
- - plugins/dataobjects/do_postgres.rb
251
- - plugins/dataobjects/do_sqlite3.rb
252
- - plugins/dataobjects/Rakefile
253
- - plugins/dataobjects/REVISION
254
- executables: []
255
-
256
- extensions: []
257
-
292
+ require_paths:
293
+ - lib
294
+ required_ruby_version: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: "0"
299
+ version:
300
+ required_rubygems_version: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - ">="
303
+ - !ruby/object:Gem::Version
304
+ version: "0"
305
+ version:
258
306
  requirements:
259
307
  - none
260
- dependencies:
261
- - !ruby/object:Gem::Dependency
262
- name: fastthread
263
- version_requirement:
264
- version_requirements: !ruby/object:Gem::Version::Requirement
265
- requirements:
266
- - - ">"
267
- - !ruby/object:Gem::Version
268
- version: 0.0.0
269
- version:
270
- - !ruby/object:Gem::Dependency
271
- name: rspec
272
- version_requirement:
273
- version_requirements: !ruby/object:Gem::Version::Requirement
274
- requirements:
275
- - - ">"
276
- - !ruby/object:Gem::Version
277
- version: 0.0.0
278
- version:
308
+ rubyforge_project: datamapper
309
+ rubygems_version: 0.9.5
310
+ signing_key:
311
+ specification_version: 2
312
+ summary: An Object/Relational Mapper for Ruby
313
+ test_files: []
314
+
@@ -1,53 +0,0 @@
1
- module DataMapper
2
- module Validations
3
-
4
- class ConfirmationValidator < GenericValidator
5
-
6
- ERROR_MESSAGES = {
7
- :confirmation => '#{field} does not match the confirmation'
8
- }
9
-
10
- def initialize(field_name, options = {})
11
- @options = options
12
- @field_name, @confirm_field_name = field_name, (options[:confirm] || "#{field_name}_confirmation").to_sym
13
- end
14
-
15
- def call(target)
16
- unless valid?(target)
17
- error_message = '%s does not match the confirmation'.t(Inflector.humanize(@field_name))
18
- add_error(target, error_message , @field_name)
19
- return false
20
- end
21
-
22
- return true
23
- end
24
-
25
- def valid?(target)
26
- field_value = target.instance_variable_get("@#{@field_name}")
27
- return true if @options[:allow_nil] && field_value.nil?
28
-
29
- confirm_value = target.instance_variable_get("@#{@confirm_field_name}")
30
- field_value == confirm_value
31
- end
32
-
33
- end
34
-
35
- module ValidatesConfirmationOf
36
- def self.included(base)
37
- base.extend(ClassMethods)
38
- end
39
-
40
- module ClassMethods
41
- # No bueno?
42
- DEFAULT_OPTIONS = { :on => :save }
43
-
44
- def validates_confirmation_of(field, options = {})
45
- opts = retrieve_options_from_arguments_for_validators([options], DEFAULT_OPTIONS)
46
- validations.context(opts[:context]) << Validations::ConfirmationValidator.new(field, opts)
47
- end
48
-
49
- end
50
- end
51
-
52
- end
53
- end