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 |