polite_text 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cbfcbe17185f2648936f26afaca7ddacaba70a9901f882c2a517e4baa96f2818
4
- data.tar.gz: 9bbfdbc8729c77a9d008a6a70836785ea467def92219a204e72472a8973373f4
3
+ metadata.gz: 975a036dc2224dc4f4511c9bb9c10e2cebf2b5e9ff53c5a832dbc1a8321ab885
4
+ data.tar.gz: b64fc451921d3d344ec50e1c406718abc36290a55ade06181390adf877b8e6db
5
5
  SHA512:
6
- metadata.gz: 2f3d14c0213deac733467cf9f920ac03246453a88f04703db4c2fd3244e0fe1e6564366c62411d8a000dcf9df355b72717c09db24396ff5c4d6b7f877996096e
7
- data.tar.gz: 6a2db207e7522e085a77342abe9019b3334462982be396c57fa1ab19e2c9f97e1878bdb51b3f8873c0dc36badb5c336108ffeeb45d3cd180c0213b020fb5445f
6
+ metadata.gz: 90cf022213168d75beec317b0e4b2e2eb50e62d3036a27c29c135efed9b2068d15c91a92de09f125dd3bcec61755e0e228d45c2a1d4ac5fd55de56835dd75ca4
7
+ data.tar.gz: bc51b523c94300e81e2243c839bdf8e54a570f25e6b159d11c58994ac2d304adf10c346161d3024af721fb90e56dce542abee6a46410c5e56cb261e3e3de72bd
data/.gitignore CHANGED
@@ -9,3 +9,12 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+
13
+ # IDE
14
+ /.idea
15
+ .idea/workspace.xml
16
+ .rakeTasks
17
+ .generators
18
+
19
+ # Gem
20
+ *.gem
data/Gemfile CHANGED
@@ -2,6 +2,3 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in polite_text.gemspec
4
4
  gemspec
5
-
6
- gem "rake", "~> 12.0"
7
- gem "rspec", "~> 3.0"
@@ -0,0 +1,46 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ polite_text (0.1.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ concurrent-ruby (1.1.7)
10
+ diff-lcs (1.4.4)
11
+ docile (1.3.2)
12
+ faker (2.14.0)
13
+ i18n (>= 1.6, < 2)
14
+ i18n (1.8.5)
15
+ concurrent-ruby (~> 1.0)
16
+ rake (13.0.1)
17
+ rspec (3.10.0)
18
+ rspec-core (~> 3.10.0)
19
+ rspec-expectations (~> 3.10.0)
20
+ rspec-mocks (~> 3.10.0)
21
+ rspec-core (3.10.0)
22
+ rspec-support (~> 3.10.0)
23
+ rspec-expectations (3.10.0)
24
+ diff-lcs (>= 1.2.0, < 2.0)
25
+ rspec-support (~> 3.10.0)
26
+ rspec-mocks (3.10.0)
27
+ diff-lcs (>= 1.2.0, < 2.0)
28
+ rspec-support (~> 3.10.0)
29
+ rspec-support (3.10.0)
30
+ simplecov (0.19.1)
31
+ docile (~> 1.1)
32
+ simplecov-html (~> 0.11)
33
+ simplecov-html (0.12.3)
34
+
35
+ PLATFORMS
36
+ ruby
37
+
38
+ DEPENDENCIES
39
+ faker (~> 2.14)
40
+ polite_text!
41
+ rake (~> 13.0, >= 13.0.1)
42
+ rspec (~> 3.10)
43
+ simplecov (~> 0.19.1)
44
+
45
+ BUNDLED WITH
46
+ 2.1.4
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
1
  # PoliteText
2
+ [![Gem Version](https://badge.fury.io/rb/polite_text.svg)](https://badge.fury.io/rb/polite_text)
3
+ [![security](https://hakiri.io/github/OpenGems/polite_text/master.svg)](https://hakiri.io/github/OpenGems/polite_text/master)
4
+ ![Gem](https://img.shields.io/gem/dt/polite_text)
2
5
 
3
6
  PoliteText is making your users' input polite 👀
4
7
 
@@ -50,7 +53,6 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/OpenGe
50
53
  This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
51
54
 
52
55
  ### Todo 💪
53
- - [ ] Testing
54
56
  - [ ] Allow users to add their own swear words list
55
57
  - [ ] Allow users to remove swear words from the default list
56
58
  - [ ] Manage locales with I18N
@@ -1,18 +1,17 @@
1
1
  require 'polite_text/base'
2
- require 'polite_text/swear_words_scanner'
3
- require 'polite_text/swear_words_cleaner'
2
+ require 'polite_text/text_scanner'
3
+ require 'polite_text/text_cleaner'
4
4
 
5
5
  module PoliteText
6
6
  class Error < StandardError; end
7
7
 
8
8
  class << self
9
- # Replace swear words in a text. Can provide optional arg to replace by something.
10
9
  def be_polite!(text)
11
- PoliteText::SwearWordsCleaner.new(text).clean
10
+ PoliteText::TextCleaner.new(text).clean!
12
11
  end
13
12
 
14
13
  def is_polite?(text)
15
- PoliteText::SwearWordsScanner.new(text).match_swear_word?
14
+ PoliteText::TextScanner.new(text).match_swear_word?
16
15
  end
17
16
  end
18
17
  end
@@ -1,3 +1,5 @@
1
+ require 'yaml'
2
+
1
3
  module PoliteText
2
4
  class Base
3
5
  def swear_words
@@ -0,0 +1,21 @@
1
+ module PoliteText
2
+ class TextCleaner < Base
3
+ attr_reader :text
4
+
5
+ def initialize(text)
6
+ @text = text.to_s
7
+
8
+ validate_text!
9
+ end
10
+
11
+ def clean!
12
+ text.gsub!(swear_words, '***')
13
+ end
14
+
15
+ private
16
+
17
+ def validate_text!
18
+ raise ArgumentError.new('The text can not be empty') if @text.empty?
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module PoliteText
2
+ class TextScanner < Base
3
+ attr_reader :text
4
+
5
+ def initialize(text)
6
+ @text = text.to_s
7
+
8
+ validate_text!
9
+ end
10
+
11
+ def match_swear_word?
12
+ !@text.match?(swear_words)
13
+ end
14
+
15
+ private
16
+
17
+ def validate_text!
18
+ raise ArgumentError.new('The text can not be empty') if @text.empty?
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module PoliteText
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -24,8 +24,9 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ['lib']
26
26
 
27
- # TODO: Add testing
28
- #spec.add_development_dependency 'coveralls', '~> 0.8'
29
- #spec.add_development_dependency 'rspec-rails', '~> 4.0.0'
30
- #spec.add_development_dependency 'simplecov', '~> 0.16'
27
+ # TODO: Add testing + coverage
28
+ spec.add_development_dependency 'rspec', '~> 3.10'
29
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
30
+ spec.add_development_dependency 'simplecov', '~> 0.19.1'
31
+ spec.add_development_dependency 'faker', '~> 2.14'
31
32
  end
metadata CHANGED
@@ -1,15 +1,77 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polite_text
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - DumasOlivier
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-04 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2020-11-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '13.0'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 13.0.1
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '13.0'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 13.0.1
47
+ - !ruby/object:Gem::Dependency
48
+ name: simplecov
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.19.1
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.19.1
61
+ - !ruby/object:Gem::Dependency
62
+ name: faker
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '2.14'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '2.14'
13
75
  description: Replace swear words from users' inputs or be notified and execute your
14
76
  own callbacks.
15
77
  email:
@@ -22,6 +84,7 @@ files:
22
84
  - ".rspec"
23
85
  - ".travis.yml"
24
86
  - Gemfile
87
+ - Gemfile.lock
25
88
  - LICENSE.txt
26
89
  - README.md
27
90
  - Rakefile
@@ -30,10 +93,9 @@ files:
30
93
  - lib/locales/en.yml
31
94
  - lib/polite_text.rb
32
95
  - lib/polite_text/base.rb
33
- - lib/polite_text/swear_words_cleaner.rb
34
- - lib/polite_text/swear_words_scanner.rb
96
+ - lib/polite_text/text_cleaner.rb
97
+ - lib/polite_text/text_scanner.rb
35
98
  - lib/polite_text/version.rb
36
- - polite_text-0.1.0.gem
37
99
  - polite_text.gemspec
38
100
  homepage: https://github.com/OpenGems/polite_text
39
101
  licenses:
@@ -1,15 +0,0 @@
1
- module PoliteText
2
- class SwearWordsCleaner < Base
3
- attr_reader :text
4
-
5
- def initialize(text)
6
- return '' if text.nil? || text.empty?
7
-
8
- @text = text
9
- end
10
-
11
- def clean
12
- text.gsub!(swear_words, '***')
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- module PoliteText
2
- class SwearWordsScanner < Base
3
- attr_reader :text
4
-
5
- def initialize(text)
6
- return false if text.nil? || text.empty?
7
-
8
- @text = text
9
- end
10
-
11
- def match_swear_word?
12
- !@text.match?(swear_words)
13
- end
14
- end
15
- end
Binary file