AC::Parameters#fetch was refactored in 7171111 to prevent self mutation, but
in doing so it hardcodes logic #convert_hashes_to_parameters is supposed to
encapsulate.
Better leave the delegation, and add a way to avoid mutating self in there.
By default when creating a project with `--database=postgresql` the `config/database.yml` file that is generated has a user specified that is the same as the app name
```
development:
adapter: postgresql
encoding: unicode
database: <%= app_name %>_development
pool: 5
username: <%= app_name %>
password:
```
This is counterintuitive and would rarely be valid. By default postgres creates a user with the current user name (http://www.postgresql.org/docs/9.3/static/database-roles.html) "it will have the same name as the operating system user that initialized the database cluster":
```
$ whoami
schneems
```
If the `username` is left out postgresql will assume that you wish to log in as the default user
```
$ psql -c '\du'
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
schneems | Superuser, Create role, Create DB, Replication | {}
```
A good sensible default then for auto generated `database.yml` files is to remove the `username`, and have postgres attempt to connect to the database as the currently logged in user.
Instead of submitting with a blank password, don't submit a password.
Telling somebody that "precision sets the precision" is not very helpful.
Newbies want to know what precision is *for*, likewise with scale.
So I've added a very brief description for each.
We're surrounding the options in angle brackets `<>` as is convention in `curl`:
```
$ curl --help
Usage: curl [options...] <url>
```
And then in square brackets `[]` with bars `|` as in `tar`:
```
$ tar --help
...
Create: tar -c [options] [<file> | <dir> | @<archive> | -C <dir> ]
```
To further clarify that the command can be used with both, we now show examples:
```
Examples:
rails runner 'puts Rails.env'
This runs the code `puts Rails.env` after loading the app
rails runner path/to/filename.rb
This runs the Ruby file located at `path/to/filename.rb` after loading the app
```
This format was taken from the `find` man pages:
```
EXAMPLES
The following examples are shown as given to the shell:
find / \! -name "*.c" -print
Print out a list of all the files whose names do not end in .c.
find / -newer ttt -user wnj -print
Print out a list of all the files owned by user ``wnj'' that are newer than the file ttt.
```
The the text at the bottom is also shifted to improve readability.