Module: KanaRow

Included in:
String
Defined in:
lib/kana_row.rb,
lib/kana_row/version.rb

Constant Summary collapse

KANAS_MAP =
{
  '' => 'アイウエオァィゥェォ',
  '' => 'カキクケコ',
  '' => 'サシスセソ',
  '' => 'タチツテト',
  '' => 'ナニヌネノ',
  '' => 'ハヒフヘホ',
  '' => 'マミムメモ',
  '' => 'ヤユヨャュョ',
  '' => 'ラリルレロ',
  '' => 'ワヰヱヲ',
  '' => 'ガギグゲゴ',
  '' => 'ザジズゼゾ',
  '' => 'ダヂヅデド',
  '' => 'バビブベボ',
  '' => 'パピプペポ',
}.transform_values{|v| v.split('') }.freeze
SPECIAL_KANAS_MAP =
{
  '' => '',
  '' => '',
}.transform_values{|v| v.split('') }.freeze
MARKED_KANA_ROWS =
{
  '' => '',
  '' => '',
  '' => '',
  '' => '',
  '' => '',
}.freeze
VERSION =
"0.1.1"

Instance Method Summary collapse

Instance Method Details

#kana_row(marked_to_plain: true, include_special: true) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/kana_row.rb', line 36

def kana_row(marked_to_plain: true, include_special: true)
  kana = self.chr.han_to_zen
  return unless kana.kana?

  if is_hiragana = kana.hiragana?
    kana = kana.katakana
  end

  row = kanas_map(include_special: include_special).find{|_, v| v.include?(kana) }&.first
  row = MARKED_KANA_ROWS.fetch(row, row) if marked_to_plain
  row = row&.hiragana if is_hiragana

  row
end