datamapper 0.2.3 → 0.2.4

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