dm-validations 0.10.1 → 0.10.2
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.
- data/Rakefile +23 -18
- data/VERSION +1 -0
- data/dm-validations.gemspec +188 -0
- data/lib/dm-validations.rb +25 -75
- data/lib/dm-validations/auto_validate.rb +7 -7
- data/lib/dm-validations/contextual_validators.rb +4 -18
- data/lib/dm-validations/exceptions.rb +3 -1
- data/lib/dm-validations/support/context.rb +40 -1
- data/lib/dm-validations/validation_errors.rb +2 -13
- data/lib/dm-validations/validators/absent_field_validator.rb +2 -2
- data/lib/dm-validations/validators/acceptance_validator.rb +14 -16
- data/lib/dm-validations/validators/confirmation_validator.rb +17 -15
- data/lib/dm-validations/validators/format_validator.rb +18 -11
- data/lib/dm-validations/validators/generic_validator.rb +45 -15
- data/lib/dm-validations/validators/length_validator.rb +2 -11
- data/lib/dm-validations/validators/method_validator.rb +2 -2
- data/lib/dm-validations/validators/numeric_validator.rb +8 -6
- data/lib/dm-validations/validators/primitive_validator.rb +1 -1
- data/lib/dm-validations/validators/uniqueness_validator.rb +13 -9
- data/lib/dm-validations/validators/within_validator.rb +4 -3
- data/spec/fixtures/basketball_player.rb +0 -3
- data/spec/fixtures/bill_of_landing.rb +1 -1
- data/spec/fixtures/city.rb +0 -1
- data/spec/fixtures/company.rb +1 -3
- data/spec/fixtures/corporate_world.rb +0 -6
- data/spec/fixtures/country.rb +0 -1
- data/spec/fixtures/event.rb +1 -1
- data/spec/fixtures/page.rb +2 -2
- data/spec/fixtures/reservation.rb +1 -1
- data/spec/fixtures/scm_operation.rb +0 -8
- data/spec/integration/absent_field_validator/absent_field_validator_spec.rb +6 -2
- data/spec/integration/acceptance_validator/acceptance_validator_spec.rb +36 -36
- data/spec/integration/automatic_validation/custom_messages_for_inferred_validation_spec.rb +2 -2
- data/spec/integration/automatic_validation/disabling_inferred_validation_spec.rb +4 -4
- data/spec/integration/automatic_validation/inferred_boolean_properties_validation_spec.rb +2 -2
- data/spec/integration/automatic_validation/inferred_float_property_validation_spec.rb +2 -0
- data/spec/integration/automatic_validation/inferred_format_validation_spec.rb +3 -1
- data/spec/integration/automatic_validation/inferred_integer_properties_validation_spec.rb +2 -0
- data/spec/integration/automatic_validation/inferred_length_validation_spec.rb +6 -2
- data/spec/integration/automatic_validation/inferred_presence_validation_spec.rb +8 -4
- data/spec/integration/automatic_validation/inferred_primitive_validation_spec.rb +3 -1
- data/spec/integration/automatic_validation/spec_helper.rb +6 -6
- data/spec/integration/block_validator/block_validator_spec.rb +1 -1
- data/spec/integration/conditional_validation/if_condition_spec.rb +3 -1
- data/spec/integration/confirmation_validator/confirmation_validator_spec.rb +3 -1
- data/spec/integration/datamapper_models/association_validation_spec.rb +4 -1
- data/spec/integration/datamapper_models/inheritance_spec.rb +6 -2
- data/spec/integration/duplicated_validations/duplicated_validations_spec.rb +3 -1
- data/spec/integration/format_validator/email_format_validator_spec.rb +5 -1
- data/spec/integration/format_validator/format_validator_spec.rb +5 -1
- data/spec/integration/format_validator/regexp_validator_spec.rb +5 -1
- data/spec/integration/format_validator/url_format_validator_spec.rb +8 -4
- data/spec/integration/length_validator/default_value_spec.rb +4 -2
- data/spec/integration/length_validator/equality_spec.rb +3 -1
- data/spec/integration/length_validator/error_message_spec.rb +3 -1
- data/spec/integration/length_validator/maximum_spec.rb +3 -1
- data/spec/integration/length_validator/minimum_spec.rb +3 -1
- data/spec/integration/length_validator/range_spec.rb +3 -1
- data/spec/integration/method_validator/method_validator_spec.rb +3 -1
- data/spec/integration/numeric_validator/equality_with_float_type_spec.rb +5 -1
- data/spec/integration/numeric_validator/equality_with_integer_type_spec.rb +5 -1
- data/spec/integration/numeric_validator/float_type_spec.rb +3 -1
- data/spec/integration/numeric_validator/gt_with_float_type_spec.rb +3 -1
- data/spec/integration/numeric_validator/gte_with_float_type_spec.rb +3 -1
- data/spec/integration/numeric_validator/integer_only_true_spec.rb +11 -9
- data/spec/integration/numeric_validator/integer_type_spec.rb +10 -8
- data/spec/integration/numeric_validator/lt_with_float_type_spec.rb +3 -1
- data/spec/integration/numeric_validator/lte_with_float_type_spec.rb +3 -1
- data/spec/integration/primitive_validator/primitive_validator_spec.rb +3 -1
- data/spec/integration/pure_ruby_objects/plain_old_ruby_object_validation_spec.rb +6 -6
- data/spec/integration/required_field_validator/association_spec.rb +9 -4
- data/spec/integration/required_field_validator/boolean_type_value_spec.rb +24 -18
- data/spec/integration/required_field_validator/date_type_value_spec.rb +21 -19
- data/spec/integration/required_field_validator/datetime_type_value_spec.rb +21 -19
- data/spec/integration/required_field_validator/float_type_value_spec.rb +21 -19
- data/spec/integration/required_field_validator/integer_type_value_spec.rb +17 -15
- data/spec/integration/required_field_validator/shared_examples.rb +5 -3
- data/spec/integration/required_field_validator/string_type_value_spec.rb +20 -16
- data/spec/integration/required_field_validator/text_type_value_spec.rb +10 -6
- data/spec/integration/uniqueness_validator/uniqueness_validator_spec.rb +23 -25
- data/spec/integration/within_validator/within_validator_spec.rb +7 -3
- data/spec/public/resource_spec.rb +5 -6
- data/spec/rcov.opts +6 -0
- data/spec/spec.opts +2 -0
- data/spec/unit/contextual_validators/emptiness_spec.rb +1 -1
- data/spec/unit/contextual_validators/execution_spec.rb +9 -16
- data/spec/unit/generic_validator/equality_operator_spec.rb +3 -3
- data/spec/unit/validation_errors/adding_spec.rb +1 -1
- data/spec/unit/validation_errors/emptiness_spec.rb +1 -1
- data/spec/unit/validation_errors/enumerable_spec.rb +1 -1
- data/tasks/ci.rake +1 -0
- data/tasks/metrics.rake +36 -0
- data/tasks/spec.rake +41 -0
- data/tasks/yard.rake +9 -0
- data/tasks/yardstick.rake +19 -0
- metadata +36 -18
- data/History.rdoc +0 -45
- data/Manifest.txt +0 -139
- data/TODO +0 -16
- data/lib/dm-validations/version.rb +0 -5
- data/tasks/install.rb +0 -13
- data/tasks/spec.rb +0 -25
@@ -10,7 +10,7 @@ module DataMapper
|
|
10
10
|
value = target.validation_property_value(field_name)
|
11
11
|
property = target.validation_property(field_name)
|
12
12
|
|
13
|
-
return true if value.nil? ||
|
13
|
+
return true if value.nil? || property.primitive?(value)
|
14
14
|
|
15
15
|
error_message = @options[:message] || default_error(property)
|
16
16
|
add_error(target, error_message, field_name)
|
@@ -12,30 +12,34 @@ module DataMapper
|
|
12
12
|
assert_kind_of 'scope', options[:scope], Array, Symbol if options.has_key?(:scope)
|
13
13
|
super
|
14
14
|
|
15
|
-
|
15
|
+
set_optional_by_default
|
16
16
|
end
|
17
17
|
|
18
18
|
def call(target)
|
19
|
-
|
19
|
+
return true if valid?(target)
|
20
20
|
|
21
|
-
|
21
|
+
error_message = @options[:message] || ValidationErrors.default_error_message(:taken, field_name)
|
22
|
+
add_error(target, error_message, field_name)
|
23
|
+
|
24
|
+
false
|
25
|
+
end
|
26
|
+
|
27
|
+
def valid?(target)
|
28
|
+
value = target.validation_property_value(field_name)
|
29
|
+
return true if optional?(value)
|
22
30
|
|
23
31
|
opts = {
|
24
32
|
:fields => target.model.key,
|
25
33
|
field_name => value,
|
26
34
|
}
|
27
35
|
|
28
|
-
Array(@options[:scope]).each { |subject| opts[subject] = target.
|
36
|
+
Array(@options[:scope]).each { |subject| opts[subject] = target.__send__(subject) }
|
29
37
|
|
30
38
|
resource = DataMapper.repository(target.repository.name) { target.model.first(opts) }
|
31
39
|
|
32
40
|
return true if resource.nil?
|
33
|
-
return true if target.saved? && resource.key == target.key
|
34
41
|
|
35
|
-
|
36
|
-
add_error(target, error_message, field_name)
|
37
|
-
|
38
|
-
false
|
42
|
+
target.saved? && resource.key == target.key
|
39
43
|
end
|
40
44
|
end # class UniquenessValidator
|
41
45
|
|
@@ -14,8 +14,8 @@ module DataMapper
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def call(target)
|
17
|
-
value = target.
|
18
|
-
return true if
|
17
|
+
value = target.validation_property_value(field_name)
|
18
|
+
return true if optional?(value)
|
19
19
|
return true if @options[:set].include?(value)
|
20
20
|
|
21
21
|
set = @options[:set]
|
@@ -33,7 +33,8 @@ module DataMapper
|
|
33
33
|
end
|
34
34
|
|
35
35
|
add_error(target, error_message, field_name)
|
36
|
-
|
36
|
+
|
37
|
+
false
|
37
38
|
end
|
38
39
|
|
39
40
|
def n
|
@@ -32,7 +32,7 @@ module DataMapper
|
|
32
32
|
}
|
33
33
|
|
34
34
|
validates_format :email, :as => :email_address
|
35
|
-
validates_format :url, :as => :url, :allow_nil => false
|
35
|
+
validates_format :url, :as => :url, :allow_nil => false, :allow_blank => false
|
36
36
|
|
37
37
|
validates_format :username, :with => /[a-z]/, :message => 'Username must have at least one letter', :allow_nil => true
|
38
38
|
validates_format :code, :with => /\d{5,6}/, :message => 'Code format is invalid'
|
data/spec/fixtures/city.rb
CHANGED
data/spec/fixtures/company.rb
CHANGED
@@ -61,8 +61,6 @@ module DataMapper
|
|
61
61
|
validates_present :title, :message => "Product company must have a name"
|
62
62
|
validates_present :flagship_product
|
63
63
|
end
|
64
|
-
ProductCompany.auto_migrate!
|
65
|
-
|
66
64
|
|
67
65
|
class Product
|
68
66
|
#
|
@@ -76,7 +74,7 @@ module DataMapper
|
|
76
74
|
#
|
77
75
|
|
78
76
|
property :id, Serial
|
79
|
-
property :name, String, :
|
77
|
+
property :name, String, :required => true
|
80
78
|
|
81
79
|
#
|
82
80
|
# Associations
|
@@ -12,8 +12,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
12
12
|
property :domain, String, :unique_index => true
|
13
13
|
|
14
14
|
validates_is_unique :domain, :allow_nil => true
|
15
|
-
|
16
|
-
auto_migrate!
|
17
15
|
end
|
18
16
|
|
19
17
|
class Department
|
@@ -23,8 +21,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
23
21
|
property :name, String, :unique_index => true
|
24
22
|
|
25
23
|
validates_is_unique :name
|
26
|
-
|
27
|
-
auto_migrate!
|
28
24
|
end
|
29
25
|
|
30
26
|
class User
|
@@ -38,8 +34,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
38
34
|
|
39
35
|
validates_is_unique :user_name, :when => :signing_up_for_department_account, :scope => [:department]
|
40
36
|
validates_is_unique :user_name, :when => :signing_up_for_organization_account, :scope => [:organisation]
|
41
|
-
|
42
|
-
auto_migrate!
|
43
37
|
end
|
44
38
|
end
|
45
39
|
end
|
data/spec/fixtures/country.rb
CHANGED
data/spec/fixtures/event.rb
CHANGED
data/spec/fixtures/page.rb
CHANGED
@@ -17,14 +17,14 @@ module DataMapper
|
|
17
17
|
#
|
18
18
|
|
19
19
|
property :id, Serial, :key => true
|
20
|
-
property :body, Text, :
|
20
|
+
property :body, Text, :required => true
|
21
21
|
|
22
22
|
#
|
23
23
|
# Validations
|
24
24
|
#
|
25
25
|
|
26
26
|
# duplicates inferred validation for body (caused by
|
27
|
-
# :
|
27
|
+
# :required => true)
|
28
28
|
validates_present :body
|
29
29
|
end
|
30
30
|
end # Fixtures
|
@@ -28,7 +28,7 @@ module DataMapper
|
|
28
28
|
# Validations
|
29
29
|
#
|
30
30
|
|
31
|
-
validates_is_confirmed :person_name, :allow_nil => false
|
31
|
+
validates_is_confirmed :person_name, :allow_nil => false, :allow_blank => false
|
32
32
|
validates_is_confirmed :number_of_seats, :confirm => :seats_confirmation, :message => Proc.new { |resource, property|
|
33
33
|
'%s requires confirmation for %s' % [Extlib::Inflection.demodulize(resource.model.name), property.name]
|
34
34
|
}
|
@@ -33,8 +33,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
33
33
|
|
34
34
|
validates_present :name
|
35
35
|
end
|
36
|
-
ScmOperation.auto_migrate!
|
37
|
-
|
38
36
|
|
39
37
|
class SubversionOperation < ScmOperation
|
40
38
|
#
|
@@ -44,9 +42,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
44
42
|
validates_present :network_connection, :when => [:committing, :log_viewing]
|
45
43
|
end
|
46
44
|
|
47
|
-
SubversionOperation.auto_migrate!
|
48
|
-
|
49
|
-
|
50
45
|
class GitOperation < ScmOperation
|
51
46
|
#
|
52
47
|
# Validations
|
@@ -61,7 +56,4 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
61
56
|
}
|
62
57
|
validates_present :clean_working_copy, :when => :pulling
|
63
58
|
end
|
64
|
-
|
65
|
-
|
66
|
-
GitOperation.auto_migrate!
|
67
59
|
end
|
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'integration/absent_field_validator/spec_helper'
|
3
3
|
|
4
|
-
describe DataMapper::Validate::Fixtures::Kayak do
|
4
|
+
describe 'DataMapper::Validate::Fixtures::Kayak' do
|
5
5
|
before :all do
|
6
|
+
DataMapper::Validate::Fixtures::Kayak.auto_migrate!
|
7
|
+
|
6
8
|
@kayak = DataMapper::Validate::Fixtures::Kayak.new
|
7
9
|
@kayak.should be_valid_for_sale
|
8
10
|
end
|
@@ -68,8 +70,10 @@ describe DataMapper::Validate::Fixtures::Kayak do
|
|
68
70
|
end
|
69
71
|
|
70
72
|
|
71
|
-
describe DataMapper::Validate::Fixtures::Pirogue do
|
73
|
+
describe 'DataMapper::Validate::Fixtures::Pirogue' do
|
72
74
|
before :all do
|
75
|
+
DataMapper::Validate::Fixtures::Pirogue.auto_migrate!
|
76
|
+
|
73
77
|
@kayak = DataMapper::Validate::Fixtures::Pirogue.new
|
74
78
|
@kayak.should_not be_valid_for_sale
|
75
79
|
end
|
@@ -1,16 +1,20 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'integration/acceptance_validator/spec_helper'
|
3
3
|
|
4
|
-
describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
5
|
-
before :
|
4
|
+
describe 'DataMapper::Validate::Fixtures::BetaTesterAccount' do
|
5
|
+
before :all do
|
6
|
+
DataMapper::Validate::Fixtures::BetaTesterAccount.auto_migrate!
|
7
|
+
end
|
8
|
+
|
9
|
+
before do
|
6
10
|
@model = DataMapper::Validate::Fixtures::BetaTesterAccount.new(:user_agreement => true,
|
7
|
-
:newsletter_signup =>
|
11
|
+
:newsletter_signup => nil,
|
8
12
|
:privacy_agreement => "accept")
|
9
13
|
@model.should be_valid
|
10
14
|
end
|
11
15
|
|
12
16
|
describe "with a missing newsletter signup field" do
|
13
|
-
before
|
17
|
+
before do
|
14
18
|
@model.newsletter_signup = nil
|
15
19
|
end
|
16
20
|
|
@@ -20,18 +24,17 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
20
24
|
end
|
21
25
|
|
22
26
|
describe "with a blank newsletter signup field" do
|
23
|
-
before
|
27
|
+
before do
|
24
28
|
@model.newsletter_signup = ""
|
25
29
|
end
|
26
30
|
|
27
|
-
it "is
|
28
|
-
@model.
|
31
|
+
it "is NOT valid" do
|
32
|
+
@model.should_not be_valid
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
32
|
-
|
33
36
|
describe "with a blank user agreement field" do
|
34
|
-
before
|
37
|
+
before do
|
35
38
|
@model.user_agreement = ""
|
36
39
|
end
|
37
40
|
|
@@ -40,9 +43,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
40
43
|
end
|
41
44
|
end
|
42
45
|
|
43
|
-
|
44
46
|
describe "with a nil user agreement field" do
|
45
|
-
before
|
47
|
+
before do
|
46
48
|
@model.user_agreement = nil
|
47
49
|
end
|
48
50
|
|
@@ -51,9 +53,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
51
53
|
end
|
52
54
|
end
|
53
55
|
|
54
|
-
|
55
56
|
describe "with user agreement field having value of 1 (as integer)" do
|
56
|
-
before
|
57
|
+
before do
|
57
58
|
@model.user_agreement = 1
|
58
59
|
end
|
59
60
|
|
@@ -62,9 +63,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
62
63
|
end
|
63
64
|
end
|
64
65
|
|
65
|
-
|
66
66
|
describe "with user agreement field having value of 1 (as a string)" do
|
67
|
-
before
|
67
|
+
before do
|
68
68
|
@model.user_agreement = "1"
|
69
69
|
end
|
70
70
|
|
@@ -73,9 +73,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
|
77
76
|
describe "with user agreement field having value of 'true' (as a string)" do
|
78
|
-
before
|
77
|
+
before do
|
79
78
|
@model.user_agreement = 'true'
|
80
79
|
end
|
81
80
|
|
@@ -84,9 +83,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
84
83
|
end
|
85
84
|
end
|
86
85
|
|
87
|
-
|
88
86
|
describe "with user agreement field having value of true (TrueClass instance)" do
|
89
|
-
before
|
87
|
+
before do
|
90
88
|
@model.user_agreement = true
|
91
89
|
end
|
92
90
|
|
@@ -95,9 +93,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
95
93
|
end
|
96
94
|
end
|
97
95
|
|
98
|
-
|
99
96
|
describe "with user agreement field having value of 't' (The Lisp Way)" do
|
100
|
-
before
|
97
|
+
before do
|
101
98
|
@model.user_agreement = 't'
|
102
99
|
end
|
103
100
|
|
@@ -106,9 +103,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
106
103
|
end
|
107
104
|
end
|
108
105
|
|
109
|
-
|
110
106
|
describe "with user agreement field having value of 'f'" do
|
111
|
-
before
|
107
|
+
before do
|
112
108
|
@model.user_agreement = 'f'
|
113
109
|
end
|
114
110
|
|
@@ -117,9 +113,18 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
117
113
|
end
|
118
114
|
end
|
119
115
|
|
116
|
+
describe "with user agreement field having value of false" do
|
117
|
+
before do
|
118
|
+
@model.user_agreement = false
|
119
|
+
end
|
120
|
+
|
121
|
+
it "is NOT valid" do
|
122
|
+
@model.should_not be_valid
|
123
|
+
end
|
124
|
+
end
|
120
125
|
|
121
126
|
describe "with privacy agreement field having value of 1" do
|
122
|
-
before
|
127
|
+
before do
|
123
128
|
@model.privacy_agreement = 1
|
124
129
|
end
|
125
130
|
|
@@ -129,7 +134,7 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
129
134
|
end
|
130
135
|
|
131
136
|
describe "with privacy agreement field having value of true" do
|
132
|
-
before
|
137
|
+
before do
|
133
138
|
@model.privacy_agreement = true
|
134
139
|
end
|
135
140
|
|
@@ -138,9 +143,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
138
143
|
end
|
139
144
|
end
|
140
145
|
|
141
|
-
|
142
146
|
describe "with privacy agreement field having value of '1'" do
|
143
|
-
before
|
147
|
+
before do
|
144
148
|
@model.privacy_agreement = '1'
|
145
149
|
end
|
146
150
|
|
@@ -149,9 +153,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
149
153
|
end
|
150
154
|
end
|
151
155
|
|
152
|
-
|
153
156
|
describe "with privacy agreement field having value of 't'" do
|
154
|
-
before
|
157
|
+
before do
|
155
158
|
@model.privacy_agreement = 't'
|
156
159
|
end
|
157
160
|
|
@@ -160,9 +163,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
160
163
|
end
|
161
164
|
end
|
162
165
|
|
163
|
-
|
164
166
|
describe "with privacy agreement field having value of 'accept'" do
|
165
|
-
before
|
167
|
+
before do
|
166
168
|
@model.privacy_agreement = 'accept'
|
167
169
|
end
|
168
170
|
|
@@ -171,9 +173,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
171
173
|
end
|
172
174
|
end
|
173
175
|
|
174
|
-
|
175
176
|
describe "with privacy agreement field having value of 'agreed'" do
|
176
|
-
before
|
177
|
+
before do
|
177
178
|
@model.privacy_agreement = 'agreed'
|
178
179
|
end
|
179
180
|
|
@@ -182,9 +183,8 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
182
183
|
end
|
183
184
|
end
|
184
185
|
|
185
|
-
|
186
186
|
describe "with privacy agreement field having value of 'ah, greed'" do
|
187
|
-
before
|
187
|
+
before do
|
188
188
|
@model.privacy_agreement = 'ah, greed'
|
189
189
|
end
|
190
190
|
|
@@ -193,4 +193,4 @@ describe DataMapper::Validate::Fixtures::BetaTesterAccount do
|
|
193
193
|
@model.should_not be_valid
|
194
194
|
end
|
195
195
|
end
|
196
|
-
end
|
196
|
+
end
|