Make ruby code idiomatic

Convert the existing Ruby code to be more idiomatic

- Remove unnecessary parenthesis
- Use implicit method returns
- `Hash.new` -> `{}`
- Change method names from snakeCase to underscore
- Prefer Ruby's inbuilt `merge!` over manual assignment
- Use `:symbols` over `"strings"`
- Default values when a key is missing in a hash
- Prefer `&&` over `and` [http://stackoverflow.com/a/1426835](http://stackoverflow.com/a/1426835)
- Change `self.method` to `method` when calling the method
- Use clean string interpolation
Ruby n00b question: It's cute to have getter methods suppress the ()s, but is it really acceptable to call methods which mutate state without ()s? Do you have any pointers to any other examples of Ruby classes that do this?