My thinking is that an app should complain loudly if it is missing configuration. We are in the process of moving an app right now and we had a few ENV vars that got left out of the production config and we didn't notice it right away. It took a little spelunking to figure out why things were behaving oddly. If it had raised an error, we would have known right away.

The predicate method then gives you an easier way to allow for optional configs.  For example:

```erb
<% if env.google_analytics_id? %>
  <!-- GA embed script referencing env.google_analytics_id here -->
<% end %>
```

The predicate is only necessary if missing configs raise an error. Thoughts?

> Using just method_missing by itself can have some interesting ramifications.

Back to your original point. My other thought for the implementation was to iterate over `ENV` and define methods for everything. If `method_missing` gets any more complicated, I would probably lean toward this approach to avoid the performance overhead of regular expressions or scanning strings for every lookup.

I really appreciate your feedback.