Sha256: 55d0c58002349069888e14ccc05ba4b4738f32ca2bf7589b2114c9435bbc6416

Contents?: true

Size: 1.89 KB

Versions: 1

Compression:

Stored size: 1.89 KB

Contents

module GlitchedString
  UPPER_CHARS = %W[
    \u030d
    \u030e
    \u0304
    \u0305
    \u033f 
    \u0311 
    \u0306 
    \u0310 
    \u0352 
    \u0357
    \u0351
    \u0307
    \u0308
    \u030a 
    \u0342
    \u0343
    \u0344 
    \u034a
    \u034b
    \u034c
    \u0303   
    \u0302  
    \u030c 
    \u0350
    \u0300
    \u0301
    \u030b
    \u030f
    \u0312
    \u0313
    \u0314
    \u033d
    \u0309
    \u0363
    \u0364 
    \u0365
    \u0366
    \u0367
    \u0368
    \u0369
    \u036a
    \u036b
    \u036c
    \u036d
    \u036e
    \u036f
    \u033e
    \u035b
    \u0346
    \u031a
  ]
  MIDDLE_CHARS = %W[
    \u0315
    \u031b
    \u0340
    \u0341
    \u0358
    \u0321
    \u0322
    \u0327
    \u0328
    \u0334
    \u0335
    \u0336
    \u034f
    \u035c
    \u035d
    \u035e
    \u035f
    \u0360
    \u0362
    \u0338
    \u0337
    \u0361
    \u0489
  ]
  LOWER_CHARS = %W[
    \u0316
    \u0317
    \u0318
    \u0319
    \u031c
    \u031d
    \u031e
    \u031f
    \u0320
    \u0324
    \u0325
    \u0326
    \u0329
    \u032a
    \u032b
    \u032c
    \u032d
    \u032e
    \u032f
    \u0330
    \u0331
    \u0332
    \u0333
    \u0339
    \u033a
    \u033b
    \u033c
    \u0345
    \u0347
    \u0348
    \u0349
    \u034d
    \u034e
    \u0353
    \u0354
    \u0355
    \u0356
    \u0359
    \u035a
    \u0323
  ] 
end

class String
  def glitch(options = {})
    options[:upper]  ||= 8
    options[:middle] ||= 8
    options[:lower]  ||= 8
    output = ''
    self.split(//).each do |s|
      output << s
      output << GlitchedString::UPPER_CHARS.sample(options[:upper].to_i).join
      output << GlitchedString::MIDDLE_CHARS.sample(options[:middle].to_i).join
      output << GlitchedString::LOWER_CHARS.sample(options[:lower].to_i).join
    end
    return output
  end
  def glitch!(options = {})
    self.replace self.glitch
  end
  alias :to_glitch :glitch
  alias :to_glitch! :glitch!
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
glitched_string-0.1.0 lib/glitched_string.rb