Comments (7)
Thanks for your bug report. I just ran into this confusing issue today.
from hashie.
I was diving into this, I think the best solution would be to have a class that inherits from Mash. Perhaps 'Smash', or 'safe mash' that raises an error when trying to assign a value to a reserved key? Thoughts?
from hashie.
I have run into this as well recently with the "display" key; Mash returns 'nil' instead of the value in the parsed data.
from hashie.
What do we want to do about this? I think this is a dup of #119, at the least. Yes?
from hashie.
I ran into the same issue with the "display" key. Although I can't actually the method in the code. I'm wondering if something else is setting this.
At the very least it should thrown an exception if you try to set a key that won't work.
from hashie.
Ran into it w/ the 'hash' key...
from hashie.
This is a duplicate of #119.
There are several ways of handling this behavior in Hashie 3.3.1:
- If you really want to override methods with the method accessor, you can create a custom subclass that includes
Hashie::Extensions::MethodAccessWithOverride
. This new mixin allows you to do just that - override these methods with the keys, while retaining access to the original method(s) by aliasing them with a double-underscore prefix. - If you want an error when you try to set -- on a Mash -- a property that clashes with an existing method, you can mix
Hashie::Extensions::Mash::SafeAssignment
into your Mash class. There currently isn't an extension that just gives you a warning, but you could take a look at theSafeAssignment
extension and easily write an extension that warns you instead.
I'm going to go ahead and close this issue.
from hashie.
Related Issues (20)
- Problem flattening multiple nested properties via Trash HOT 3
- Release v. next HOT 2
- Integer key upsets Hashie::Mash with SymbolizeKeys extension HOT 16
- Slice doesn't work using symbols HOT 5
- I got in dev a failing test from master, how to properly setup? HOT 5
- RFC: Switch to Github Actions for CI HOT 3
- Multiple Trash properties that use the same key from a source hash HOT 3
- Undefined quiet method HOT 4
- New Release? HOT 3
- Behavior change in accessing Mash values in 5.0 release HOT 5
- [Informative] `deep_symbolize_keys` broken in Rails 7 with `Mash` HOT 7
- [Question] Why use :to_sym in Hashie::Mash#convert_key HOT 1
- Release version 5 HOT 1
- Memory leak possible HOT 5
- DeepMerge changes ActiveRecord instance HOT 2
- Trash warning when translating string to symbol
- Mash.load is insecure HOT 5
- Including MethodAccessWithOverride in Hashie::Mash breaks dup method
- PredefinedValues is undefined ... :( HOT 1
- Can't call to_hash with nested `Sequel::Postgres::JSONBHash` HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hashie.