narou
narou copied to clipboard
ハーメルンでのtoc.yamlのsubdate関係のエラー
何故か一部の小説がアップデートできない状況に陥ていたので確認しました。
最初はよくあるdatabase.yamlのデータが壊れていたのかと思いましたが、チェックしたところ問題ありませんでした。 toc.yamlのデータの問題かなと思いまして確認したところ、データファイルそのものには異常がなく、新しい環境を作って落としてみたら問題なくアップデートされました。
両方のdatabase.yamlに違いはなく、toc.yamlを比較してみたところ、アップデートに失敗した小説のtoc.yamlだけsubdateがsubdate: 2016-09-08 17:39:00.000000000 +09:00の形式になっていて、ちゃんとアップデートされる方はsubdate: 2016年09月15日(木) 21:28の形式になっています。
多分私のmacOSは基本言語が英語になっていたのでこの問題が起きているものと考えられます。 大多数の小説は何故か新しい形式に変わっているのですが、一部が昔(?)の形式で残されていて、以下のようなエラーメッセージを吐き出します。
詳しい実装はわかりませんが、localeに依存しない時間形式のほうが望ましいと思います。
/var/lib/gems/2.4.0/gems/narou-3.3.2/lib/downloader.rb:885:in `>': comparison of String with Time failed (ArgumentError)
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/downloader.rb:885:in `block in update_body_check'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/downloader.rb:831:in `select'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/downloader.rb:831:in `update_body_check'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/downloader.rb:370:in `run_download'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/downloader.rb:332:in `start_download'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/command/update.rb:182:in `block in execute'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/command/update.rb:157:in `each'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/command/update.rb:157:in `each_with_index'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/command/update.rb:157:in `execute'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/commandbase.rb:125:in `execute!'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/commandbase.rb:134:in `execute!'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/commandline.rb:29:in `run'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/commandline.rb:43:in `run!'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/narou.rb:50:in `block in <top (required)>'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/lib/backtracer.rb:16:in `capture'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/narou.rb:49:in `<top (required)>'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/bin/narou:13:in `require_relative'
from /var/lib/gems/2.4.0/gems/narou-3.3.2/bin/narou:13:in `<top (required)>'
from /usr/local/bin/narou:23:in `load'
from /usr/local/bin/narou:23:in `<main>'
忘れましたが、Linuxサーバーの方でも同様のエラーが起きていました。 同じ小説をupdateしているのですが、エラーが起きる・形式が変化しているものの箇所も同じようです。