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.
Files changed (102) hide show
  1. data/Rakefile +23 -18
  2. data/VERSION +1 -0
  3. data/dm-validations.gemspec +188 -0
  4. data/lib/dm-validations.rb +25 -75
  5. data/lib/dm-validations/auto_validate.rb +7 -7
  6. data/lib/dm-validations/contextual_validators.rb +4 -18
  7. data/lib/dm-validations/exceptions.rb +3 -1
  8. data/lib/dm-validations/support/context.rb +40 -1
  9. data/lib/dm-validations/validation_errors.rb +2 -13
  10. data/lib/dm-validations/validators/absent_field_validator.rb +2 -2
  11. data/lib/dm-validations/validators/acceptance_validator.rb +14 -16
  12. data/lib/dm-validations/validators/confirmation_validator.rb +17 -15
  13. data/lib/dm-validations/validators/format_validator.rb +18 -11
  14. data/lib/dm-validations/validators/generic_validator.rb +45 -15
  15. data/lib/dm-validations/validators/length_validator.rb +2 -11
  16. data/lib/dm-validations/validators/method_validator.rb +2 -2
  17. data/lib/dm-validations/validators/numeric_validator.rb +8 -6
  18. data/lib/dm-validations/validators/primitive_validator.rb +1 -1
  19. data/lib/dm-validations/validators/uniqueness_validator.rb +13 -9
  20. data/lib/dm-validations/validators/within_validator.rb +4 -3
  21. data/spec/fixtures/basketball_player.rb +0 -3
  22. data/spec/fixtures/bill_of_landing.rb +1 -1
  23. data/spec/fixtures/city.rb +0 -1
  24. data/spec/fixtures/company.rb +1 -3
  25. data/spec/fixtures/corporate_world.rb +0 -6
  26. data/spec/fixtures/country.rb +0 -1
  27. data/spec/fixtures/event.rb +1 -1
  28. data/spec/fixtures/page.rb +2 -2
  29. data/spec/fixtures/reservation.rb +1 -1
  30. data/spec/fixtures/scm_operation.rb +0 -8
  31. data/spec/integration/absent_field_validator/absent_field_validator_spec.rb +6 -2
  32. data/spec/integration/acceptance_validator/acceptance_validator_spec.rb +36 -36
  33. data/spec/integration/automatic_validation/custom_messages_for_inferred_validation_spec.rb +2 -2
  34. data/spec/integration/automatic_validation/disabling_inferred_validation_spec.rb +4 -4
  35. data/spec/integration/automatic_validation/inferred_boolean_properties_validation_spec.rb +2 -2
  36. data/spec/integration/automatic_validation/inferred_float_property_validation_spec.rb +2 -0
  37. data/spec/integration/automatic_validation/inferred_format_validation_spec.rb +3 -1
  38. data/spec/integration/automatic_validation/inferred_integer_properties_validation_spec.rb +2 -0
  39. data/spec/integration/automatic_validation/inferred_length_validation_spec.rb +6 -2
  40. data/spec/integration/automatic_validation/inferred_presence_validation_spec.rb +8 -4
  41. data/spec/integration/automatic_validation/inferred_primitive_validation_spec.rb +3 -1
  42. data/spec/integration/automatic_validation/spec_helper.rb +6 -6
  43. data/spec/integration/block_validator/block_validator_spec.rb +1 -1
  44. data/spec/integration/conditional_validation/if_condition_spec.rb +3 -1
  45. data/spec/integration/confirmation_validator/confirmation_validator_spec.rb +3 -1
  46. data/spec/integration/datamapper_models/association_validation_spec.rb +4 -1
  47. data/spec/integration/datamapper_models/inheritance_spec.rb +6 -2
  48. data/spec/integration/duplicated_validations/duplicated_validations_spec.rb +3 -1
  49. data/spec/integration/format_validator/email_format_validator_spec.rb +5 -1
  50. data/spec/integration/format_validator/format_validator_spec.rb +5 -1
  51. data/spec/integration/format_validator/regexp_validator_spec.rb +5 -1
  52. data/spec/integration/format_validator/url_format_validator_spec.rb +8 -4
  53. data/spec/integration/length_validator/default_value_spec.rb +4 -2
  54. data/spec/integration/length_validator/equality_spec.rb +3 -1
  55. data/spec/integration/length_validator/error_message_spec.rb +3 -1
  56. data/spec/integration/length_validator/maximum_spec.rb +3 -1
  57. data/spec/integration/length_validator/minimum_spec.rb +3 -1
  58. data/spec/integration/length_validator/range_spec.rb +3 -1
  59. data/spec/integration/method_validator/method_validator_spec.rb +3 -1
  60. data/spec/integration/numeric_validator/equality_with_float_type_spec.rb +5 -1
  61. data/spec/integration/numeric_validator/equality_with_integer_type_spec.rb +5 -1
  62. data/spec/integration/numeric_validator/float_type_spec.rb +3 -1
  63. data/spec/integration/numeric_validator/gt_with_float_type_spec.rb +3 -1
  64. data/spec/integration/numeric_validator/gte_with_float_type_spec.rb +3 -1
  65. data/spec/integration/numeric_validator/integer_only_true_spec.rb +11 -9
  66. data/spec/integration/numeric_validator/integer_type_spec.rb +10 -8
  67. data/spec/integration/numeric_validator/lt_with_float_type_spec.rb +3 -1
  68. data/spec/integration/numeric_validator/lte_with_float_type_spec.rb +3 -1
  69. data/spec/integration/primitive_validator/primitive_validator_spec.rb +3 -1
  70. data/spec/integration/pure_ruby_objects/plain_old_ruby_object_validation_spec.rb +6 -6
  71. data/spec/integration/required_field_validator/association_spec.rb +9 -4
  72. data/spec/integration/required_field_validator/boolean_type_value_spec.rb +24 -18
  73. data/spec/integration/required_field_validator/date_type_value_spec.rb +21 -19
  74. data/spec/integration/required_field_validator/datetime_type_value_spec.rb +21 -19
  75. data/spec/integration/required_field_validator/float_type_value_spec.rb +21 -19
  76. data/spec/integration/required_field_validator/integer_type_value_spec.rb +17 -15
  77. data/spec/integration/required_field_validator/shared_examples.rb +5 -3
  78. data/spec/integration/required_field_validator/string_type_value_spec.rb +20 -16
  79. data/spec/integration/required_field_validator/text_type_value_spec.rb +10 -6
  80. data/spec/integration/uniqueness_validator/uniqueness_validator_spec.rb +23 -25
  81. data/spec/integration/within_validator/within_validator_spec.rb +7 -3
  82. data/spec/public/resource_spec.rb +5 -6
  83. data/spec/rcov.opts +6 -0
  84. data/spec/spec.opts +2 -0
  85. data/spec/unit/contextual_validators/emptiness_spec.rb +1 -1
  86. data/spec/unit/contextual_validators/execution_spec.rb +9 -16
  87. data/spec/unit/generic_validator/equality_operator_spec.rb +3 -3
  88. data/spec/unit/validation_errors/adding_spec.rb +1 -1
  89. data/spec/unit/validation_errors/emptiness_spec.rb +1 -1
  90. data/spec/unit/validation_errors/enumerable_spec.rb +1 -1
  91. data/tasks/ci.rake +1 -0
  92. data/tasks/metrics.rake +36 -0
  93. data/tasks/spec.rake +41 -0
  94. data/tasks/yard.rake +9 -0
  95. data/tasks/yardstick.rake +19 -0
  96. metadata +36 -18
  97. data/History.rdoc +0 -45
  98. data/Manifest.txt +0 -139
  99. data/TODO +0 -16
  100. data/lib/dm-validations/version.rb +0 -5
  101. data/tasks/install.rb +0 -13
  102. data/tasks/spec.rb +0 -25
