From: niklas | brueckenschlaeger Date: 2010-11-15T19:28:18+09:00 Subject: Re: Faking constants with methods --=-jDs9V7qj+z0M2ss/4gPa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Well, if I were to change the code that *uses* the constant, I would change it to a less ambiguous method call. My point is that I want to keep the rest of the code as is, hiding the fact that it's something else. But I guess I'll just leave it and stop investigating on how to write surprisingly bad code... On Mon, 2010-11-15 at 19:21 +0900, Quintus wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 >=20 > Am 15.11.2010 11:02, schrieb niklas | brueckenschlaeger: > > Thank you, but that would only work if the constant isn't defined. Mayb= e > > I wasn't being clear: I want to override a constant within an object > > with a method. > >=20 > > class Bar > > end > >=20 > > class Foo > > def Bar > > end > >=20 > > def some_method > > Bar.something # this resolves to constant Bar, not method Bar > > end > > end > >=20 >=20 > That should be possible with #send: >=20 > class Bar > end >=20 > class Foo > def Bar > end >=20 > def some_method > self.send(:Bar).something > end > end >=20 > Not nice to read, but works. But I'm not sure if that meets your > original intention of a convenient method to do it... >=20 > Vale, > Marvin > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.10 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ >=20 > iQEcBAEBAgAGBQJM4QmhAAoJEGrS0YjAWTKV12cIAKDMZo7lLCz4QXLolqZ6abdS > BP5yKOuB68IYXBQ6WLTB1EbF/9FNcIIZZ1qGO9CMiThsuX1nPL7uP8Q4sr88pM+Z > rN3dDbcGZ3ZUt+mQHHaTMSW+oWX+rf/DQ5hs/Faaq3QkcPdgupogyaKPVsuWNmto > kktVFoXBxuuQ+I1HNUUaTbvQ2tuClD3rQflUsUJO5d5utLi22KLna6me5dEJuSci > kteL6lpaWqmHp3pCyVR3GODb6fON9IBi2jDHKLjCscIk/DTZWJGxMs7kIeMvPhPY > vxvNSqCMAOtdDKtzg+uKM9O7jXKdZHzC6IqnJoIprAW3HCB4XBZ5Cr/0vt4CVbU=3D > =3DZMgq > -----END PGP SIGNATURE----- >=20 --=-jDs9V7qj+z0M2ss/4gPa Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIcBAABAgAGBQJM4Qs8AAoJEIQdQGZOjo828fsP/0CdzP1e0qLe0koz0iSsXAVw iyG/6PrufK3sDjW03IKcF3qV30+YwNqB88sO1fTSGhRHpc+K31PD/muRa1gqKJTO WcwlMWbRh+SgJHwEjXkemol5aWAFKLHc4Ae62nuig/7x473SnrhPrYHWxs3+fC6S cPoamckqhpUG3DxkCoMM/G45c7s+iT+XInB5IiiQCqO+dQQ5tdSqjmQ5sWHAXdZ5 9e9elEchd4aV/jGc4tbc0UW2ilQffKiwswa277hQKlApY30A54TBvQuTE/9yxmoo rXn2OcvPQ6H52yecb+yKDsw4eLl9x+GvCti0XfSv+ZWax3GHJq6J52HP1TbvIlRO ZRRjY2wpRFt5eo+2JfZK9QztR661j/UqiRLwqxqvIcl7WENKYtsXDlSdNNqRjOTa 86gjZVjkDSom4Dn9bntqMMboRdsR2uS2XJTcOe+LOHyqSwMAXCPrvz6slAhRD4AB yflYxp+R94vEXwDLaDlDaz0V/P7LrtxPVDauPIR/iZ2lEgQhQywWaSFwfO8Q/ntk 9/Fxtz+/kvVwyEniQZW4tltcuXW0KMdUWvbaUKQ/KXrLpZ1Jr1eVusDPLp8iW/+C UCCWWRZAhXyaLqzVHzS+heXWMw1K2Wg8X+fnOTC9FrHkNHk0M/C5xCXOhaNAvJy9 v8VAvr2LYUERrbG45mRy =z+5s -----END PGP SIGNATURE----- --=-jDs9V7qj+z0M2ss/4gPa--