Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backwards incompatible change when transitioning to 2.1.0 #144

Closed
sindrenm opened this issue Apr 11, 2014 · 8 comments
Closed

Backwards incompatible change when transitioning to 2.1.0 #144

sindrenm opened this issue Apr 11, 2014 · 8 comments

Comments

@sindrenm
Copy link

In version 2.1.0, you start calling #to_hash with an argument, which you didn't do in version 2.0.5. This is a backwards incompatible, as it now requires the method to accept this argument. For instance, the sentry-raven gem implements this method taking no arguments, which breaks it. I don't know if you're meant to implement #to_hash, but if you do, this probably throws an ArgumentError passing in too many arguments. In my case, sentry-raven broke, but for that project a fix has already been merged. However, I'm guessing this might be a problem with other projects as well!

Just a heads up. 😄

@petergoldstein
Copy link
Contributor

Omniauth is impacted by this as well - omniauth/omniauth#734

@jgorset
Copy link

jgorset commented Apr 11, 2014

👍

@sindrenm sindrenm changed the title Backwards ncompatible change when transitioning to 2.1.0 Backwards incompatible change when transitioning to 2.1.0 Apr 11, 2014
@dblock
Copy link
Member

dblock commented Apr 11, 2014

I think this was modeled after to_json and stuff like that. Does anyone have any suggestions of changing something in Hashie about it?

@mbleigh
Copy link
Contributor

mbleigh commented Apr 11, 2014

What if we rescue an ArgumentError when calling with an option and call it bare when that happens?

@mbleigh
Copy link
Contributor

mbleigh commented Apr 11, 2014

I've got a fix for this coming shortly.

@mbleigh
Copy link
Contributor

mbleigh commented Apr 11, 2014

I think we have to accept no arguments since that's the Hash method signature. This way, we allow both.

@jgorset
Copy link

jgorset commented Apr 11, 2014

Thanks for the quick fix, @mbleigh!

@dblock
Copy link
Member

dblock commented Apr 12, 2014

I updated CHANGELOG and cut 2.1.1, since this is a regression.

jsonn pushed a commit to jsonn/pkgsrc that referenced this issue Feb 6, 2015
${RUBY_PKGPREFIX}-hashie2.

## 2.1.2 (5/12/2014)

* [#169](hashie/hashie#169): Hash#to_hash will also convert nested objects that implement `to_hash` - [@gregory](https://github.com/gregory).

## 2.1.1 (4/12/2014)

* [#144](hashie/hashie#144): Fixed regression invoking `to_hash` with no parameters - [@mbleigh](https://github.com/mbleigh).

## 2.1.0 (4/6/2014)

* [#134](hashie/hashie#134): Add deep_fetch extension for nested access - [@tylerdooling](https://github.com/tylerdooling).
* Removed support for Ruby 1.8.7 - [@dblock](https://github.com/dblock).
* Ruby style now enforced with Rubocop - [@dblock](https://github.com/dblock).
* [#138](hashie/hashie#138): Added Hashie::Rash, a hash whose keys can be regular expressions or ranges - [@epitron](https://github.com/epitron).
* [#131](hashie/hashie#131): Added IgnoreUndeclared, an extension to silently ignore undeclared properties at intialization - [@righi](https://github.com/righi).
* [#136](hashie/hashie#136): Removed Hashie::Extensions::Structure - [@markiz](https://github.com/markiz).
* [#107](hashie/hashie#107): Fixed excessive value conversions, poor performance of deep merge in Hashie::Mash - [@davemitchell](https://github.com/dblock), [@dblock](https://github.com/dblock).
* [#69](hashie/hashie#69): Fixed assigning multiple properties in Hashie::Trash - [@einzige](https://github.com/einzige).
* [#100](hashie/hashie#100): IndifferentAccess#store will respect indifference - [@jrochkind](https://github.com/jrochkind).
* [#103](hashie/hashie#103): Fixed support for Hashie::Dash properties that end in bang - [@thedavemarshall](https://github.com/thedavemarshall).
* [89](hashie/hashie#89): Do not respond to every method with suffix in Hashie::Mash, fixes Rails strong_parameters - [@Maxim-Filimonov](https://github.com/Maxim-Filimonov).
* [#110](hashie/hashie#110): Correctly use Hash#default from Mash#method_missing - [@ryansouza](https://github.com/ryansouza).
* [#120](hashie/hashie#120): Pass options to recursive to_hash calls - [@pwillett](https://github.com/pwillett).
* [#113](hashie/hashie#113): Fixed Hash#merge with Hashie::Dash - [@spencer1248](https://github.com/spencer1248).
* [#99](hashie/hashie#99): Hash#deep_merge raises errors when it encounters integers - [@defsprite](https://github.com/defsprite).
* [#133](hashie/hashie#133): Fixed Hash##to_hash with symbolize_keys - [@mhuggins](https://github.com/mhuggins).
* [#130](hashie/hashie#130): IndifferentAccess now works without MergeInitializer - [@npj](https://github.com/npj).
* [#111](hashie/hashie#111): Trash#translations correctly maps original to translated names - [@artm](https://github.com/artm).
* [#129](hashie/hashie#129): Added Trash#permitted_input_keys and inverse_translations - [@artm](https://github.com/artm).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants