word_censored 0.1.5 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0932181ac39410c23a568d769d0b89520ff01453c7d9e66598cee39b12f3a71d'
4
- data.tar.gz: d8cc3b44eff6738b2d89a1fcecf0ffb656a68d4c645e7659ac72e3632449acbf
3
+ metadata.gz: b17b8b91e3c24e639da19e459488f3043e6ae8066fee0089cfe4db3119d816a5
4
+ data.tar.gz: 3aa62fc7bbb38ce03b00ba534bc55073f37fa3475e3434b5daf4eb74c7f6f88b
5
5
  SHA512:
6
- metadata.gz: 4828a575ba1e3e223070233d711be41646cdba52692105c12b8ed59d7e0e2e52269a6f32469e1b2d1b3208dfed117aeaaee9bfd6c0c752accb1d9af9b55b98ab
7
- data.tar.gz: 4d8978e95932b7bef5a2eeab520984b688e0a828e818087947762f33c740e452f27257561b1553adc7228a50d6ca512c71d2601f69cfcc173cf844cf26dafa82
6
+ metadata.gz: '0972d894d85d6a8cf7dc338b6d28b714f6303b43ffd90cfa912ebbe62582c0d704537b3ff503fb0715d85216deab8f4129485b5e8325cc983104518445462180'
7
+ data.tar.gz: fef6d423d82a92a49136125cb59df89d3861b23cdf9f3e8326e8a623b8e6c0a57345356eb76785bfd27b751ed2dd3b1116eed6f28bbfd267cc5efcf014d23c53
data/lib/word_censored.rb CHANGED
@@ -9,7 +9,7 @@ module WordCensored
9
9
  REGEX_PREPROCESS = /([^0-9a-zàáãạảăắằẳẵặâấầẩẫậèéẹẻẽêềếểễệđìíĩỉịòóõọỏôốồổỗộơớờởỡợùúũụủưứừửữựỳỵỷỹý ])/i
10
10
 
11
11
  def filter(str)
12
- blacklist = JSON.parse(File.read(File.join(File.dirname(__FILE__), 'files/blacklist.json')))
12
+ blacklist = combine_blacklist
13
13
  @str_array = str.split(' ')
14
14
  cindex = -1
15
15
 
@@ -45,4 +45,24 @@ module WordCensored
45
45
  def preprocess(word)
46
46
  word.downcase.gsub(REGEX_PREPROCESS, '')
47
47
  end
48
+
49
+ def combine_blacklist
50
+ blacklist = JSON.parse(File.read(File.join(File.dirname(__FILE__), 'files/blacklist.json')))
51
+ eblacklist = validate_external_blacklist
52
+ return blacklist unless eblacklist
53
+
54
+ blacklist.merge(eblacklist) { |key, _| (blacklist[key] + eblacklist[key]).uniq }
55
+ end
56
+
57
+ def validate_external_blacklist
58
+ path = Rails.public_path.join('assets', 'blacklist.json')
59
+ return false unless File.exist?(path)
60
+
61
+ external = JSON.parse(File.read(path))
62
+ return false if external.values.any? { |value| value.is_a?(String) }
63
+
64
+ external
65
+ rescue JSON::ParserError
66
+ false
67
+ end
48
68
  end
@@ -1,3 +1,3 @@
1
1
  module WordCensored
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: word_censored
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Tran
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-21 00:00:00.000000000 Z
11
+ date: 2020-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler