emoji-validator 0.1.1 → 0.1.6
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 +5 -5
- data/.rubocop.yml +2 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -5
- data/CHANGELOG.md +7 -0
- data/Gemfile +2 -0
- data/README.md +11 -3
- data/Rakefile +2 -0
- data/bin/console +1 -0
- data/emoji-validator.gemspec +9 -8
- data/lib/emoji/validator.rb +3 -1
- data/lib/emoji/validator/no_emoji_anywhere_validator.rb +13 -9
- data/lib/emoji/validator/no_emoji_validator.rb +14 -10
- data/lib/emoji/validator/version.rb +3 -1
- metadata +40 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 77e5689c1a9dbcc2a98331eb86a3996f1d27fa90be980fe94435d7d290d50eaf
|
4
|
+
data.tar.gz: b7e8703e8c1a71022746d40689cdf87d5b61cfc6012f8b4f94f0e3e7fa119f3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c07a8a69f873829e576be7c1f1773d308312a3bc6655b51064b472a88772cbbe7f4e47cf60c8e75b46c41d45391622dcc4f32f03fd3566fb059272543ace8985
|
7
|
+
data.tar.gz: b4bb0fb90087ed636493c02d8fdfee47f515a16a945131e99c0a97af3dc480585642c418443ea274fd1f7eba04dc9cb9bfdcae42058221f44bbb6cc5f25b6bf9
|
data/.rubocop.yml
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.7.1
|
data/.travis.yml
CHANGED
@@ -4,10 +4,10 @@ env:
|
|
4
4
|
- CC_TEST_REPORTER_ID=64987eb47d7d4674b92284c32a53996b153d911e7957f2e7b66eeb4500a2a79e
|
5
5
|
language: ruby
|
6
6
|
rvm:
|
7
|
-
- 2.
|
8
|
-
- 2.
|
9
|
-
- 2.
|
10
|
-
before_install: gem install bundler
|
7
|
+
- 2.5.8
|
8
|
+
- 2.6.6
|
9
|
+
- 2.7.1
|
10
|
+
before_install: gem install bundler
|
11
11
|
before_script:
|
12
12
|
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
13
13
|
- chmod +x ./cc-test-reporter
|
@@ -17,4 +17,4 @@ script:
|
|
17
17
|
- bundle exec rspec
|
18
18
|
- bundle exec rubocop
|
19
19
|
after_script:
|
20
|
-
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
20
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,7 @@ We all love emojis, but sometimes unfortunately we can't handle them. Use these
|
|
8
8
|
|
9
9
|
Supports ActiveModel > 4
|
10
10
|
|
11
|
-
Tested against Ruby 2.
|
11
|
+
Tested against Ruby 2.5, 2.6 and 2.7
|
12
12
|
|
13
13
|
Depends on the [unicode-emoji](https://rubygems.org/gems/unicode-emoji) gem.
|
14
14
|
|
@@ -22,18 +22,24 @@ gem 'emoji-validator'
|
|
22
22
|
|
23
23
|
And then execute:
|
24
24
|
|
25
|
-
|
25
|
+
```bash
|
26
|
+
bundle
|
27
|
+
```
|
26
28
|
|
27
29
|
Or install it yourself as:
|
28
30
|
|
29
|
-
|
31
|
+
```bash
|
32
|
+
gem install emoji-validator
|
33
|
+
```
|
30
34
|
|
31
35
|
## Usage
|
32
36
|
|
33
37
|
Two validators are provided in the gem:
|
34
38
|
|
35
39
|
### Disallow emojis on all attributes for your model
|
40
|
+
|
36
41
|
Use the `NoEmojiAnywhereValidator` to make all attributes of your ActiveRecord class automatically validate against emojis:
|
42
|
+
|
37
43
|
```ruby
|
38
44
|
class Person < ActiveRecord::Base
|
39
45
|
include Emoji::Validator::NoEmojiAnywhereValidator
|
@@ -45,7 +51,9 @@ person.errors.count #2
|
|
45
51
|
```
|
46
52
|
|
47
53
|
### Disallow emojis on single attributes for your model
|
54
|
+
|
48
55
|
Use the `NoEmojiValidator` to make single attributes of your ActiveRecord class validate against emojis:
|
56
|
+
|
49
57
|
```ruby
|
50
58
|
class Person < ApplicationRecord
|
51
59
|
validates :first_name, no_emoji: true
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/emoji-validator.gemspec
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
|
2
|
-
lib = File.expand_path('
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'emoji/validator/version'
|
5
6
|
|
@@ -20,19 +21,19 @@ Gem::Specification.new do |spec|
|
|
20
21
|
end
|
21
22
|
spec.bindir = 'exe'
|
22
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
-
spec.required_ruby_version = '>= 2.
|
24
|
+
spec.required_ruby_version = '>= 2.5.8'
|
24
25
|
spec.require_paths = ['lib']
|
25
26
|
|
26
|
-
spec.add_dependency 'unicode-emoji'
|
27
27
|
spec.add_dependency 'activemodel', '>= 4'
|
28
|
+
spec.add_dependency 'unicode-emoji'
|
28
29
|
|
29
|
-
spec.add_development_dependency 'bundler', '~> 1.15'
|
30
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
31
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
32
30
|
spec.add_development_dependency 'activerecord', '>= 4'
|
33
|
-
spec.add_development_dependency '
|
31
|
+
spec.add_development_dependency 'bundler'
|
34
32
|
spec.add_development_dependency 'codeclimate-test-reporter'
|
35
|
-
spec.add_development_dependency '
|
33
|
+
spec.add_development_dependency 'rake', '>= 12.3.3'
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3'
|
36
35
|
spec.add_development_dependency 'rubocop'
|
36
|
+
spec.add_development_dependency 'simplecov'
|
37
|
+
spec.add_development_dependency 'sqlite3', '~> 1'
|
37
38
|
end
|
38
39
|
# rubocop:enable Metrics/LineLength
|
data/lib/emoji/validator.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'unicode/emoji'
|
2
4
|
require 'active_model'
|
3
5
|
require 'emoji/validator/version'
|
@@ -5,7 +7,7 @@ require 'emoji/validator/no_emoji_anywhere_validator'
|
|
5
7
|
require 'emoji/validator/no_emoji_validator'
|
6
8
|
|
7
9
|
module Emoji
|
8
|
-
# ActiveModel and ActiveRecord validators to prevent
|
10
|
+
# <tt>ActiveModel</tt> and <tt>ActiveRecord</tt> validators to prevent
|
9
11
|
# emojis from being present in your attributes
|
10
12
|
module Validator
|
11
13
|
# Your code goes here...
|
@@ -1,22 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# rubocop:disable Style/AsciiComments
|
2
4
|
module Emoji
|
3
5
|
module Validator
|
4
|
-
# Validates all
|
6
|
+
# Validates all <tt>string</tt> and <tt>text</tt> attributes
|
7
|
+
# of an <tt>ActiveRecord::Base</tt> class
|
5
8
|
# Include it in your model to automatically apply the validation
|
6
|
-
# ```ruby
|
7
|
-
# class Person < ActiveRecord::Base
|
8
|
-
# include Emoji::Validator::NoEmojiAnywhereValidator
|
9
|
-
# end
|
10
9
|
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
10
|
+
# class Person < ActiveRecord::Base
|
11
|
+
# include Emoji::Validator::NoEmojiAnywhereValidator
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# person = Person.new(first_name: "😃", last_name: "😃")
|
15
|
+
# person.valid? #false
|
16
|
+
# person.errors.count #2
|
17
|
+
#
|
15
18
|
module NoEmojiAnywhereValidator
|
16
19
|
def self.included(base)
|
17
20
|
base.class_eval do
|
18
21
|
columns_hash.each do |k, v|
|
19
22
|
next unless %i[string text].include?(v.type)
|
23
|
+
|
20
24
|
validates k, no_emoji: true
|
21
25
|
end
|
22
26
|
end
|
@@ -1,20 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# rubocop:disable Style/AsciiComments
|
2
4
|
module Emoji
|
3
5
|
module Validator
|
4
6
|
# Validate an attribute against emojis
|
5
|
-
# ```ruby
|
6
|
-
# class Person < ApplicationRecord
|
7
|
-
# validates :first_name, no_emoji: true
|
8
|
-
# end
|
9
7
|
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
8
|
+
# class Person < ApplicationRecord
|
9
|
+
# validates :first_name, no_emoji: true
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# person = Person.new(first_name: "John", last_name: "😃")
|
13
|
+
# person.valid? #true
|
14
|
+
# person.first_name = "😃"
|
15
|
+
# person.valid? #false
|
16
|
+
#
|
15
17
|
class NoEmojiValidator < ActiveModel::EachValidator
|
16
18
|
def validate_each(record, attribute, value)
|
17
|
-
return if value.
|
19
|
+
return if value.nil?
|
20
|
+
return if value.match(Unicode::Emoji::REGEX_VALID).nil?
|
21
|
+
|
18
22
|
record.errors.add(attribute, :has_emojis)
|
19
23
|
end
|
20
24
|
end
|
metadata
CHANGED
@@ -1,115 +1,115 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: emoji-validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bernat Rafales
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activemodel
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '4'
|
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
|
-
version: '
|
26
|
+
version: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: unicode-emoji
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: activerecord
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '4'
|
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
|
-
version: '
|
54
|
+
version: '4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
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
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: codeclimate-test-reporter
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
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
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 12.3.3
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 12.3.3
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '3'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '3'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rubocop
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -137,19 +137,19 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: sqlite3
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
145
|
+
version: '1'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
152
|
+
version: '1'
|
153
153
|
description: ActiveModel validator for emojis, powered by the unicode-emoji gem, to
|
154
154
|
ensure your Models do not contain characters you may not be able to handle
|
155
155
|
email:
|
@@ -160,7 +160,10 @@ extra_rdoc_files: []
|
|
160
160
|
files:
|
161
161
|
- ".gitignore"
|
162
162
|
- ".rspec"
|
163
|
+
- ".rubocop.yml"
|
164
|
+
- ".ruby-version"
|
163
165
|
- ".travis.yml"
|
166
|
+
- CHANGELOG.md
|
164
167
|
- CODE_OF_CONDUCT.md
|
165
168
|
- Gemfile
|
166
169
|
- LICENSE.txt
|
@@ -185,15 +188,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
188
|
requirements:
|
186
189
|
- - ">="
|
187
190
|
- !ruby/object:Gem::Version
|
188
|
-
version: 2.
|
191
|
+
version: 2.5.8
|
189
192
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
193
|
requirements:
|
191
194
|
- - ">="
|
192
195
|
- !ruby/object:Gem::Version
|
193
196
|
version: '0'
|
194
197
|
requirements: []
|
195
|
-
|
196
|
-
rubygems_version: 2.6.13
|
198
|
+
rubygems_version: 3.1.2
|
197
199
|
signing_key:
|
198
200
|
specification_version: 4
|
199
201
|
summary: ActiveModel validator for emojis
|