amatsuda/kaminari — pull request #526 by jimryan (2014-03-04 18:31:28+00:00)
Title: Pass ActiveSupport::JSON.decode a string and not an IO when interfacing with GitHub API

In older versions (< 4.1) of ActiveSupport, this worked because ActiveSupport used MultiJSON, which would invoke #read if it responded to it (https://github.com/intridea/multi_json/blob/v1.8.4/lib/multi_json/adapters/json_common.rb#L9). However, newer versions of ActiveSupport, starting in 4.1, use ruby's standard JSON gem (https://github.com/rails/rails/commit/ce4456fde6f45f1abd020cbdeb520d401299e01f), which expects a String. Reading the IO that #open returns to us and passing the resulting String to JSON.decode ensures compatibility with all versions of ActiveSupport.