subset_validator 0.4.1 → 0.4.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.
- data/VERSION +1 -1
- data/lib/subset_validator.rb +28 -0
- data/subset_validator.gemspec +1 -1
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.2
|
data/lib/subset_validator.rb
CHANGED
@@ -1,6 +1,34 @@
|
|
1
1
|
class SubsetValidator < ActiveModel::EachValidator
|
2
2
|
@@error_message = 'contains an invalid value'
|
3
3
|
|
4
|
+
# Validate that the specified attribute's value is a subset of another set.
|
5
|
+
#
|
6
|
+
# Note that this works on more than just arrays, too. It'll work on anything, provided that:
|
7
|
+
# * the attribute's value can be anything that responds to <i>#each</i> ;
|
8
|
+
# * the set of valid values can be anything that responds to <i>#include?</i> .
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# class User
|
12
|
+
# include ActiveModel::Validations
|
13
|
+
#
|
14
|
+
# attr_accessor :roles
|
15
|
+
#
|
16
|
+
# @@valid_roles = %w(admin manager developer)
|
17
|
+
#
|
18
|
+
# validates :roles, :subset => {:in => @@valid_roles}
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# u = User.new
|
22
|
+
# u.roles = %w(admin something_else)
|
23
|
+
#
|
24
|
+
# u.valid?
|
25
|
+
# => false
|
26
|
+
# u.errors
|
27
|
+
# => {:roles=>["contains an invalid value"]}
|
28
|
+
#
|
29
|
+
# u.roles = %w(admin)
|
30
|
+
# u.valid?
|
31
|
+
# => true
|
4
32
|
def validate_each(record, attribute, value)
|
5
33
|
unless options[:in].respond_to? :include?
|
6
34
|
raise ArgumentError, 'An object with the method include? must be supplied as the :in option of the configuration hash'
|
data/subset_validator.gemspec
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 2
|
9
|
+
version: 0.4.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Nick Hoffman
|
@@ -113,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
114
114
|
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
hash:
|
116
|
+
hash: 479483101
|
117
117
|
segments:
|
118
118
|
- 0
|
119
119
|
version: "0"
|