np422-validatable 1.8.5

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 (54) hide show
  1. data/README.rdoc +116 -0
  2. data/Rakefile +34 -0
  3. data/VERSION.yml +5 -0
  4. data/lib/validatable.rb +34 -0
  5. data/lib/validatable/child_validation.rb +15 -0
  6. data/lib/validatable/errors.rb +106 -0
  7. data/lib/validatable/included_validation.rb +9 -0
  8. data/lib/validatable/macros.rb +314 -0
  9. data/lib/validatable/object_extension.rb +16 -0
  10. data/lib/validatable/requireable.rb +26 -0
  11. data/lib/validatable/understandable.rb +31 -0
  12. data/lib/validatable/validatable_class_methods.rb +87 -0
  13. data/lib/validatable/validatable_instance_methods.rb +106 -0
  14. data/lib/validatable/validations/validates_acceptance_of.rb +14 -0
  15. data/lib/validatable/validations/validates_associated.rb +13 -0
  16. data/lib/validatable/validations/validates_confirmation_of.rb +23 -0
  17. data/lib/validatable/validations/validates_each.rb +14 -0
  18. data/lib/validatable/validations/validates_exclusion_of.rb +17 -0
  19. data/lib/validatable/validations/validates_format_of.rb +16 -0
  20. data/lib/validatable/validations/validates_inclusion_of.rb +17 -0
  21. data/lib/validatable/validations/validates_length_of.rb +30 -0
  22. data/lib/validatable/validations/validates_numericality_of.rb +27 -0
  23. data/lib/validatable/validations/validates_presence_of.rb +17 -0
  24. data/lib/validatable/validations/validates_true_for.rb +13 -0
  25. data/lib/validatable/validations/validation_base.rb +91 -0
  26. data/lib/validatable_flymake.rb +34 -0
  27. data/test/functional/test_validatable.rb +519 -0
  28. data/test/functional/test_validates_acceptance_of.rb +16 -0
  29. data/test/functional/test_validates_associated.rb +41 -0
  30. data/test/functional/test_validates_confirmation_of.rb +56 -0
  31. data/test/functional/test_validates_each.rb +14 -0
  32. data/test/functional/test_validates_exclusion_of.rb +29 -0
  33. data/test/functional/test_validates_format_of.rb +34 -0
  34. data/test/functional/test_validates_inclusion_of.rb +29 -0
  35. data/test/functional/test_validates_length_of.rb +64 -0
  36. data/test/functional/test_validates_numericality_of.rb +57 -0
  37. data/test/functional/test_validates_presence_of.rb +16 -0
  38. data/test/functional/test_validates_true_for.rb +27 -0
  39. data/test/test_helper.rb +26 -0
  40. data/test/unit/test_errors.rb +88 -0
  41. data/test/unit/test_understandable.rb +19 -0
  42. data/test/unit/test_validatable.rb +38 -0
  43. data/test/unit/test_validates_acceptance_of.rb +45 -0
  44. data/test/unit/test_validates_associated.rb +29 -0
  45. data/test/unit/test_validates_confirmation_of.rb +76 -0
  46. data/test/unit/test_validates_exclusion_of.rb +23 -0
  47. data/test/unit/test_validates_format_of.rb +44 -0
  48. data/test/unit/test_validates_inclusion_of.rb +23 -0
  49. data/test/unit/test_validates_length_of.rb +80 -0
  50. data/test/unit/test_validates_numericality_of.rb +82 -0
  51. data/test/unit/test_validates_presence_of.rb +35 -0
  52. data/test/unit/test_validates_true_for.rb +29 -0
  53. data/test/unit/test_validation_base.rb +52 -0
  54. metadata +146 -0
