We use instance vars only:
- in the constructor
- for memoization
For everything else we use proper getters / setters.
If possible those should be private.
- Class or module names that are carried around in hashes and configuration and what
not should be designated by constants. So
DuplicateMethodCall
, not:DuplicateMethodCall
or"DuplicateMethodCall"
- Hash keys should be all symbols unless they designate classes / modules - see above.
- Everything else like messages or parameters in smell warnings should be strings, nothing else.