word-count-validator 0.2.0 → 0.2.1
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/README.rdoc +6 -0
- data/VERSION +1 -1
- data/lib/active_model/validations/word_count.rb +3 -1
- data/word-count-validator.gemspec +2 -2
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
A simple ActiveModel validator for requiring a model has a word count in a specific range.
|
4
4
|
Uses a very basic method for generating the count (scans for \w+)
|
5
5
|
|
6
|
+
== Contributions
|
7
|
+
|
8
|
+
With thanks to the following people:
|
9
|
+
|
10
|
+
* Eric Anderson (github)[https://github.com/eric1234] - Contributed support for the +:strip_tags+ option and a bunch of bug fixes.
|
11
|
+
|
6
12
|
== Note on Patches/Pull Requests
|
7
13
|
|
8
14
|
* Fork the project.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
@@ -17,6 +17,7 @@ module ActiveModel
|
|
17
17
|
options[:max] ||= 100
|
18
18
|
options[:min] ||= 0
|
19
19
|
options[:strip_tags] = true unless options.has_key?(:strip_tags)
|
20
|
+
options[:strip_punctuation] = true unless options.has_key?(:strip_punctuation)
|
20
21
|
if options.has_key?(:in)
|
21
22
|
range = options[:in]
|
22
23
|
if range.present? && range.respond_to?(:min) && range.respond_to?(:max)
|
@@ -35,7 +36,8 @@ module ActiveModel
|
|
35
36
|
|
36
37
|
def validate_each(record, attribute, value)
|
37
38
|
min_words, max_words = options[:min].to_i, options[:max].to_i
|
38
|
-
value = ActionController::Base.helpers.strip_tags
|
39
|
+
value = ActionController::Base.helpers.strip_tags(value).gsub(/ | /i, ' ') if options[:strip_tags]
|
40
|
+
value.gsub! /[.(),;:!?%#\$'"_+=\/-]*/, '' if options[:strip_punctuation]
|
39
41
|
count = word_count_for(value)
|
40
42
|
if !options[:skip_min] && count < min_words
|
41
43
|
record.errors.add attribute, :too_few_words, options_for(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.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Darcy Laycock"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-12-01}
|
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,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: word-count-validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Darcy Laycock
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-12-01 00:00:00 +08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|