X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fgames%2Fshiritori.rb;h=71016e5434ecbde960aa44197641f04c31853fe8;hb=959bc65b4852e313fbc51d0f8d097b670324b1d2;hp=590e990d362a25b0567e5f2e07f903d5f9e5ffe4;hpb=1b684b35e2f7ef3a4647172286aa2acd86c5916e;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/games/shiritori.rb b/data/rbot/plugins/games/shiritori.rb index 590e990d..71016e54 100644 --- a/data/rbot/plugins/games/shiritori.rb +++ b/data/rbot/plugins/games/shiritori.rb @@ -15,6 +15,10 @@ # playing several games, each per channel. A game can be turn-based, where only new # players can interrupt a turn to join, or a free mode where anyone can speak at any # time. +# +# In Japanese mode, if present, the plugin can use normalize-japanese +# to allow +# katakana words be used like hiragana. # # TODO # * a system to describe settings, so they can be displayed, changed and saved @@ -199,7 +203,7 @@ class ShiritoriGame # announce the current word, and player if take_turns? def announce - say (if take_turns? + say(if take_turns? _("%{current_player}, it's your turn. %{previous_word} -> %{current_word}") % { :current_player => current_player, :previous_word => previous_word, :current_word => current_word } @@ -367,7 +371,13 @@ class ShiritoriPlugin < Plugin :listen => /\A\S+\Z/u, :overlap_lengths => 1..4, :desc => 'Use Japanese words in hiragana; 1-4 kana at the beginning of the next word must overlap with those at the end of the previous word.', - # Optionally use a module to normalize Japanese words, enabling input in multiple writing systems + :normalize => + begin + require 'normalize-japanese' + lambda {|w| w.to_hiragana} + rescue LoadError + lambda {|w| w} + end } } end @@ -454,6 +464,7 @@ class ShiritoriPlugin < Plugin def cleanup @games.each_key {|g| g.die} @games.clear + super end end