username_not_reserved_validator 1.0.2 → 1.0.3

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: 28d4d936419d5ab68478ec81a28ab74fa212c8f9
4
- data.tar.gz: 0b7a2099d2601440e5696b9401c0543eb7e0cc35
3
+ metadata.gz: e74167cc482f88531e7a5ac8bd378762e4e2adc8
4
+ data.tar.gz: c8c506c99a48c70b1ec6c2285c3ac513527b6d50
5
5
  SHA512:
6
- metadata.gz: 01f38353cd067eaff856dde5174d42acc8bafda64cd2ede5b07e8e336c87d122cbb249ed477f3b121e73f14ad6707f1a9dd994c19849c298e52e5b3981d6cbf5
7
- data.tar.gz: 36381bc0aeabf69ea0536241f11356ad57764e1be5359568c132625a81f9dd55daf37e6e9e2c75ace81b080cbfe55fec9f41bf51be0cd71b6e9aebd7bbba1e3d
6
+ metadata.gz: b4299f46607a67099e13a11c7c248822765bdfc71e5142aee1499fea5f164274971cbba062d60983cbdde2da3c15ff5b461e53c897cf03ae65c2feaceba2c6f8
7
+ data.tar.gz: 7caed99110a1a0376d7d73d8508bab15383d95096e9fe25afc09e08fa8e016524bbe60e13b5dc996a9a2fe11f2a803f02fa09971e9b47f2a98f41060d1ecdf5d
data/.travis.yml CHANGED
@@ -2,4 +2,4 @@ language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
4
  - 2.1.5
5
- - 2.2.1
5
+ - 2.2.3
data/README.md CHANGED
@@ -47,8 +47,9 @@ end
47
47
 
48
48
  * `additional_reserved_names` (Array of String / default: `[]`)
49
49
  * specify additional reserved names
50
- * `case_insencitve` (Boolean / default: `true`)
50
+ * `case_insensitive` (Boolean / default: `true`)
51
51
  * if set to `false`, comparison is case sencitive
52
+ * also key `case_insencitive` will be accepted due to historical typo
52
53
  * `message` (Symbol / default: `:invalid`)
53
54
  * specify custom key of error message
54
55
 
@@ -59,7 +60,7 @@ class User < ActiveRecord::Base
59
60
  validates(:name,
60
61
  username_not_reserved: {
61
62
  additional_reserved_names: %w[foo bar],
62
- case_insencitve: true,
63
+ case_insensitive: true,
63
64
  message: :reserved_username
64
65
  }
65
66
  )
@@ -1,7 +1,7 @@
1
1
  class UsernameNotReservedValidator < ActiveModel::EachValidator
2
2
  require 'username_not_reserved_validator/reserved_names'
3
3
 
4
- @@default_options = { case_insencitive: true }
4
+ @@default_options = { case_insensitive: true }
5
5
 
6
6
  def self.default_options
7
7
  @@default_options
@@ -9,11 +9,17 @@ class UsernameNotReservedValidator < ActiveModel::EachValidator
9
9
 
10
10
  def validate_each(record, attribute, value)
11
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
+
12
18
  additional_reserved_names = options[:additional_reserved_names] || []
13
19
  words = ReservedNames.list + additional_reserved_names
14
20
  words += words.map(&:pluralize)
15
21
 
16
- if options[:case_insencitive]
22
+ if options[:case_insensitive]
17
23
  words.map!(&:downcase)
18
24
  username = value.downcase
19
25
  else
data/spec/spec_helper.rb CHANGED
@@ -33,6 +33,10 @@ class WithCaseInsencitiveValidationUser < TestModel
33
33
  validates :name, username_not_reserved: { case_insencitive: false }
34
34
  end
35
35
 
36
+ class WithCaseInsensitiveValidationUser < TestModel
37
+ validates :name, username_not_reserved: { case_insensitive: false }
38
+ end
39
+
36
40
  class WithAdditionalReservedNamesValidationUser < TestModel
37
41
  validates :name, username_not_reserved: { additional_reserved_names: %w[additional_reserved_username] }
38
42
  end
@@ -4,8 +4,8 @@ describe UsernameNotReservedValidator do
4
4
  let(:reserved_usernames) { UsernameNotReservedValidator::ReservedNames.list }
5
5
  let(:valid_username) { 'valid_username' }