@@ -22,18 +22,20 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
22
22
 
23
23
  validates_present :at
24
24
  end
25
- ScheduledOperation.auto_migrate!
26
25
 
26
+ describe 'ScheduledOperation' do
27
+ before :all do
28
+ ScheduledOperation.auto_migrate!
29
+ end
27
30
 
28
- describe ScheduledOperation do
29
- before :each do
31
+ before do
30
32
  @operation = ScheduledOperation.new(:at => DateTime.civil(2008, 06, 07, 15, 00, 00))
31
33
  @operation.should be_valid
32
34
  end
33
35
 
34
36
 
35
37
  describe "with on = nil" do
36
- before(:each) do
38
+ before do
37
39
  @operation.at = nil
38
40
  end
39
41
 
@@ -46,11 +48,11 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
46
48
  @operation.at = Date.new(2008, 12, 31)
47
49
  @operation.should be_valid
48
50
  end
49
- end # describe "with on = nil"
51
+ end
50
52
 
51
53
 
52
54
  describe "with on = valid date" do
53
- before(:each) do
55
+ before do
54
56
  @operation.at = 0.0
55
57
  end
56
58
 
@@ -58,12 +60,12 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
58
60
  # yes, presence validator does not care
59
61
  @operation.should be_valid
60
62
  end
