word_censored 0.1.5 → 0.1.6

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
  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