username_not_reserved_validator 1.0.5 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65ba71714cbad212b9106e2ddd61c40de0c2881a
4
- data.tar.gz: 820534e4b31e9e486d898fd6b86ce7dc11f872c0
3
+ metadata.gz: 8b1699b331aa6025c9136c997b095910a04fff0d
4
+ data.tar.gz: f990816105af9f43cfa5bd01e4fa289d571bc879
5
5
  SHA512:
6
- metadata.gz: d192c402f7dedcd44d9583b5c2c042445c7940b523c6b9df4bd8bfc4685289cd3cf870a351ddc2a8cb4f3ace44e1114bd60937a030d38b9f6b5812644e58b18a
7
- data.tar.gz: cc8ab773a0c6c87be3a87ff85572ede50fe9336bded0cf25d72b9ef6aba1a9c27b260547aa878291e8ddb237114dcb16d062f2d5a409761f1da7eaa196919330
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
- class UsernameNotReservedValidator < ActiveModel::EachValidator
2
- require 'username_not_reserved_validator/reserved_names'
3
-
4
- @@default_options = { case_insensitive: true }
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
@@ -0,0 +1,3 @@
1
+ module UsernameNotReservedValidator
2
+ VERSION = '1.2.0'
3
+ end
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'rspec'
3
3
  require 'active_model'
4
+ require 'pry-byebug'
4
5
 
5
6
  require 'coveralls'
6
7
  Coveralls.wear!
@@ -161,8 +161,4 @@ describe UsernameNotReservedValidator do
161
161
  end
162
162
  end
163
163
  end
164
-
165
- describe '.default_options' do
166
- it { expect(described_class.default_options).to eq( { case_insensitive: true } ) }
167
- end
168
164
  end
@@ -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 = '1.0.5'
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.5
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-12 00:00:00.000000000 Z
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.1
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.