redding/ns-options — pull request #50 by kellyredding (2012-10-31 19:31:54+00:00)
Title: Define methods using anonymous modules and `method_missing`

## The Goal

To alter the design to no longer explicitly define raw methods onto objects using NsOptions.

Before root-level namespace methods and root-level proxy methods would be defined directly onto the receiver of NsOptions calls. In addition, namespaces would define raw methods on themselves as options and sub-namespaces were defined.

## The Solution

Now, root-level namespace and proxy methods are defined on anonymous modules and those anonymous modules are mixed into the receiver. Namespace instances themselves use `method_missing` magic to expose their options and sub-namespaces.

## The Result

There is no change to the end-user experience. However, user's will be able to subclass NsOptions receivers and overwrite or extend root-level namespaces and proxy methods.