word-count-validator 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/active_model/validations/word_count.rb +5 -4
- data/word-count-validator.gemspec +3 -3
- metadata +5 -4
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ begin
|
|
9
9
|
gem.description = %Q{Provides validates_word_count which lets users validate a string has a minimum / maximum number of words.}
|
10
10
|
gem.email = "sutto@sutto.net"
|
11
11
|
gem.homepage = "http://github.com/Sutto/word-count-validator"
|
12
|
-
gem.authors = ["Darcy Laycock"]
|
12
|
+
gem.authors = ["Darcy Laycock", "Eric Anderson"]
|
13
13
|
end
|
14
14
|
Jeweler::GemcutterTasks.new
|
15
15
|
rescue LoadError
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
@@ -30,13 +30,14 @@ module ActiveModel
|
|
30
30
|
|
31
31
|
def check_validity!
|
32
32
|
raise ArgumentError, "You must provide a valid range for the number of words e.g. 2..100" if options.has_key?(:in)
|
33
|
-
raise ArgumentError, "The min value must respond to to_i" unless options[:min].respond_to?(:to_i)
|
34
|
-
raise ArgumentError, "The max value must respond to to_i" unless options[:max].respond_to?(:to_i)
|
33
|
+
raise ArgumentError, "The min value must respond to to_i or call" unless options[:min].respond_to?(:to_i) || options[:min].respond_to?(:call)
|
34
|
+
raise ArgumentError, "The max value must respond to to_i or call" unless options[:max].respond_to?(:to_i) || options[:max].respond_to?(:call)
|
35
35
|
end
|
36
36
|
|
37
37
|
def validate_each(record, attribute, value)
|
38
|
-
min_words
|
39
|
-
|
38
|
+
min_words = options[:min].respond_to?(:call) ? options[:min][record, attribute, value] : options[:min].to_i
|
39
|
+
max_words = options[:max].respond_to?(:call) ? options[:max][record, attribute, value] : options[:max].to_i
|
40
|
+
value = ActionController::Base.helpers.strip_tags(value || '').gsub(/ | /i, ' ') if options[:strip_tags]
|
40
41
|
value.gsub! /[.(),;:!?%#\$'"_+=\/-]*/, '' if options[:strip_punctuation]
|
41
42
|
count = word_count_for(value)
|
42
43
|
if !options[:skip_min] && count < min_words
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{word-count-validator}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Darcy Laycock"]
|
12
|
-
s.date = %q{2010-12-
|
11
|
+
s.authors = ["Darcy Laycock", "Eric Anderson"]
|
12
|
+
s.date = %q{2010-12-11}
|
13
13
|
s.description = %q{Provides validates_word_count which lets users validate a string has a minimum / maximum number of words.}
|
14
14
|
s.email = %q{sutto@sutto.net}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,21 +1,22 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: word-count-validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Darcy Laycock
|
14
|
+
- Eric Anderson
|
14
15
|
autorequire:
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2010-12-
|
19
|
+
date: 2010-12-11 00:00:00 +08:00
|
19
20
|
default_executable:
|
20
21
|
dependencies: []
|
21
22
|
|