dm-validations 0.10.1 → 0.10.2

Sign up to get free protection for your applications and to get access to all the features.
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