-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 IƱaki Baz Castillo wrote: | Hi, is it not possible to create a method to use in this way? | | my_object.param("tag") = "new_value" | | How to define that method? I've tryed something as: | | def param(name)= (value) | @params[name] = value | end | | but obviously I get error: | | SyntaxError: compile error | syntax error, unexpected '=' | | Is there some way? Thanks a lot. | Untested, and probably highly inelegant: def param key, value ~ @params["#{key.to_sym}"] = value end Should produce: | object.params my_key, 'my value' => @params[:my_key] => 'my value' While not the interface you desire, it is the output you want. (May be useful as a Rails helper, but otherwise?) Or, you could use an optionhash to create your method: ,http://www.lukeredpath.co.uk/2006/7/27/using-ruby-hashes-as-keyword-arguments-with-easy-defaults> Something like: def param(options = {}) ~ @params[options.key] = options[options.key] end should look like | object.param 'key' => 'value' => @params['key'] => 'value' You could sexy that up with Hash#merge: def param(options = {}) ~ @params = @params.merge options end (probably more efficient than the first variant, too.) Hope that helps. - -- Phillip Gawlowski Twitter: twitter.com/cynicalryan Blog: http://justarubyist.blogspot.com ~ - You know you've been hacking too long when... ...you want to wash your hair and think: awk -F"/neck" '{ print $1 }' | shower -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkgYawQACgkQbtAgaoJTgL82BACgjop7Cr5BFncX8igZrmTsDZJd rT8Anjx643D6wDFImBbkLWG/rEXA00mv =r9VE -----END PGP SIGNATURE-----