whyvalidationssuckin96 1.0.0

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 (88) hide show
  1. data/.document +5 -0
  2. data/.gitignore +22 -0
  3. data/LICENSE +20 -0
  4. data/README.md +121 -0
  5. data/Rakefile +45 -0
  6. data/VERSION +1 -0
  7. data/doc/ActiveRecord/RecordInvalid.html +258 -0
  8. data/doc/ActiveRecord.html +93 -0
  9. data/doc/FalseClass.html +87 -0
  10. data/doc/NilClass.html +87 -0
  11. data/doc/Numeric.html +87 -0
  12. data/doc/Object.html +79 -0
  13. data/doc/String.html +87 -0
  14. data/doc/TrueClass.html +87 -0
  15. data/doc/WhyValidationsSuckIn96/ActiveRecord/InstanceMethods.html +156 -0
  16. data/doc/WhyValidationsSuckIn96/ActiveRecord.html +192 -0
  17. data/doc/WhyValidationsSuckIn96/AttributeBasedValidation.html +464 -0
  18. data/doc/WhyValidationsSuckIn96/SkippableValidation.html +194 -0
  19. data/doc/WhyValidationsSuckIn96/ValidatesAcceptance.html +254 -0
  20. data/doc/WhyValidationsSuckIn96/ValidatesAssociated.html +250 -0
  21. data/doc/WhyValidationsSuckIn96/ValidatesConfirmation.html +251 -0
  22. data/doc/WhyValidationsSuckIn96/ValidatesExclusion.html +388 -0
  23. data/doc/WhyValidationsSuckIn96/ValidatesFormat.html +387 -0
  24. data/doc/WhyValidationsSuckIn96/ValidatesInclusion.html +388 -0
  25. data/doc/WhyValidationsSuckIn96/ValidatesLength.html +469 -0
  26. data/doc/WhyValidationsSuckIn96/ValidatesNumericality.html +267 -0
  27. data/doc/WhyValidationsSuckIn96/ValidatesPresence.html +244 -0
  28. data/doc/WhyValidationsSuckIn96/ValidatesUniqueness.html +289 -0
  29. data/doc/WhyValidationsSuckIn96/Validation.html +934 -0
  30. data/doc/WhyValidationsSuckIn96/ValidationBuilder.html +391 -0
  31. data/doc/WhyValidationsSuckIn96/ValidationSupport/ClassMethods.html +249 -0
  32. data/doc/WhyValidationsSuckIn96/ValidationSupport/InstanceMethods.html +484 -0
  33. data/doc/WhyValidationsSuckIn96/ValidationSupport.html +168 -0
  34. data/doc/WhyValidationsSuckIn96.html +97 -0
  35. data/doc/_index.html +346 -0
  36. data/doc/class_list.html +293 -0
  37. data/doc/css/common.css +1 -0
  38. data/doc/css/full_list.css +23 -0
  39. data/doc/css/style.css +263 -0
  40. data/doc/file.README.html +173 -0
  41. data/doc/file_list.html +29 -0
  42. data/doc/index.html +173 -0
  43. data/doc/js/app.js +91 -0
  44. data/doc/js/full_list.js +39 -0
  45. data/doc/js/jquery.js +19 -0
  46. data/doc/method_list.html +462 -0
  47. data/doc/top-level-namespace.html +81 -0
  48. data/lib/whyvalidationssuckin96/attribute_based_validation.rb +46 -0
  49. data/lib/whyvalidationssuckin96/constants.rb +3 -0
  50. data/lib/whyvalidationssuckin96/ext/blank.rb +47 -0
  51. data/lib/whyvalidationssuckin96/macros/validates_acceptance.rb +36 -0
  52. data/lib/whyvalidationssuckin96/macros/validates_associated.rb +33 -0
  53. data/lib/whyvalidationssuckin96/macros/validates_confirmation.rb +40 -0
  54. data/lib/whyvalidationssuckin96/macros/validates_exclusion.rb +38 -0
  55. data/lib/whyvalidationssuckin96/macros/validates_format.rb +38 -0
  56. data/lib/whyvalidationssuckin96/macros/validates_inclusion.rb +38 -0
  57. data/lib/whyvalidationssuckin96/macros/validates_length.rb +98 -0
  58. data/lib/whyvalidationssuckin96/macros/validates_numericality.rb +56 -0
  59. data/lib/whyvalidationssuckin96/macros/validates_presence.rb +30 -0
  60. data/lib/whyvalidationssuckin96/macros.rb +9 -0
  61. data/lib/whyvalidationssuckin96/rails/active_record.rb +94 -0
  62. data/lib/whyvalidationssuckin96/rails/macros/validates_uniqueness.rb +87 -0
  63. data/lib/whyvalidationssuckin96/rails/macros.rb +1 -0
  64. data/lib/whyvalidationssuckin96/skippable_validation.rb +59 -0
  65. data/lib/whyvalidationssuckin96/validation.rb +88 -0
  66. data/lib/whyvalidationssuckin96/validation_builder.rb +56 -0
  67. data/lib/whyvalidationssuckin96/validation_support.rb +74 -0
  68. data/lib/whyvalidationssuckin96.rb +4 -0
  69. data/test/attribute_based_validation_test.rb +58 -0
  70. data/test/macros/validates_acceptance_test.rb +64 -0
  71. data/test/macros/validates_associated_test.rb +60 -0
  72. data/test/macros/validates_confirmation_test.rb +63 -0
  73. data/test/macros/validates_exclusion_test.rb +37 -0
  74. data/test/macros/validates_format_test.rb +43 -0
  75. data/test/macros/validates_inclusion_test.rb +37 -0
  76. data/test/macros/validates_length_test.rb +179 -0
  77. data/test/macros/validates_numericality_test.rb +129 -0
  78. data/test/macros/validates_presence_test.rb +31 -0
  79. data/test/rails/active_record_test.rb +187 -0
  80. data/test/rails/active_record_test_helper.rb +90 -0
  81. data/test/rails/macros/validates_uniqueness_test.rb +153 -0
  82. data/test/skippable_validation_test.rb +102 -0
  83. data/test/teststrap.rb +4 -0
  84. data/test/validation_builder_test.rb +62 -0
  85. data/test/validation_support_test.rb +209 -0
  86. data/test/validation_test.rb +101 -0
  87. data/whyvalidationssuckin96.gemspec +153 -0
  88. metadata +189 -0