61
- end # describe "with on = 0.0"
63
+ end
62
64
 
63
65
 
64
66
 
65
67
  describe "with on = 0" do
66
- before(:each) do
68
+ before do
67
69
  @operation.at = 0
68
70
  end
69
71
 
@@ -71,34 +73,34 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
71
73
  # yes, presence validator does not care
72
74
  @operation.should be_valid
73
75
  end
74
- end # describe "with on = 0"
76
+ end
75
77
 
76
78
 
77
79
 
78
80
  describe "with on = 100" do
79
- before(:each) do
81
+ before do
80
82
  @operation.at = 100
81
83
  end
82
84
 
83
85
  it "IS valid" do
84
86
  @operation.should be_valid
85
87
  end
86
- end # describe "with on = 100"
88
+ end
87
89
 
88
90
 
89
91
  describe "with on = 100.0" do
90
- before(:each) do
92
+ before do
91
93
  @operation.at = 100.0
92
94
  end
93
95
 
94
96
  it "IS valid" do
95
97
  @operation.should be_valid
96
98
  end
97
- end # describe "with on = 100.0"
99
+ end
98
100
 
99
101
 
100
102
  describe "with on = -1100" do
101
- before(:each) do
103
+ before do
102
104
  # presence validator does not care
103
105
  @operation.at = -1100
104
106
  end
@@ -106,11 +108,11 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
106
108
  it "IS valid" do
107
109
  @operation.should be_valid
108
110
  end
109
- end # describe "with on = -1100"
111
+ end
110
112
 
111
113
 
112
114
  describe "with on = -1100.5" do
113
- before(:each) do
115
+ before do
114
116
  # presence validator does not care
115
117
  @operation.at = -1100.5
116
118
  end
@@ -118,6 +120,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
118
120
  it "IS valid" do
119
121
  @operation.should be_valid
120
122
  end
121
- end # describe "with on = -1100.5"
122
- end # describe ScheduledOperation
123
- end # if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
123
+ end
124
+ end
125
+ end
@@ -27,17 +27,19 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
27
27
 
28
28
  validates_present :percent
29
29
  end
30
- CpuConsumption.auto_migrate!
31
30
 
31
+ describe 'CpuConsumption' do
32
+ before :all do
33
+ CpuConsumption.auto_migrate!
34
+ end
32
35
 
33
- describe CpuConsumption do
34
- before :each do
36
+ before do
35
37
  @metric = CpuConsumption.new(:percent => 20.0)
36
38
  @metric.should be_valid
37
39
  end
38
40
 
39
41
  describe "with percentage = 0.0" do
40
- before(:each) do
42
+ before do
41
43
  @metric.percent = 0.0
42
44
  end
43
45
 
@@ -45,12 +47,12 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
45
47
  # yes, presence validator does not care
46
48
  @metric.should be_valid
47
49
  end
48
- end # describe "with percentage = 0.0"
50
+ end
49
51
 
50
52
 
51
53
 
52
54
  describe "with percentage = 0" do
53
- before(:each) do
55
+ before do
54
56
  @metric.percent = 0
55
57
  end
56
58
 
@@ -58,34 +60,34 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
58
60
  # yes, presence validator does not care
59
61
  @metric.should be_valid
60
62
  end
61
- end # describe "with percentage = 0"
63
+ end
62
64
 
63
65
 
64
66
 
65
67
  describe "with percentage = 100" do
66
- before(:each) do
68
+ before do
67
69
  @metric.percent = 100
68
70
  end
69
71
 
70
72
  it "IS valid" do
71
73
  @metric.should be_valid
72
74
  end
73
- end # describe "with percentage = 100"
75
+ end
74
76
 
75
77
 
76
78
  describe "with percentage = 100.0" do
77
- before(:each) do
79
+ before do
78
80
  @metric.percent = 100.0
79
81
  end
