Menu

Category

Archive

logo


Error: undefined method `deep_merge' [Jekyll]

2014-05-21 17:00:00 +0900
  • このエントリーをはてなブックマークに追加

Jekyll のバージョンを 2.0.3 に上げた際に、突然ビルドするできることができなくなってしまいました。その解決方法に関して記事です。

1 jekyll 2.0.3 | Error:  undefined method `deep_merge' for #<Hash:0x007fd2644089c0>

のようにエラーが出てビルドすることができなくなってしまいました。--trace すると、

1 monthly_archive_plugin.rb:121:in `to_liquid': undefined method `deep_merge' for #<Hash:0x007f9303cf8490> (NoMethodError)

自作のアーカイブを作成するプラグインの中にある deep_merge というメソッドが原因のようです。v2 以降(?)では、動かなくなってしまったので、deep_merge を単に、merge と変更すれば動くようになります。

例えば、

1 def to_liquid(attr = nil)      
2   self.data.deep_merge({
3                         'content' => self.content,
4                         'year'    => @year
5                        })
6 end

といったコードを、

1 def to_liquid(attr = nil)      
2   self.data.merge({
3                    'content' => self.content,
4                    'year'    => @year
5                   })
6 end

こんな感じです。