jnunemaker-validatable 1.8.3 → 1.8.4
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 +11 -6
- data/lib/validatable.rb +8 -2
- data/lib/validatable/errors.rb +13 -0
- data/test/test_helper.rb +1 -7
- data/test/unit/test_errors.rb +6 -0
- metadata +65 -7
data/Rakefile
CHANGED
@@ -1,18 +1,23 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
3
|
|
4
|
-
require File.
|
4
|
+
require File.expand_path('../lib/validatable', __FILE__)
|
5
5
|
|
6
6
|
require 'jeweler'
|
7
7
|
Jeweler::Tasks.new do |gem|
|
8
|
-
gem.name =
|
9
|
-
gem.summary =
|
10
|
-
gem.description =
|
11
|
-
gem.email =
|
12
|
-
gem.homepage =
|
8
|
+
gem.name = 'jnunemaker-validatable'
|
9
|
+
gem.summary = 'Validatable is a library for adding validations.'
|
10
|
+
gem.description = 'Validatable is a library for adding validations.'
|
11
|
+
gem.email = 'nunemaker@gmail.com'
|
12
|
+
gem.homepage = 'http://github.com/jnunemaker/validatable'
|
13
13
|
gem.authors = ['Jay Fields', 'John Nunemaker']
|
14
14
|
gem.files = FileList['lib/**/*.rb', '[A-Z]*', 'test/**/*'].to_a
|
15
15
|
gem.version = Validatable::Version
|
16
|
+
|
17
|
+
gem.add_dependency('activesupport', '>= 2.3.4')
|
18
|
+
gem.add_development_dependency('mocha', '>= 0.9.8')
|
19
|
+
gem.add_development_dependency('dust')
|
20
|
+
gem.add_development_dependency('expectations')
|
16
21
|
end
|
17
22
|
|
18
23
|
Jeweler::GemcutterTasks.new
|
data/lib/validatable.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
+
# gem 'activesupport', '2.3.5'
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'active_support/core_ext/object/blank' # newer versions of active_support (>= 3.0)
|
5
|
+
rescue LoadError => e
|
6
|
+
require 'active_support/all' # support older versions of active_support (<= 2.3.5)
|
7
|
+
end
|
1
8
|
require 'forwardable'
|
2
|
-
require 'active_support/all'
|
3
9
|
|
4
10
|
require 'validatable/object_extension'
|
5
11
|
require 'validatable/errors'
|
@@ -24,5 +30,5 @@ require 'validatable/validations/validates_each'
|
|
24
30
|
require 'validatable/validations/validates_associated'
|
25
31
|
|
26
32
|
module Validatable
|
27
|
-
Version = '1.8.
|
33
|
+
Version = '1.8.4'
|
28
34
|
end
|
data/lib/validatable/errors.rb
CHANGED
@@ -19,6 +19,19 @@ module Validatable
|
|
19
19
|
!@errors[attribute.to_sym].nil?
|
20
20
|
end
|
21
21
|
|
22
|
+
# Adds an error to the base object instead of any particular attribute. This is used
|
23
|
+
# to report errors that don't tie to any specific attribute, but rather to the object
|
24
|
+
# as a whole. These error messages don't get prepended with any field name when iterating
|
25
|
+
# with +each_full+, so they should be complete sentences.
|
26
|
+
def add_to_base(msg)
|
27
|
+
add(:base, msg)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Returns errors assigned to the base object through +add_to_base+ according to the normal rules of <tt>on(attribute)</tt>.
|
31
|
+
def on_base
|
32
|
+
on(:base)
|
33
|
+
end
|
34
|
+
|
22
35
|
# call-seq: on(attribute)
|
23
36
|
#
|
24
37
|
# * Returns nil, if no errors are associated with the specified +attribute+.
|
data/test/test_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
+
require 'set'
|
1
2
|
require 'test/unit'
|
2
3
|
require 'mocha'
|
3
4
|
require 'dust'
|
4
|
-
require 'set'
|
5
5
|
require 'expectations'
|
6
6
|
|
7
7
|
require File.expand_path(File.dirname(__FILE__) + '/../lib/validatable')
|
@@ -19,12 +19,6 @@ class << Test::Unit::TestCase
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
class Test::Unit::TestCase
|
23
|
-
def assert_array_equal a, b
|
24
|
-
assert_equal Set.new(a), Set.new(b)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
22
|
class Array
|
29
23
|
def to_blank_options_hash
|
30
24
|
self.inject({}) {|hash, value| hash[value] = nil; hash }
|
data/test/unit/test_errors.rb
CHANGED
@@ -7,6 +7,12 @@ Expectations do
|
|
7
7
|
errors.on(:attribute)
|
8
8
|
end
|
9
9
|
|
10
|
+
expect "message" do
|
11
|
+
errors = Validatable::Errors.new
|
12
|
+
errors.add_to_base("message")
|
13
|
+
errors.on_base
|
14
|
+
end
|
15
|
+
|
10
16
|
expect ["message"] do
|
11
17
|
errors = Validatable::Errors.new
|
12
18
|
errors.add(:attribute, "message")
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jnunemaker-validatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 8
|
8
|
+
- 4
|
9
|
+
version: 1.8.4
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Jay Fields
|
@@ -10,10 +15,61 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2010-
|
18
|
+
date: 2010-04-18 00:00:00 -04:00
|
14
19
|
default_executable:
|
15
|
-
dependencies:
|
16
|
-
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: activesupport
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 3
|
31
|
+
- 4
|
32
|
+
version: 2.3.4
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: mocha
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
segments:
|
43
|
+
- 0
|
44
|
+
- 9
|
45
|
+
- 8
|
46
|
+
version: 0.9.8
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: dust
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
segments:
|
57
|
+
- 0
|
58
|
+
version: "0"
|
59
|
+
type: :development
|
60
|
+
version_requirements: *id003
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: expectations
|
63
|
+
prerelease: false
|
64
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
version: "0"
|
71
|
+
type: :development
|
72
|
+
version_requirements: *id004
|
17
73
|
description: Validatable is a library for adding validations.
|
18
74
|
email: nunemaker@gmail.com
|
19
75
|
executables: []
|
@@ -88,18 +144,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
88
144
|
requirements:
|
89
145
|
- - ">="
|
90
146
|
- !ruby/object:Gem::Version
|
147
|
+
segments:
|
148
|
+
- 0
|
91
149
|
version: "0"
|
92
|
-
version:
|
93
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
151
|
requirements:
|
95
152
|
- - ">="
|
96
153
|
- !ruby/object:Gem::Version
|
154
|
+
segments:
|
155
|
+
- 0
|
97
156
|
version: "0"
|
98
|
-
version:
|
99
157
|
requirements: []
|
100
158
|
|
101
159
|
rubyforge_project:
|
102
|
-
rubygems_version: 1.3.
|
160
|
+
rubygems_version: 1.3.6
|
103
161
|
signing_key:
|
104
162
|
specification_version: 3
|
105
163
|
summary: Validatable is a library for adding validations.
|