@@ -0,0 +1,35 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ Expectations do
4
+
5
+ expect false do
6
+ validation = Validatable::ValidatesPresenceOf.new stub_everything, :name
7
+ validation.valid?(stub_everything)
8
+ end
9
+
10
+ expect true do
11
+ validation = Validatable::ValidatesPresenceOf.new stub_everything, :name
12
+ validation.valid?(stub(:name=>"book"))
13
+ end
14
+
15
+ expect true do
16
+ validation = Validatable::ValidatesPresenceOf.new stub_everything, :name, :allow_nil => true
17
+ validation.valid?(stub(:name=>nil))
18
+ end
19
+
20
+ expect true do
21
+ validation = Validatable::ValidatesPresenceOf.new stub_everything, :name, :allow_blank => true
22
+ validation.valid?(stub(:name=>''))
23
+ end
24
+
25
+ expect true do
26
+ validation = Validatable::ValidatesPresenceOf.new stub_everything, :employee
27
+ validation.valid?(stub(:employee => stub(:nil? => false)))
28
+ end
29
+
30
+ expect true do
31
+ options = {:message => nil, :if => nil, :times => nil, :level => nil, :groups => nil}
32
+ Validatable::ValidatesPresenceOf.new(stub_everything, :test).must_understand(options)
33
+ end
34
+
35
+ end
@@ -0,0 +1,29 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ Expectations do
4
+
5
+ expect false do
6
+ validation = Validatable::ValidatesTrueFor.new stub_everything, :name, :logic => lambda { |logic| false }
7
+ validation.valid?(stub_everything)
8
+ end
9
+
10
+ expect true do
11
+ validation = Validatable::ValidatesTrueFor.new stub_everything, :name, :logic => lambda { |logic| true }
12
+ validation.valid?(stub_everything)
13
+ end
14
+
15
+ expect ArgumentError do
16
+ validation = Validatable::ValidatesTrueFor.new stub_everything, :age
17
+ end
18
+
19
+ expect true do
20
+ options = [:message, :if, :times, :level, :groups, :logic, :key]
21
+ Validatable::ValidatesTrueFor.new(stub_everything, :name, options.to_blank_options_hash).must_understand(options.to_blank_options_hash)
22
+ end
23
+
24
+ expect true do
25
+ options = [:logic]
26
+ Validatable::ValidatesTrueFor.new(stub_everything, :name, options.to_blank_options_hash).requires(options.to_blank_options_hash)
27
+ end
28
+
29
+ end
@@ -0,0 +1,52 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ Expectations do
4
+ expect true do
5
+ validation = Validatable::ValidationBase.new stub_everything, :base
6
+ validation.should_validate? Object.new
7
+ end
8
+
9
+ expect true do
10
+ validation = Validatable::ValidationBase.new stub_everything, :base, :times => 1
11
+ validation.validate_this_time?(stub(:times_validated => 0))
12
+ end
13
+
14
+ expect true do
15
+ validation = Validatable::ValidationBase.new stub_everything, :base
16
+ validation.validate_this_time?(nil)
17
+ end
18
+
19
+ expect true do
20
+ validation = Validatable::ValidationBase.new stub_everything, :base, :times => 2
21
+ validation.validate_this_time?(stub(:times_validated => 1))
22
+ end
23
+
24
+ expect false do
25
+ validation = Validatable::ValidationBase.new stub_everything, :base, :times => 1
26
+ validation.validate_this_time?(stub(:times_validated => 1))
27
+ end
28
+
29
+ expect 1 do
30
+ validation = Validatable::ValidationBase.new stub_everything, :base
31
+ validation.level
32
+ end
33
+
34
+ expect ArgumentError do
35
+ Validatable::ValidationBase.new stub_everything(:validation_keys_include? => true), :base, :times => 1
36
+ end
37
+
38
+ expect "some message 100" do
39
+ validation = Validatable::ValidationBase.new stub_everything, :base, :message => lambda { |message | "some message #{a_method}" }
40
+ validation.message(stub(:a_method=>'100'))
41
+ end
42
+
43
+ expect ArgumentError do
44
+ Validatable::ValidationBase.new(stub_everything, :base).must_understand(:foo => 1, :bar => 2)
45
+ end
46
+
47
+ expect true do
48
+ options = {:message => nil, :if => nil, :times => nil, :level => nil, :groups => nil, :key => nil}
49
+ Validatable::ValidationBase.new(stub_everything, :base).must_understand(options)
50
+ end
51
+
52
+ end
metadata ADDED
@@ -0,0 +1,146 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: np422-validatable
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.8.5
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jay Fields
9
+ - John Nunemaker
10
+ - Niklas Paulsson
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2011-12-28 00:00:00.000000000 +01:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: activesupport
19
+ requirement: &73280930 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ! '>='
23
+ - !ruby/object:Gem::Version
24
+ version: 2.3.4
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: *73280930
28
+ - !ruby/object:Gem::Dependency
29
+ name: mocha
30
+ requirement: &73280510 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: 0.9.8
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: *73280510
39
+ - !ruby/object:Gem::Dependency
40
+ name: dust
41
+ requirement: &73280050 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: *73280050
50
+ - !ruby/object:Gem::Dependency
51
+ name: expectations
52
+ requirement: &73279590 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ type: :development
59
+ prerelease: false
60
+ version_requirements: *73279590
61
+ description: Validatable is a library for adding validations.
62
+ email: niklasp@gmail.com
63
+ executables: []
64
+ extensions: []
65
+ extra_rdoc_files:
66
+ - README.rdoc
67
+ files:
68
+ - README.rdoc
69
+ - Rakefile
70
+ - VERSION.yml
71
+ - lib/validatable.rb
72
+ - lib/validatable/child_validation.rb
73
+ - lib/validatable/errors.rb
74
+ - lib/validatable/included_validation.rb
75
+ - lib/validatable/macros.rb
76
+ - lib/validatable/object_extension.rb
77
+ - lib/validatable/requireable.rb
78
+ - lib/validatable/understandable.rb
79
+ - lib/validatable/validatable_class_methods.rb
80
+ - lib/validatable/validatable_instance_methods.rb
81
+ - lib/validatable/validations/validates_acceptance_of.rb
82
+ - lib/validatable/validations/validates_associated.rb
83
+ - lib/validatable/validations/validates_confirmation_of.rb
84
+ - lib/validatable/validations/validates_each.rb
85
+ - lib/validatable/validations/validates_exclusion_of.rb
86
+ - lib/validatable/validations/validates_format_of.rb
87
+ - lib/validatable/validations/validates_inclusion_of.rb
88
+ - lib/validatable/validations/validates_length_of.rb
89
+ - lib/validatable/validations/validates_numericality_of.rb
90
+ - lib/validatable/validations/validates_presence_of.rb
91
+ - lib/validatable/validations/validates_true_for.rb
92
+ - lib/validatable/validations/validation_base.rb
93
+ - lib/validatable_flymake.rb
94
+ - test/functional/test_validatable.rb
95
+ - test/functional/test_validates_acceptance_of.rb
96
+ - test/functional/test_validates_associated.rb
97
+ - test/functional/test_validates_confirmation_of.rb
98
+ - test/functional/test_validates_each.rb
99
+ - test/functional/test_validates_exclusion_of.rb
100
+ - test/functional/test_validates_format_of.rb
101
+ - test/functional/test_validates_inclusion_of.rb
102
+ - test/functional/test_validates_length_of.rb
103
+ - test/functional/test_validates_numericality_of.rb
104
+ - test/functional/test_validates_presence_of.rb
105
+ - test/functional/test_validates_true_for.rb
106
+ - test/test_helper.rb
107
+ - test/unit/test_errors.rb
108
+ - test/unit/test_understandable.rb
109
+ - test/unit/test_validatable.rb
110
+ - test/unit/test_validates_acceptance_of.rb
111
+ - test/unit/test_validates_associated.rb
112
+ - test/unit/test_validates_confirmation_of.rb
113
+ - test/unit/test_validates_exclusion_of.rb
114
+ - test/unit/test_validates_format_of.rb
115
+ - test/unit/test_validates_inclusion_of.rb
116
+ - test/unit/test_validates_length_of.rb
117
+ - test/unit/test_validates_numericality_of.rb
118
+ - test/unit/test_validates_presence_of.rb
119
+ - test/unit/test_validates_true_for.rb
120
+ - test/unit/test_validation_base.rb
121
+ has_rdoc: true
122
+ homepage: http://github.com/np422/validatable
123
+ licenses: []
124
+ post_install_message:
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ! '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ requirements: []
141
+ rubyforge_project:
142
+ rubygems_version: 1.6.2
143
+ signing_key:
144
+ specification_version: 3
145
+ summary: Validatable is a library for adding validations.
146
+ test_files: []