80
82
 
81
83
  it "IS valid" do
82
84
  @metric.should be_valid
83
85
  end
84
- end # describe "with percentage = 100.0"
86
+ end
85
87
 
86
88
 
87
89
  describe "with percentage = -1100" do
88
- before(:each) do
90
+ before do
89
91
  # presence validator does not care
90
92
  @metric.percent = -1100
91
93
  end
@@ -93,11 +95,11 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
93
95
  it "IS valid" do
94
96
  @metric.should be_valid
95
97
  end
96
- end # describe "with percentage = -1100"
98
+ end
97
99
 
98
100
 
99
101
  describe "with percentage = -1100.5" do
100
- before(:each) do
102
+ before do
101
103
  # presence validator does not care
102
104
  @metric.percent = -1100.5
103
105
  end
@@ -105,11 +107,11 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
105
107
  it "IS valid" do
106
108
  @metric.should be_valid
107
109
  end
108
- end # describe "with percentage = -1100.5"
110
+ end
109
111
 
110
112
 
111
113
  describe "with percentage = nil" do
112
- before(:each) do
114
+ before do
113
115
  @metric.percent = nil
114
116
  end
115
117
 
@@ -122,6 +124,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
122
124
  @metric.percent = 100
123
125
  @metric.should be_valid
124
126
  end
125
- end # describe "with percentage = nil"
126
- end # describe CpuConsumption
127
- end # if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
127
+ end
128
+ end
129
+ end
@@ -20,17 +20,19 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
20
20
 
21
21
  validates_present :local_repo_revision_num
22
22
  end
23
- HgCommit.auto_migrate!
24
23
 
24
+ describe 'HgCommit' do
25
+ before :all do
26
+ HgCommit.auto_migrate!
27
+ end
25
28
 
26
- describe HgCommit do
27
- before :each do
29
+ before do
28
30
  @operation = HgCommit.new(:local_repo_revision_num => 90, :name => "ci")
29
31
  @operation.should be_valid
30
32
  end
31
33
 
32
34
  describe "with local revision number = 0" do
33
- before(:each) do
35
+ before do
34
36
  @operation.local_repo_revision_num = 0
35
37
  end
36
38
 
@@ -38,34 +40,34 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
38
40
  # yes, presence validator does not care
39
41
  @operation.should be_valid
40
42
  end
41
- end # describe "with local revision number = 0"
43
+ end
42
44
 
43
45
 
44
46
 
45
47
  describe "with local revision number = 100" do
46
- before(:each) do
48
+ before do
47
49
  @operation.local_repo_revision_num = 100
48
50
  end
49
51
 
50
52
  it "IS valid" do
51
53
  @operation.should be_valid
52
54
  end
53
- end # describe "with local revision number = 100"
55
+ end
54
56
 
55
57
 
56
58
  describe "with local revision number = 100.0 (float!)" do
57
- before(:each) do
59
+ before do
58
60
  @operation.local_repo_revision_num = 100.0
59
61
  end
60
62
 
61
63
  it "IS valid" do
62
64
  @operation.should be_valid
63
65
  end
64
- end # describe "with local revision number = 100.0 (float!)"
66
+ end
65
67
 
66
68
 
67
69
  describe "with local revision number = -1100" do
68
- before(:each) do
70
+ before do
69
71
  # presence validator does not care
70
72
  @operation.local_repo_revision_num = -1100
71
73
  end
@@ -73,11 +75,11 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
73
75
  it "IS valid" do
74
76
  @operation.should be_valid
75
77
  end
76
- end # describe "with local revision number = -1100"
78
+ end
77
79
 
78
80
 
79
81
  describe "with local revision number = nil" do
80
- before(:each) do
82
+ before do
81
83
  @operation.local_repo_revision_num = nil
82
84
  end
83
85
 
@@ -90,6 +92,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
90
92
  @operation.local_repo_revision_num = 100
91
93
  @operation.should be_valid
92
94
  end
93
- end # describe "with local revision number = nil"
94
- end # describe HgCommit
95
- end # if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
95
+ end
96
+ end
97
+ end
@@ -1,10 +1,12 @@
1
- describe GitOperation do
2
- before :each do
1
+ describe 'GitOperation' do
2
+ before do
3
+ GitOperation.auto_migrate!
4
+
3
5
  @operation = GitOperation.new
4
6
  end
