Sha256: b9dfbee0cbe6d7e455a76cbdb2efffa9b5e7e4d7abca3784ec567fdecd037a99
Contents?: true
Size: 871 Bytes
Versions: 1
Compression:
Stored size: 871 Bytes
Contents
module Gematria class English < Struct.new(:text) CORRESPONDENCE_TABLE = { # applies `mispar hechrachi` method to English alphabet (http://www.inner.org/gematria/fourways.php) a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10, k: 20, l: 30, m: 40, n: 50, o: 60, p: 70, q: 80, r: 90, s: 100, t: 200, u: 300, v: 400, w: 500, x: 600, y: 700, z: 800 } def mapped text.each_char.map { |c| lookup_char c } end def converted mapped.inject(:+) end def reduced do_reduction_on converted end private def lookup_char(char) CORRESPONDENCE_TABLE.fetch(char.downcase.to_sym, 0) end def do_reduction_on(number) if number < 10 number else do_reduction_on number.to_s.each_char.map(&:to_i).inject(:+) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gematria-0.0.1 | lib/gematria/english.rb |