username_not_reserved_validator 1.0.5 → 1.2.0
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.
- checksums.yaml +4 -4
- data/lib/active_model/validations/username_not_reserved_validator.rb +10 -0
- data/lib/username_not_reserved_validator.rb +4 -33
- data/lib/username_not_reserved_validator/validator.rb +30 -0
- data/lib/username_not_reserved_validator/version.rb +3 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/username_not_reserved_validator_spec.rb +0 -4
- data/username_not_reserved_validator.gemspec +3 -1
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b1699b331aa6025c9136c997b095910a04fff0d
|
4
|
+
data.tar.gz: f990816105af9f43cfa5bd01e4fa289d571bc879
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf5f8828445a71ff1fa20eab75857cd2c062693c2240b1c70d3bdb45e28d6aef17a31fc4b7ddf22e59f1231fb72d174b773dc7a0157cf933e6e91f83a9fef280
|
7
|
+
data.tar.gz: 3072ebbb5117c4f1136769567d5013092ba312139cd37f32f10dbc49d3498aee83ecd9921ff5a82082e4cc10512a8dc2e99b7e76f5288eff1ddab6721878acbe
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module ActiveModel::Validations
|
2
|
+
class UsernameNotReservedValidator < ActiveModel::EachValidator
|
3
|
+
def validate_each(record, attribute, value)
|
4
|
+
validator = ::UsernameNotReservedValidator::Validator.new(value, self.options)
|
5
|
+
unless validator.valid?
|
6
|
+
record.errors.add(attribute, (options[:message] || :invalid))
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -1,33 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
def self.default_options
|
7
|
-
@@default_options
|
8
|
-
end
|
9
|
-
|
10
|
-
def validate_each(record, attribute, value)
|
11
|
-
options = @@default_options.merge(self.options)
|
12
|
-
|
13
|
-
# patch for historical typo
|
14
|
-
if options.key?(:case_insencitive)
|
15
|
-
options[:case_insensitive] = options[:case_insencitive]
|
16
|
-
end
|
17
|
-
|
18
|
-
additional_reserved_names = options[:additional_reserved_names] || []
|
19
|
-
words = ReservedNames.list + additional_reserved_names
|
20
|
-
words += words.map(&:pluralize)
|
21
|
-
|
22
|
-
if options[:case_insensitive]
|
23
|
-
words.map!(&:downcase)
|
24
|
-
username = value.downcase
|
25
|
-
else
|
26
|
-
username = value
|
27
|
-
end
|
28
|
-
|
29
|
-
if words.include?(username)
|
30
|
-
record.errors.add(attribute, (options[:message] || :invalid))
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
1
|
+
require 'username_not_reserved_validator/version'
|
2
|
+
require 'username_not_reserved_validator/validator'
|
3
|
+
require 'username_not_reserved_validator/reserved_names'
|
4
|
+
require 'active_model/validations/username_not_reserved_validator' if defined?(ActiveModel)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module UsernameNotReservedValidator
|
2
|
+
class Validator
|
3
|
+
DEFAULT_OPTIONS = { case_insensitive: true }
|
4
|
+
|
5
|
+
def initialize(username, options = {})
|
6
|
+
@username = username
|
7
|
+
@options = DEFAULT_OPTIONS.merge(options)
|
8
|
+
|
9
|
+
# patch for historical typo
|
10
|
+
if @options.key?(:case_insencitive)
|
11
|
+
@options[:case_insensitive] = @options[:case_insencitive]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def valid?
|
16
|
+
additional_reserved_names = @options[:additional_reserved_names] || []
|
17
|
+
words = ReservedNames.list + additional_reserved_names
|
18
|
+
words += words.map(&:pluralize)
|
19
|
+
|
20
|
+
if @options[:case_insensitive]
|
21
|
+
words.map!(&:downcase)
|
22
|
+
username = @username.downcase
|
23
|
+
else
|
24
|
+
username = @username
|
25
|
+
end
|
26
|
+
|
27
|
+
words.include?(username).!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
lib = File.expand_path('../lib', __FILE__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'username_not_reserved_validator/version'
|
3
4
|
|
4
5
|
Gem::Specification.new do |spec|
|
5
6
|
spec.name = 'username_not_reserved_validator'
|
6
|
-
spec.version =
|
7
|
+
spec.version = UsernameNotReservedValidator::VERSION
|
7
8
|
spec.authors = ['SHIOYA, Hiromu']
|
8
9
|
spec.email = ['kwappa.856@gmail.com']
|
9
10
|
spec.summary = 'validates that username is not included in reserved list.'
|
@@ -20,5 +21,6 @@ Gem::Specification.new do |spec|
|
|
20
21
|
spec.add_development_dependency 'bundler'
|
21
22
|
spec.add_development_dependency 'rake'
|
22
23
|
spec.add_development_dependency 'rspec'
|
24
|
+
spec.add_development_dependency 'pry-byebug'
|
23
25
|
spec.add_development_dependency 'coveralls'
|
24
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: username_not_reserved_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SHIOYA, Hiromu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry-byebug
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: coveralls
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,8 +108,11 @@ files:
|
|
94
108
|
- LICENSE.txt
|
95
109
|
- README.md
|
96
110
|
- Rakefile
|
111
|
+
- lib/active_model/validations/username_not_reserved_validator.rb
|
97
112
|
- lib/username_not_reserved_validator.rb
|
98
113
|
- lib/username_not_reserved_validator/reserved_names.rb
|
114
|
+
- lib/username_not_reserved_validator/validator.rb
|
115
|
+
- lib/username_not_reserved_validator/version.rb
|
99
116
|
- spec/spec_helper.rb
|
100
117
|
- spec/username_not_reserved_validator_spec.rb
|
101
118
|
- username_not_reserved_validator.gemspec
|
@@ -119,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
136
|
version: '0'
|
120
137
|
requirements: []
|
121
138
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.5.
|
139
|
+
rubygems_version: 2.5.2
|
123
140
|
signing_key:
|
124
141
|
specification_version: 4
|
125
142
|
summary: validates that username is not included in reserved list.
|