約束の地

キャロ組

Legato と Tr4n5l4te を一緒に使うと ArgumentError になるとき

背景

以下の二つの gem を同時に使う場合です。

エラー

Legato で Google Analytics のデータを取得しようとすると以下のようなエラーが出て怒られます。

ArgumentError: wrong number of arguments (given 1, expected 0) from /home/foo/bar/vendor/bundle/ruby/2.5.0/gems/midwire_common-0.3.0/lib/midwire_common/string.rb:125:in `camelize'

問題点

エラーメッセージにもあるように、midwire_common という gem が原因です。

まさに該当行の125行目にある camelize メソッドを以下のようにコメントアウトすれば*1 Legato が正しく動作します。

  # rubocop:disable Style/PerlBackrefs
  ## def camelize
    ## gsub(/\/(.?)/) { '::' + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
  ## end

Tr4n5l4te への影響は

いくつか試してみたところ Tr4n5l4te の実行にも現在のところ影響は出ていません*2

*1:わかりやすくするために ## というようにコメントアウトしています

*2:モンキーパッチなのでそうなるのでしょう

Powered by はてなブログ