6
6
  let(:invalid_username) { 'account' }
7
- let(:invalid_camelized_username) { reserved_usernames.first(30).sample.camelize }
8
- let(:invalid_pluralized_username) { reserved_usernames.first(30).sample.pluralize }
7
+ let(:invalid_camelized_username) { invalid_username.camelize }
8
+ let(:invalid_pluralized_username) { invalid_username.pluralize }
9
9
  let(:invalid_additional_username) { 'additional_reserved_username' }
10
10
 
11
11
  describe '#validate_each' do
@@ -117,26 +117,38 @@ describe UsernameNotReservedValidator do
117
117
  end
118
118
 
119
119
  describe 'model with case insencitive validation' do
120
- subject(:user) { WithCaseInsencitiveValidationUser.new(name: username) }
120
+ shared_examples_for 'rejects username without case validation' do
121
+ subject(:user) { model_class.new(name: username) }
121
122
 
122
- context 'with valid username' do
123
- let(:username) { valid_username }
124
- include_examples 'accepts username'
125
- end
123
+ context 'with valid username' do
124
+ let(:username) { valid_username }
125
+ include_examples 'accepts username'
126
+ end
126
127
 
127
- context 'with invalid username' do
128
- let(:username) { invalid_username }
129
- include_examples 'rejects username'
128
+ context 'with invalid username' do
129
+ let(:username) { invalid_username }
130
+ include_examples 'rejects username'
131
+ end
132
+
133
+ context 'with invalid camelized username' do
134
+ let(:username) { invalid_camelized_username }
135
+ include_examples 'accepts username'
136
+ end
137
+
138
+ context 'with invalid pluralized username' do
139
+ let(:username) { invalid_pluralized_username }
140
+ include_examples 'rejects username'
141
+ end
130
142
  end
131
143
 
132
- context 'with invalid camelized username' do
133
- let(:username) { invalid_camelized_username }
134
- include_examples 'accepts username'
144
+ context 'WithCaseInsensitiveValidationUser' do
145
+ let(:model_class) { WithCaseInsensitiveValidationUser }
146
+ include_examples 'rejects username without case validation'
135
147
  end
136
148
 
137
- context 'with invalid pluralized username' do
138
- let(:username) { invalid_pluralized_username }
139
- include_examples 'rejects username'
149
+ context 'WithCaseInsencitiveValidationUser' do
150
+ let(:model_class) { WithCaseInsencitiveValidationUser }
151
+ include_examples 'rejects username without case validation'
140
152
  end
141
153
  end
142
154
 
@@ -151,6 +163,6 @@ describe UsernameNotReservedValidator do
151
163
  end
152
164
 
153
165
  describe '.default_options' do
154
- it { expect(described_class.default_options).to eq( { case_insencitive: true } ) }
166
+ it { expect(described_class.default_options).to eq( { case_insensitive: true } ) }
155
167
  end
156
168
  end
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "username_not_reserved_validator"
7
- spec.version = "1.0.2"
7
+ spec.version = "1.0.3"
8
8
  spec.authors = ["SHIOYA, Hiromu"]
9
9
  spec.email = ["kwappa.856@gmail.com"]
10
10
  spec.summary = "validates that username is not included in reserved list."
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: username_not_reserved_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - SHIOYA, Hiromu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-22 00:00:00.000000000 Z
11
+ date: 2015-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: coveralls
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  description: validates that username is not included in reserved list.
@@ -87,9 +87,9 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - .coveralls.yml
91
- - .gitignore
92
- - .travis.yml
90
+ - ".coveralls.yml"
91
+ - ".gitignore"
92
+ - ".travis.yml"
93
93
  - Gemfile
94
94
  - LICENSE.txt
95
95
  - README.md
@@ -109,17 +109,17 @@ require_paths:
109
109
  - lib
110
110
  required_ruby_version: !ruby/object:Gem::Requirement
111
111
  requirements:
112
- - - '>='
112
+ - - ">="
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
115
  required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - '>='
117
+ - - ">="
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0'
120
120
  requirements: []
121
121
  rubyforge_project:
122
- rubygems_version: 2.0.14
122
+ rubygems_version: 2.4.5.1
123
123
  signing_key:
124
124
  specification_version: 4
125
125
  summary: validates that username is not included in reserved list.