NoMethodError undefined method `tempfile'' for # That sure is odd... I guess in Camping 2.0, uploads are not a Camping::H. Can we please change Camping::H to output ::H''s instead of the original value when the original value is_a?(::H) That be good. Recursive yumminess. Doesn''t solve hashes in arrays, but is nice for this and some other things like playing with JSON. :) Looks like to do that, we''d need to override Hash#fetch, and maybe Hash#[] and stuff... complex, maybe beyond camping scope. Still, I really think for consistency file upload hashes in the @input should be ::H''s. Maybe not put the functionality in ::H, maybe some processing specific to @input. Coming right down to it, I''m thinking about putting the functionality in the actual Hash class.... why don''t we do that normally? does it cause problems with some libraries? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/camping-list/attachments/20080722/290abc4d/attachment.html>
class H < Hash # Gets or sets keys in the hash. # # @cookies.my_favorite = :macadamian # @cookies.my_favorite # => :macadamian # def method_missing(m,*a) x=(m.to_s=~/=$/?self[$`]=a[0]:a==[]?self[m.to_s]:super) x.kind_of?(Hash) ? H[x] : x end undef id, type end 2008/7/22 Bluebie, Jenna <blueberry at creativepony.com>:> NoMethodError undefined method `tempfile'' for # > That sure is odd... I guess in Camping 2.0, uploads are not a Camping::H. > Can we please change Camping::H to output ::H''s instead of the original > value when the original value is_a?(::H) > That be good. Recursive yumminess. Doesn''t solve hashes in arrays, but is > nice for this and some other things like playing with JSON. :) > Looks like to do that, we''d need to override Hash#fetch, and maybe Hash#[] > and stuff... complex, maybe beyond camping scope. Still, I really think > for consistency file upload hashes in the @input should be ::H''s. Maybe not > put the functionality in ::H, maybe some processing specific to @input. > Coming right down to it, I''m thinking about putting the functionality in the > actual Hash class.... why don''t we do that normally? does it cause problems > with some libraries? > _______________________________________________ > Camping-list mailing list > Camping-list at rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >
I''m playing with Mash (http://mash-hash.rubyforge.org/) which has some really nifty stuff. Here''s the branch: http://github.com/judofyr/camping/tree/mash. It requires 0.0.6 (which is only on GitHUb), but will work with 0.0.3 if you drop the latest patch. I don''t know if it''s worth another dependency; maybe zimbatm''s patch is better. On Tue, Jul 22, 2008 at 4:40 AM, Bluebie, Jenna <blueberry at creativepony.com> wrote:> NoMethodError undefined method `tempfile'' for # > That sure is odd... I guess in Camping 2.0, uploads are not a Camping::H. > Can we please change Camping::H to output ::H''s instead of the original > value when the original value is_a?(::H) > That be good. Recursive yumminess. Doesn''t solve hashes in arrays, but is > nice for this and some other things like playing with JSON. :) > Looks like to do that, we''d need to override Hash#fetch, and maybe Hash#[] > and stuff... complex, maybe beyond camping scope. Still, I really think > for consistency file upload hashes in the @input should be ::H''s. Maybe not > put the functionality in ::H, maybe some processing specific to @input. > Coming right down to it, I''m thinking about putting the functionality in the > actual Hash class.... why don''t we do that normally? does it cause problems > with some libraries? > _______________________________________________ > Camping-list mailing list > Camping-list at rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >-- Magnus Holm
Yum. Did you try just setting YourApp::H = Mash ? If it works like this out of the box then we can keep the simpler solution and provide a recipe to work with mash ? 2008/7/23 Magnus Holm <judofyr at gmail.com>:> I''m playing with Mash (http://mash-hash.rubyforge.org/) which has some really > nifty stuff. Here''s the branch: http://github.com/judofyr/camping/tree/mash. > It requires 0.0.6 (which is only on GitHUb), but will work with 0.0.3 > if you drop > the latest patch. > > I don''t know if it''s worth another dependency; maybe zimbatm''s patch is > better. > > On Tue, Jul 22, 2008 at 4:40 AM, Bluebie, Jenna > <blueberry at creativepony.com> wrote: >> NoMethodError undefined method `tempfile'' for # >> That sure is odd... I guess in Camping 2.0, uploads are not a Camping::H. >> Can we please change Camping::H to output ::H''s instead of the original >> value when the original value is_a?(::H) >> That be good. Recursive yumminess. Doesn''t solve hashes in arrays, but is >> nice for this and some other things like playing with JSON. :) >> Looks like to do that, we''d need to override Hash#fetch, and maybe Hash#[] >> and stuff... complex, maybe beyond camping scope. Still, I really think >> for consistency file upload hashes in the @input should be ::H''s. Maybe not >> put the functionality in ::H, maybe some processing specific to @input. >> Coming right down to it, I''m thinking about putting the functionality in the >> actual Hash class.... why don''t we do that normally? does it cause problems >> with some libraries? >> _______________________________________________ >> Camping-list mailing list >> Camping-list at rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > > > > -- > Magnus Holm > _______________________________________________ > Camping-list mailing list > Camping-list at rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >
Mash[] doesn''t work exactly as wanted (if you give it symbols): Mash[:test => 1] #=> <Mash test=nil> Mash[:test => 1, :cool => 2] #=> Raises error So we have to alias self[] to self.new... On Wed, Jul 23, 2008 at 10:10 AM, zimbatm <zimbatm at oree.ch> wrote:> Yum. Did you try just setting YourApp::H = Mash ? If it works like > this out of the box > then we can keep the simpler solution and provide a recipe to work with mash ? > > 2008/7/23 Magnus Holm <judofyr at gmail.com>: >> I''m playing with Mash (http://mash-hash.rubyforge.org/) which has some really >> nifty stuff. Here''s the branch: http://github.com/judofyr/camping/tree/mash. >> It requires 0.0.6 (which is only on GitHUb), but will work with 0.0.3 >> if you drop >> the latest patch. >> >> I don''t know if it''s worth another dependency; maybe zimbatm''s patch is >> better. >> >> On Tue, Jul 22, 2008 at 4:40 AM, Bluebie, Jenna >> <blueberry at creativepony.com> wrote: >>> NoMethodError undefined method `tempfile'' for # >>> That sure is odd... I guess in Camping 2.0, uploads are not a Camping::H. >>> Can we please change Camping::H to output ::H''s instead of the original >>> value when the original value is_a?(::H) >>> That be good. Recursive yumminess. Doesn''t solve hashes in arrays, but is >>> nice for this and some other things like playing with JSON. :) >>> Looks like to do that, we''d need to override Hash#fetch, and maybe Hash#[] >>> and stuff... complex, maybe beyond camping scope. Still, I really think >>> for consistency file upload hashes in the @input should be ::H''s. Maybe not >>> put the functionality in ::H, maybe some processing specific to @input. >>> Coming right down to it, I''m thinking about putting the functionality in the >>> actual Hash class.... why don''t we do that normally? does it cause problems >>> with some libraries? >>> _______________________________________________ >>> Camping-list mailing list >>> Camping-list at rubyforge.org >>> http://rubyforge.org/mailman/listinfo/camping-list >>> >> >> >> >> -- >> Magnus Holm >> _______________________________________________ >> Camping-list mailing list >> Camping-list at rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > _______________________________________________ > Camping-list mailing list > Camping-list at rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >-- Magnus Holm
This is curious... why would they change that behavior ? 2008/7/23 Magnus Holm <judofyr at gmail.com>:> Mash[] doesn''t work exactly as wanted (if you give it symbols): > > Mash[:test => 1] #=> <Mash test=nil> > Mash[:test => 1, :cool => 2] #=> Raises error > > So we have to alias self[] to self.new... > > On Wed, Jul 23, 2008 at 10:10 AM, zimbatm <zimbatm at oree.ch> wrote: >> Yum. Did you try just setting YourApp::H = Mash ? If it works like >> this out of the box >> then we can keep the simpler solution and provide a recipe to work with mash ? >> >> 2008/7/23 Magnus Holm <judofyr at gmail.com>: >>> I''m playing with Mash (http://mash-hash.rubyforge.org/) which has some really >>> nifty stuff. Here''s the branch: http://github.com/judofyr/camping/tree/mash. >>> It requires 0.0.6 (which is only on GitHUb), but will work with 0.0.3 >>> if you drop >>> the latest patch. >>> >>> I don''t know if it''s worth another dependency; maybe zimbatm''s patch is >>> better. >>> >>> On Tue, Jul 22, 2008 at 4:40 AM, Bluebie, Jenna >>> <blueberry at creativepony.com> wrote: >>>> NoMethodError undefined method `tempfile'' for # >>>> That sure is odd... I guess in Camping 2.0, uploads are not a Camping::H. >>>> Can we please change Camping::H to output ::H''s instead of the original >>>> value when the original value is_a?(::H) >>>> That be good. Recursive yumminess. Doesn''t solve hashes in arrays, but is >>>> nice for this and some other things like playing with JSON. :) >>>> Looks like to do that, we''d need to override Hash#fetch, and maybe Hash#[] >>>> and stuff... complex, maybe beyond camping scope. Still, I really think >>>> for consistency file upload hashes in the @input should be ::H''s. Maybe not >>>> put the functionality in ::H, maybe some processing specific to @input. >>>> Coming right down to it, I''m thinking about putting the functionality in the >>>> actual Hash class.... why don''t we do that normally? does it cause problems >>>> with some libraries? >>>> _______________________________________________ >>>> Camping-list mailing list >>>> Camping-list at rubyforge.org >>>> http://rubyforge.org/mailman/listinfo/camping-list >>>> >>> >>> >>> >>> -- >>> Magnus Holm >>> _______________________________________________ >>> Camping-list mailing list >>> Camping-list at rubyforge.org >>> http://rubyforge.org/mailman/listinfo/camping-list >>> >> _______________________________________________ >> Camping-list mailing list >> Camping-list at rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > > > > -- > Magnus Holm > _______________________________________________ > Camping-list mailing list > Camping-list at rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >
They havent''t changed the method. They probabely should. When you run Mash.new it transforms all keys to strings (and turns Hash''es to Mash''es), Mash[] doesn''t do anything like that. And it isn''t Mash[:test => 1, :cool => 2] which raises errors, it''s when you call #inspect on it (it tries to sort all the keys). On Wed, Jul 23, 2008 at 4:49 PM, zimbatm <zimbatm at oree.ch> wrote:> This is curious... why would they change that behavior ? > > 2008/7/23 Magnus Holm <judofyr at gmail.com>: >> Mash[] doesn''t work exactly as wanted (if you give it symbols): >> >> Mash[:test => 1] #=> <Mash test=nil> >> Mash[:test => 1, :cool => 2] #=> Raises error >> >> So we have to alias self[] to self.new... >> >> On Wed, Jul 23, 2008 at 10:10 AM, zimbatm <zimbatm at oree.ch> wrote: >>> Yum. Did you try just setting YourApp::H = Mash ? If it works like >>> this out of the box >>> then we can keep the simpler solution and provide a recipe to work with mash ? >>> >>> 2008/7/23 Magnus Holm <judofyr at gmail.com>: >>>> I''m playing with Mash (http://mash-hash.rubyforge.org/) which has some really >>>> nifty stuff. Here''s the branch: http://github.com/judofyr/camping/tree/mash. >>>> It requires 0.0.6 (which is only on GitHUb), but will work with 0.0.3 >>>> if you drop >>>> the latest patch. >>>> >>>> I don''t know if it''s worth another dependency; maybe zimbatm''s patch is >>>> better. >>>> >>>> On Tue, Jul 22, 2008 at 4:40 AM, Bluebie, Jenna >>>> <blueberry at creativepony.com> wrote: >>>>> NoMethodError undefined method `tempfile'' for # >>>>> That sure is odd... I guess in Camping 2.0, uploads are not a Camping::H. >>>>> Can we please change Camping::H to output ::H''s instead of the original >>>>> value when the original value is_a?(::H) >>>>> That be good. Recursive yumminess. Doesn''t solve hashes in arrays, but is >>>>> nice for this and some other things like playing with JSON. :) >>>>> Looks like to do that, we''d need to override Hash#fetch, and maybe Hash#[] >>>>> and stuff... complex, maybe beyond camping scope. Still, I really think >>>>> for consistency file upload hashes in the @input should be ::H''s. Maybe not >>>>> put the functionality in ::H, maybe some processing specific to @input. >>>>> Coming right down to it, I''m thinking about putting the functionality in the >>>>> actual Hash class.... why don''t we do that normally? does it cause problems >>>>> with some libraries? >>>>> _______________________________________________ >>>>> Camping-list mailing list >>>>> Camping-list at rubyforge.org >>>>> http://rubyforge.org/mailman/listinfo/camping-list >>>>> >>>> >>>> >>>> >>>> -- >>>> Magnus Holm >>>> _______________________________________________ >>>> Camping-list mailing list >>>> Camping-list at rubyforge.org >>>> http://rubyforge.org/mailman/listinfo/camping-list >>>> >>> _______________________________________________ >>> Camping-list mailing list >>> Camping-list at rubyforge.org >>> http://rubyforge.org/mailman/listinfo/camping-list >>> >> >> >> >> -- >> Magnus Holm >> _______________________________________________ >> Camping-list mailing list >> Camping-list at rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > _______________________________________________ > Camping-list mailing list > Camping-list at rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list >-- Magnus Holm