5
7
 
6
8
  describe "unnamed SCM operation", :shared => true do
7
- before :each do
9
+ before do
8
10
  @operation.name = nil
9
11
  @operation.valid?
10
12
  end
@@ -4,15 +4,19 @@ require 'integration/required_field_validator/spec_helper'
4
4
  if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
5
5
  # keep in mind any ScmOperation has a default value for brand property
6
6
  # so it is used
7
- describe GitOperation do
8
- before :each do
7
+ describe 'GitOperation' do
8
+ before :all do
9
+ GitOperation.auto_migrate!
10
+ end
11
+
12
+ before do
9
13
  @operation = GitOperation.new(:network_connection => true,
10
14
  :clean_working_copy => true,
11
15
  :message => "I did it! I did it!! Hell yeah!!!")
12
16
  end
13
17
 
14
18
  describe "without explicitly specified committer name" do
15
- before :each do
19
+ before do
16
20
  # no specific actions for this case! yay!
17
21
  end
18
22
 
@@ -32,10 +36,10 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
32
36
  # tested in
33
37
  @operation.committer_name.should == "Just another Ruby hacker"
34
38
  end
35
- end # describe "without explicitly specified committer name"
39
+ end
36
40
 
37
41
  describe "WITH explicitly specified committer name" do
38
- before :each do
42
+ before do
39
43
  @operation.committer_name = "Core Team Guy"
40
44
  end
41
45
 
@@ -55,12 +59,12 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
55
59
  # tested in
56
60
  @operation.committer_name.should == "Core Team Guy"
57
61
  end
58
- end # describe "with explicitly specified committer name"
62
+ end
59
63
 
60
64
 
61
65
 
62
66
  describe "without explicitly specified author name" do
63
- before :each do
67
+ before do
64
68
  # no specific actions for this case! yay!
65
69
  end
66
70
 
@@ -78,10 +82,10 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
78
82
  it "has default value set" do
79
83
  @operation.author_name.should == "Just another Ruby hacker"
80
84
  end
81
- end # describe "without explicitly specified author name"
85
+ end
82
86
 
83
87
  describe "WITH explicitly specified author name" do
84
- before :each do
88
+ before do
85
89
  @operation.author_name = "Random contributor"
86
90
  end
87
91
 
@@ -97,10 +101,10 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
97
101
  it "has value set" do
98
102
  @operation.author_name.should == "Random contributor"
99
103
  end
100
- end # describe "with explicitly specified author name"
104
+ end
101
105
 
102
106
  describe "with empty committer name" do
103
- before(:each) do
107
+ before do
104
108
  @operation.committer_name = ""
105
109
  end
106
110
 
@@ -126,11 +130,11 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
126
130
  it "is not valid in default context" do
127
131
  @operation.should_not be_valid
128
132
  end
129
- end # describe "with empty committer field"
133
+ end
130
134
 
131
135
 
132
136
  describe "with empty author name" do
133
- before(:each) do
137
+ before do
134
138
  @operation.author_name = ""
135
139
  end
136
140
 
@@ -156,6 +160,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
156
160
  it "is not valid in default context" do
157
161
  @operation.should_not be_valid
158
162
  end
159
- end # describe "with empty author field"
160
- end # describe GitOperation
161
- end # if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
163
+ end
164
+ end
165
+ end
@@ -4,15 +4,19 @@ require 'integration/required_field_validator/spec_helper'
4
4
  if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
5
5
  # keep in mind any ScmOperation has a default value for brand property
6
6
  # so it is used
7
- describe GitOperation do
8
- before :each do
7
+ describe 'GitOperation' do
8
+ before :all do
9
+ GitOperation.auto_migrate!
10
+ end
11
+
12
+ before do
9
13
  @operation = GitOperation.new(:network_connection => true,
10
14
  :clean_working_copy => true,
11
15
  :message => "I did it! I did it!! Hell yeah!!!")
12
16
  end
13
17
 
14
18
  describe "with empty message" do
15
- before(:each) do
19
+ before do
16
20
  @operation.message = ""
17
21
  end
18
22
 
@@ -38,6 +42,6 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
38
42
  it "is not valid in default context" do
39
43
  @operation.should_not be_valid
40
44
  end
41
- end # describe "with empty message"
42
- end # describe GitOperation
43
- end # if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
45
+ end
46
+ end
47
+ end