These lines at the bottom of the mash gem are causing the issue:
# Converts all of the keys to strings
def stringify_keys!
keys.each{|k|
v = delete(k)
self[k.to_s] = v
v.stringify_keys! if v.is_a?(Hash)
v.each{|p| p.stringify_keys! if p.is_a?(Hash)} if v.is_a?(Array)
}
self
end
This is defined inside class Hash...end inside of the mash
file.....hmmm.....
Erik
On Oct 6, 6:47 pm, erik <[email protected]> wrote:
> It's not the twitter gem, it's the mash gem. The twitter gem requires
> the mash gem.
> Erik
>
> On Oct 6, 6:36 pm, erik <[email protected]> wrote:
>
> > We had something very odd happen today after installing the twitter
> > gem. We had a ton of our tests fail. When we removed the gem they
> > would pass.
>
> > What it ended up being was during the building of attributes using
> > nested attributes setters we were accessing the hash that was passed
> > in like this:
>
> > def shade_preference_attributes=(shade_preference_attributes)
> > shade_preference_attributes.each_pair do |key, value|
> > value.each do |shade|
> > self.shade_preferences.build(:shade_id => shade
> > [:shade_id], :preference => shade[:preference])
> > end
> > end
> > end
>
> > Before installing and configuring the twitter gem in our rails
> > application this worked fine. After doing it, it started failing.
> > The failure was because shade (a hash) did not have :shade_id
> > or :preference in it anymore. It actually always had the keys
> > "shade_id" and "preference" that never changed, but now the access of
> > them by symbol started failing.
>
> > When I removed removed the config.gem line for the the twitter gem
> > everything worked fine.
>
> > I'm assuming this has something to do with indifferent access. In
> > both cases the shade is a normal Hash. But, in one case it appears to
> > be using indifferent access and in another case not. Or could it be
> > the hash was built using indifferent acces or not? I'm not exactly
> > sure how that works.
>
> > The twitter gem installs a bunch of gems. Has anyone seen anything
> > like this before.
> > Thanks.
> > Erik
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---