@@ -0,0 +1,209 @@
1
+ require 'teststrap'
2
+
3
+ context "validation_support" do
4
+ context "when mixed into a class" do
5
+ setup do
6
+ Class.new { include WhyValidationsSuckIn96::ValidationSupport }
7
+ end
8
+
9
+ should "add a 'validation_collection' method" do
10
+ topic
11
+ end.respond_to(:validation_collection)
12
+
13
+ should "add a 'setup_validations' method" do
14
+ topic
15
+ end.respond_to(:setup_validations)
16
+
17
+ should "add a 'valid?' instance method" do
18
+ topic.new
19
+ end.respond_to(:valid?)
20
+
21
+ should "add a 'invalid?' instance method" do
22
+ topic.new
23
+ end.respond_to(:invalid?)
24
+
25
+ should "add a 'failed_validations' instance method" do
26
+ topic.new
27
+ end.respond_to(:failed_validations)
28
+
29
+ should "add a 'passed_validations' instance method" do
30
+ topic.new
31
+ end.respond_to(:passed_validations)
32
+
33
+ should "add a 'all_validations' instance method" do
34
+ topic.new
35
+ end.respond_to(:all_validations)
36
+
37
+ should "have an empty validation collection" do
38
+ topic.validation_collection.size
39
+ end.equals(0)
40
+
41
+ should "be valid when no validations have been defined" do
42
+ topic.new.valid?
43
+ end
44
+
45
+ should "not be invalid when no validations have been defined" do
46
+ !topic.new.invalid?
47
+ end
48
+ end # mixed into a class
49
+
50
+ context "when mixed into a class and used to add a simple validation" do
51
+ setup do
52
+ Class.new do
53
+ attr_accessor :title
54
+ include WhyValidationsSuckIn96::ValidationSupport
55
+ setup_validations do
56
+ validate :title_is_present, :example => "the number song", :message => "title must be present" do
57
+ pass if validatable.title && !validatable.title.empty?
58
+ fail
59
+ end
60
+ end # setup_validations
61
+ end # Class.new
62
+ end # setup
63
+
64
+ should "have one validation in the validation_collection" do
65
+ topic.validation_collection.size
66
+ end.equals(1)
67
+
68
+ should "be able to reflect on the validation and find its name" do
69
+ topic.validation_collection.first.first.name
70
+ end.equals(:title_is_present)
71
+
72
+ should "be able to reflect on the validation and find its options" do
73
+ topic.validation_collection.first.last
74
+ end.equals(:example => "the number song", :message => "title must be present")
75
+
76
+ context "given an instance of the class" do
77
+ setup { topic.new }
78
+
79
+ should "have one entry for all validations" do
80
+ topic.all_validations.size
81
+ end.equals(1)
82
+
83
+ should "have all the entries for all validations be validation instances" do
84
+ topic.all_validations.all? { |validation| validation.kind_of?(WhyValidationsSuckIn96::Validation) }
85
+ end
86
+
87
+ should "not be valid without a title" do
88
+ topic.title = nil
89
+ !topic.valid?
90
+ end
91
+
92
+ should "be valid with a title" do
93
+ topic.title = "building steam with a grain of salt"
94
+ topic.valid?
95
+ end
96
+
97
+ should "have one passed validation with a title" do
98
+ topic.title = "building steam with a grain of salt"
99
+ topic.valid?
100
+ topic.passed_validations.size
101
+ end.equals(1)
102
+
103
+ should "have one failed validation without a title" do
104
+ topic.title = nil
105
+ topic.valid?
106
+ topic.failed_validations.size
107
+ end.equals(1)
108
+ end # given an instance of the class
109
+ end # when mixed into a class and used to add a simple validation
110
+
111
+ context "when extending a class with existing validations and adding new validations" do
112
+ parent_class = child_class = nil
113
+
114
+ setup do
115
+ parent_class = Class.new do
116
+ attr_accessor :artist
117
+ include WhyValidationsSuckIn96::ValidationSupport
118
+ setup_validations do
119
+ validate :artist_is_present, :example => "dj shadow", :message => "artist must be present" do
120
+ pass if validatable.artist && !validatable.artist.empty?
121
+ fail
122
+ end
123
+ end # setup_validations
124
+ end # parent_class
125
+
126
+ child_class = Class.new(parent_class) do
127
+ attr_accessor :title
128
+ setup_validations do
129
+ validate :title_is_present, :example => "the number song", :message => "title must be present" do
130
+ pass if validatable.title && !validatable.title.empty?
131
+ fail
132
+ end
133
+ end # setup_validations
134
+ end # child_class
135
+ end # setup
136
+
137
+ should "have only one validation in the collection for the base class" do
138
+ parent_class.validation_collection.size
139
+ end.equals(1)
140
+
141
+ should "have a validation for the artist in the base class" do
142
+ parent_class.validation_collection.detect {|(validation, opts)| validation.name == :artist_is_present }
143
+ end
144
+
145
+ should "have two validations in the collection for the child class" do
146
+ child_class.validation_collection.size
147
+ end.equals(2)
148
+
149
+ should "have a validation for the artist in the child class" do
150
+ child_class.validation_collection.detect {|(validation, opts)| validation.name == :artist_is_present }
151
+ end
152
+
153
+ should "have a validation for the title in the child class" do
154
+ child_class.validation_collection.detect {|(validation, opts)| validation.name == :title_is_present }
155
+ end
156
+
157
+ end # when extending a class with existing validations
158
+
159
+ context "when extending a class with existing validations and not adding new validations" do
160
+ parent_class = child_class = nil
161
+
162
+ setup do
163
+ parent_class = Class.new do
164
+ attr_accessor :artist
165
+ include WhyValidationsSuckIn96::ValidationSupport
166
+ setup_validations do
167
+ validate :artist_is_present, :example => "dj shadow", :message => "artist must be present" do
168
+ pass if validatable.artist && !validatable.artist.empty?
169
+ fail
170
+ end
171
+ end # setup_validations
172
+ end # parent_class
173
+
174
+ child_class = Class.new(parent_class)
175
+ end # setup
176
+
177
+ should "have the parent class' validations by default" do
178
+ child_class.validation_collection.size
179
+ end.equals(1)
180
+
181
+ end # when extending a class with existing validations and not adding new validations
182
+
183
+ context "when calling setup_validations twice in a class" do
184
+ setup do
185
+ Class.new do
186
+ include WhyValidationsSuckIn96::ValidationSupport
187
+ setup_validations do
188
+ validate(:first_validation) {}
189
+ end
190
+ setup_validations do
191
+ validate(:second_validation) {}
192
+ end
193
+ end # Class.new
194
+ end # setup
195
+
196
+ should "add two validations to the class" do
197
+ topic.validation_collection.size
198
+ end.equals(2)
199
+
200
+ should "have the first validation" do
201
+ topic.validation_collection.detect { |(validation, opts)| validation.name == :first_validation }
202
+ end
203
+
204
+ should "have the second validation" do
205
+ topic.validation_collection.detect { |(validation, opts)| validation.name == :second_validation }
206
+ end
207
+
208
+ end # when calling setup_validations twice in a class
209
+ end # validation_support
@@ -0,0 +1,101 @@
1
+ require 'teststrap'
2
+
3
+ context "validation" do
4
+ context "creating a new subclass" do
5
+ setup do
6
+ WhyValidationsSuckIn96::Validation.new_subclass(:validates_rockingness, lambda {})
7
+ end
8
+
9
+ should "have a readable string returned by inspect" do
10
+ topic.new(Object.new).inspect
11
+ end.equals(/^#<WhyValidationsSuckIn96::Validation subclass for validating 'validates_rockingness'>/)
12
+
13
+ should "have a name on the new subclass" do
14
+ topic.name
15
+ end.equals(:validates_rockingness)
16
+
17
+ should "define validate as private on the new subclass" do
18
+ topic.private_instance_methods
19
+ end.includes("validate")
20
+ end # creating a new subclass
21
+
22
+ context "an instance of a subclass" do
23
+ setup do
24
+ WhyValidationsSuckIn96::Validation.new_subclass(:validates_rockingness, lambda {})
25
+ end
26
+
27
+ should "allow accessing the options via an instance method" do
28
+ topic.new(Object.new, :example => "stuff").options
29
+ end.equals(:example => "stuff")
30
+
31
+ should "return a true by default when pass/fail aren't called in the validation definition" do
32
+ topic.new(Object.new).validates?
33
+ end.equals(true)
34
+
35
+ should "be passed by default when pass/fail aren't called in the validation definition" do
36
+ validation = topic.new(Object.new)
37
+ validation.validates?
38
+ validation.passed?
39
+ end.equals(true)
40
+
41
+ should "not be passed if the validation hasn't run yet" do
42
+ topic.new(Object.new).passed?
43
+ end.equals(false)
44
+
45
+ should "not be failed if the validation hasn't run yet" do
46
+ topic.new(Object.new).failed?
47
+ end.equals(false)
48
+
49
+ should "not return true for has_run? if the validation hasn't run yet" do
50
+ topic.new(Object.new).has_run?
51
+ end.equals(false)
52
+
53
+ end # an instance of a subclass
54
+
55
+ context "an instance of a subclass with an actual validation definition" do
56
+ setup do
57
+ validation = lambda { validatable ? pass : fail }
58
+ WhyValidationsSuckIn96::Validation.new_subclass(:validates_rockingness, validation)
59
+ end
60
+
61
+ should "have validates? return true if the validation passes" do
62
+ validation = topic.new(true)
63
+ validation.validates?
64
+ end.equals(true)
65
+
66
+ should "be passed when run and pass is called" do
67
+ validation = topic.new(true)
68
+ validation.validates?
69
+ validation.passed?
70
+ end
71
+
72
+ should "have has_run? return true when the validation runs" do
73
+ validation = topic.new(true)
74
+ validation.validates?
75
+ validation.has_run?
76
+ end
77
+
78
+ should "have validates? return false if the validation fails" do
79
+ validation = topic.new(false)
80
+ validation.validates?
81
+ end.equals(false)
82
+
83
+ should "be failed when run and fail is called" do
84
+ validation = topic.new(false)
85
+ validation.validates?
86
+ validation.failed?
87
+ end
88
+ end # an instance of a subclass with an actual validation definition
89
+
90
+ context "an instance of a subclass with a validation definition that raises" do
91
+ setup do
92
+ validation = lambda { raise "hell" }
93
+ WhyValidationsSuckIn96::Validation.new_subclass(:validates_rockingness, validation)
94
+ end
95
+
96
+ should "raise an exception when validating" do
97
+ topic.new(Object.new).validates?
98
+ end.raises(RuntimeError, "hell")
99
+
100
+ end # an instance of a subclass with a validation definition that raises
101
+ end # validation
@@ -0,0 +1,153 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{whyvalidationssuckin96}
8
+ s.version = "1.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["gabrielg", "douglasmeyer"]
12
+ s.date = %q{2009-12-20}
13
+ s.description = %q{A library for setting up model validations, such as in ActiveRecord.}
14
+ s.email = %q{gabriel.gironda@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "LICENSE",
23
+ "README.md",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "doc/ActiveRecord.html",
27
+ "doc/ActiveRecord/RecordInvalid.html",
28
+ "doc/FalseClass.html",
29
+ "doc/NilClass.html",
30
+ "doc/Numeric.html",
31
+ "doc/Object.html",
32
+ "doc/String.html",
33
+ "doc/TrueClass.html",
34
+ "doc/WhyValidationsSuckIn96.html",
35
+ "doc/WhyValidationsSuckIn96/ActiveRecord.html",
36
+ "doc/WhyValidationsSuckIn96/ActiveRecord/InstanceMethods.html",
37
+ "doc/WhyValidationsSuckIn96/AttributeBasedValidation.html",
38
+ "doc/WhyValidationsSuckIn96/SkippableValidation.html",
39
+ "doc/WhyValidationsSuckIn96/ValidatesAcceptance.html",
40
+ "doc/WhyValidationsSuckIn96/ValidatesAssociated.html",
41
+ "doc/WhyValidationsSuckIn96/ValidatesConfirmation.html",
42
+ "doc/WhyValidationsSuckIn96/ValidatesExclusion.html",
43
+ "doc/WhyValidationsSuckIn96/ValidatesFormat.html",
44
+ "doc/WhyValidationsSuckIn96/ValidatesInclusion.html",
45
+ "doc/WhyValidationsSuckIn96/ValidatesLength.html",
46
+ "doc/WhyValidationsSuckIn96/ValidatesNumericality.html",
47
+ "doc/WhyValidationsSuckIn96/ValidatesPresence.html",
48
+ "doc/WhyValidationsSuckIn96/ValidatesUniqueness.html",
49
+ "doc/WhyValidationsSuckIn96/Validation.html",
50
+ "doc/WhyValidationsSuckIn96/ValidationBuilder.html",
51
+ "doc/WhyValidationsSuckIn96/ValidationSupport.html",
52
+ "doc/WhyValidationsSuckIn96/ValidationSupport/ClassMethods.html",
53
+ "doc/WhyValidationsSuckIn96/ValidationSupport/InstanceMethods.html",
54
+ "doc/_index.html",
55
+ "doc/class_list.html",
56
+ "doc/css/common.css",
57
+ "doc/css/full_list.css",
58
+ "doc/css/style.css",
59
+ "doc/file.README.html",
60
+ "doc/file_list.html",
61
+ "doc/index.html",
62
+ "doc/js/app.js",
63
+ "doc/js/full_list.js",
64
+ "doc/js/jquery.js",
65
+ "doc/method_list.html",
66
+ "doc/top-level-namespace.html",
67
+ "lib/whyvalidationssuckin96.rb",
68
+ "lib/whyvalidationssuckin96/attribute_based_validation.rb",
69
+ "lib/whyvalidationssuckin96/constants.rb",
70
+ "lib/whyvalidationssuckin96/ext/blank.rb",
71
+ "lib/whyvalidationssuckin96/macros.rb",
72
+ "lib/whyvalidationssuckin96/macros/validates_acceptance.rb",
73
+ "lib/whyvalidationssuckin96/macros/validates_associated.rb",
74
+ "lib/whyvalidationssuckin96/macros/validates_confirmation.rb",
75
+ "lib/whyvalidationssuckin96/macros/validates_exclusion.rb",
76
+ "lib/whyvalidationssuckin96/macros/validates_format.rb",
77
+ "lib/whyvalidationssuckin96/macros/validates_inclusion.rb",
78
+ "lib/whyvalidationssuckin96/macros/validates_length.rb",
79
+ "lib/whyvalidationssuckin96/macros/validates_numericality.rb",
80
+ "lib/whyvalidationssuckin96/macros/validates_presence.rb",
81
+ "lib/whyvalidationssuckin96/rails/active_record.rb",
82
+ "lib/whyvalidationssuckin96/rails/macros.rb",
83
+ "lib/whyvalidationssuckin96/rails/macros/validates_uniqueness.rb",
84
+ "lib/whyvalidationssuckin96/skippable_validation.rb",
85
+ "lib/whyvalidationssuckin96/validation.rb",
86
+ "lib/whyvalidationssuckin96/validation_builder.rb",
87
+ "lib/whyvalidationssuckin96/validation_support.rb",
88
+ "test/attribute_based_validation_test.rb",
89
+ "test/macros/validates_acceptance_test.rb",
90
+ "test/macros/validates_associated_test.rb",
91
+ "test/macros/validates_confirmation_test.rb",
92
+ "test/macros/validates_exclusion_test.rb",
93
+ "test/macros/validates_format_test.rb",
94
+ "test/macros/validates_inclusion_test.rb",
95
+ "test/macros/validates_length_test.rb",
96
+ "test/macros/validates_numericality_test.rb",
97
+ "test/macros/validates_presence_test.rb",
98
+ "test/rails/active_record_test.rb",
99
+ "test/rails/active_record_test_helper.rb",
100
+ "test/rails/macros/validates_uniqueness_test.rb",
101
+ "test/skippable_validation_test.rb",
102
+ "test/teststrap.rb",
103
+ "test/validation_builder_test.rb",
104
+ "test/validation_support_test.rb",
105
+ "test/validation_test.rb",
106
+ "whyvalidationssuckin96.gemspec"
107
+ ]
108
+ s.homepage = %q{http://github.com/thumblemonks/whyvalidationssuckin96}
109
+ s.rdoc_options = ["--charset=UTF-8"]
110
+ s.require_paths = ["lib"]
111
+ s.rubygems_version = %q{1.3.5}
112
+ s.summary = %q{An alternative implementation of object validations.}
113
+ s.test_files = [
114
+ "test/attribute_based_validation_test.rb",
115
+ "test/macros/validates_acceptance_test.rb",
116
+ "test/macros/validates_associated_test.rb",
117
+ "test/macros/validates_confirmation_test.rb",
118
+ "test/macros/validates_exclusion_test.rb",
119
+ "test/macros/validates_format_test.rb",
120
+ "test/macros/validates_inclusion_test.rb",
121
+ "test/macros/validates_length_test.rb",
122
+ "test/macros/validates_numericality_test.rb",
123
+ "test/macros/validates_presence_test.rb",
124
+ "test/rails/active_record_test.rb",
125
+ "test/rails/active_record_test_helper.rb",
126
+ "test/rails/macros/validates_uniqueness_test.rb",
127
+ "test/skippable_validation_test.rb",
128
+ "test/teststrap.rb",
129
+ "test/validation_builder_test.rb",
130
+ "test/validation_support_test.rb",
131
+ "test/validation_test.rb"
132
+ ]
133
+
134
+ if s.respond_to? :specification_version then
135
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
136
+ s.specification_version = 3
137
+
138
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
139
+ s.add_development_dependency(%q<riot>, [">= 0"])
140
+ s.add_development_dependency(%q<yard>, [">= 0"])
141
+ s.add_development_dependency(%q<activerecord>, [">= 2.3.0"])
142
+ else
143
+ s.add_dependency(%q<riot>, [">= 0"])
144
+ s.add_dependency(%q<yard>, [">= 0"])
145
+ s.add_dependency(%q<activerecord>, [">= 2.3.0"])
146
+ end
147
+ else
148
+ s.add_dependency(%q<riot>, [">= 0"])
149
+ s.add_dependency(%q<yard>, [">= 0"])
150
+ s.add_dependency(%q<activerecord>, [">= 2.3.0"])
151
+ end
152
+ end
153
+
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: whyvalidationssuckin96
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - gabrielg
8
+ - douglasmeyer
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-12-20 00:00:00 -06:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: riot
18
+ type: :development
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: yard
28
+ type: :development
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: activerecord
38
+ type: :development
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 2.3.0
45
+ version:
46
+ description: A library for setting up model validations, such as in ActiveRecord.
47
+ email: gabriel.gironda@gmail.com
48
+ executables: []
49
+
50
+ extensions: []
51
+
52
+ extra_rdoc_files:
53
+ - LICENSE
54
+ - README.md
55
+ files:
56
+ - .document
57
+ - .gitignore
58
+ - LICENSE
59
+ - README.md
60
+ - Rakefile
61
+ - VERSION
62
+ - doc/ActiveRecord.html
63
+ - doc/ActiveRecord/RecordInvalid.html
64
+ - doc/FalseClass.html
65
+ - doc/NilClass.html
66
+ - doc/Numeric.html
67
+ - doc/Object.html
68
+ - doc/String.html
69
+ - doc/TrueClass.html
70
+ - doc/WhyValidationsSuckIn96.html
71
+ - doc/WhyValidationsSuckIn96/ActiveRecord.html
72
+ - doc/WhyValidationsSuckIn96/ActiveRecord/InstanceMethods.html
73
+ - doc/WhyValidationsSuckIn96/AttributeBasedValidation.html
74
+ - doc/WhyValidationsSuckIn96/SkippableValidation.html
75
+ - doc/WhyValidationsSuckIn96/ValidatesAcceptance.html
76
+ - doc/WhyValidationsSuckIn96/ValidatesAssociated.html
77
+ - doc/WhyValidationsSuckIn96/ValidatesConfirmation.html
78
+ - doc/WhyValidationsSuckIn96/ValidatesExclusion.html
79
+ - doc/WhyValidationsSuckIn96/ValidatesFormat.html
80
+ - doc/WhyValidationsSuckIn96/ValidatesInclusion.html
81
+ - doc/WhyValidationsSuckIn96/ValidatesLength.html
82
+ - doc/WhyValidationsSuckIn96/ValidatesNumericality.html
83
+ - doc/WhyValidationsSuckIn96/ValidatesPresence.html
84
+ - doc/WhyValidationsSuckIn96/ValidatesUniqueness.html
85
+ - doc/WhyValidationsSuckIn96/Validation.html
86
+ - doc/WhyValidationsSuckIn96/ValidationBuilder.html
87
+ - doc/WhyValidationsSuckIn96/ValidationSupport.html
88
+ - doc/WhyValidationsSuckIn96/ValidationSupport/ClassMethods.html
89
+ - doc/WhyValidationsSuckIn96/ValidationSupport/InstanceMethods.html
90
+ - doc/_index.html
91
+ - doc/class_list.html
92
+ - doc/css/common.css
93
+ - doc/css/full_list.css
94
+ - doc/css/style.css
95
+ - doc/file.README.html
96
+ - doc/file_list.html
97
+ - doc/index.html
98
+ - doc/js/app.js
99
+ - doc/js/full_list.js
100
+ - doc/js/jquery.js
101
+ - doc/method_list.html
102
+ - doc/top-level-namespace.html
103
+ - lib/whyvalidationssuckin96.rb
104
+ - lib/whyvalidationssuckin96/attribute_based_validation.rb
105
+ - lib/whyvalidationssuckin96/constants.rb
106
+ - lib/whyvalidationssuckin96/ext/blank.rb
107
+ - lib/whyvalidationssuckin96/macros.rb
108
+ - lib/whyvalidationssuckin96/macros/validates_acceptance.rb
109
+ - lib/whyvalidationssuckin96/macros/validates_associated.rb
110
+ - lib/whyvalidationssuckin96/macros/validates_confirmation.rb
111
+ - lib/whyvalidationssuckin96/macros/validates_exclusion.rb
112
+ - lib/whyvalidationssuckin96/macros/validates_format.rb
113
+ - lib/whyvalidationssuckin96/macros/validates_inclusion.rb
114
+ - lib/whyvalidationssuckin96/macros/validates_length.rb
115
+ - lib/whyvalidationssuckin96/macros/validates_numericality.rb
116
+ - lib/whyvalidationssuckin96/macros/validates_presence.rb
117
+ - lib/whyvalidationssuckin96/rails/active_record.rb
118
+ - lib/whyvalidationssuckin96/rails/macros.rb
119
+ - lib/whyvalidationssuckin96/rails/macros/validates_uniqueness.rb
120
+ - lib/whyvalidationssuckin96/skippable_validation.rb
121
+ - lib/whyvalidationssuckin96/validation.rb
122
+ - lib/whyvalidationssuckin96/validation_builder.rb
123
+ - lib/whyvalidationssuckin96/validation_support.rb
124
+ - test/attribute_based_validation_test.rb
125
+ - test/macros/validates_acceptance_test.rb
126
+ - test/macros/validates_associated_test.rb
127
+ - test/macros/validates_confirmation_test.rb
128
+ - test/macros/validates_exclusion_test.rb
129
+ - test/macros/validates_format_test.rb
130
+ - test/macros/validates_inclusion_test.rb
131
+ - test/macros/validates_length_test.rb
132
+ - test/macros/validates_numericality_test.rb
133
+ - test/macros/validates_presence_test.rb
134
+ - test/rails/active_record_test.rb
135
+ - test/rails/active_record_test_helper.rb
136
+ - test/rails/macros/validates_uniqueness_test.rb
137
+ - test/skippable_validation_test.rb
138
+ - test/teststrap.rb
139
+ - test/validation_builder_test.rb
140
+ - test/validation_support_test.rb
141
+ - test/validation_test.rb
142
+ - whyvalidationssuckin96.gemspec
143
+ has_rdoc: true
144
+ homepage: http://github.com/thumblemonks/whyvalidationssuckin96
145
+ licenses: []
146
+
147
+ post_install_message:
148
+ rdoc_options:
149
+ - --charset=UTF-8
150
+ require_paths:
151
+ - lib
152
+ required_ruby_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: "0"
157
+ version:
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: "0"
163
+ version:
164
+ requirements: []
165
+
166
+ rubyforge_project:
167
+ rubygems_version: 1.3.5
168
+ signing_key:
169
+ specification_version: 3
170
+ summary: An alternative implementation of object validations.
171
+ test_files:
172
+ - test/attribute_based_validation_test.rb
173
+ - test/macros/validates_acceptance_test.rb
174
+ - test/macros/validates_associated_test.rb
175
+ - test/macros/validates_confirmation_test.rb
176
+ - test/macros/validates_exclusion_test.rb
177
+ - test/macros/validates_format_test.rb
178
+ - test/macros/validates_inclusion_test.rb
179
+ - test/macros/validates_length_test.rb
180
+ - test/macros/validates_numericality_test.rb
181
+ - test/macros/validates_presence_test.rb
182
+ - test/rails/active_record_test.rb
183
+ - test/rails/active_record_test_helper.rb
184
+ - test/rails/macros/validates_uniqueness_test.rb
185
+ - test/skippable_validation_test.rb
186
+ - test/teststrap.rb
187
+ - test/validation_builder_test.rb
188
+ - test/validation_support_test.rb
189
+ - test/validation_test.rb