Sha256: a08f20fff911d244c4015f31244f29ee1e2efc4a2938a4d0f954777642262d56
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
require 'yaml' module Ciuchcia class Profanity @@data_file = nil def self.vulgar_words YAML.load_file(@@data_file || File.join(File.expand_path(File.dirname(__FILE__)),'..','..','config','vulgar_words.yml' )) end def self.set_data_file(path) @@data_file = path end def self.bad_word?(word) vulgar_words.include? word end def self.check(text) nw = '[^A-Za-z0-9]' utf_letters = "\352\363\261\266\263\277\274\346\361".split('') ascii_letters = "eoaslzzcn".split('') utf_or_ascii = Proc.new do |l| if utf_letters.include?(l) "(l|#{ascii_letters[utf_letters.index(l)]})" elsif l=='o' "(o|0)" # o_O else l end end vulgar_words.each do |word| regexp_string = "(#{nw}|^)"+word.split('').map {|l| "#{utf_or_ascii.call l}+"}.join("#{nw}*")+"(#{nw}|$)" regexp = Regexp.new regexp_string,'i' m = text.match regexp return m[0].strip if m end false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ciuchcia-0.0.3 | lib/ciuchcia/profanity.rb |