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
2
3
4
5
6
def to_liquid(attr = nil)      
  self.data.deep_merge({
                        'content' => self.content,
                        'year'    => @year
                       })
end

といったコードを、

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

こんな感じです。