Class | MethodicHash |
In: |
lib/methodic_hash.rb
|
Parent: | Hash |
The MethodicHash is some method_missing magic that uses method names as hash keys, so hash assignment and lookup appear to be attribute writing and reading. For instance, if
mh = MethodicHash.new mh['four'] = 'iv' mh[:seven] = 'vii' mh.eighteen = 'xviii'
then
mh['four'] ---> 'iv' mh[:four] ---> 'iv' mh.four ---> 'iv' mh['seven'] ---> 'vii' mh[:seven] ---> 'vii' mh.seven ---> 'vii' mh['eighteen'] ---> 'xviii' mh[:eighteen] ---> 'xviii' mh.eighteen ---> 'xviii'
This allows access to simply declared facts to be embedded in Ruby code and leverages the possibility of hashing procs.
Note that if the hash uses anything but strings or symbols as keys, the magic stands a good chance of failing, raising an error or acting in a bizarre manner. Note also that methods of the Hash cannot be used as ‘attribute’ names.