Create a new subclass. Valid options are:
- :array: An array of existing classes. If specified, the new class
is added to this array.
- :attributes: A hash of attributes to set before the block is
evaluated.
- :block: The block to evaluate in the context of the class. You can
also just pass the block normally, but it will still be evaluated with
class_eval.
- :constant: What to set the constant as. Defaults to the
capitalized name.
- :hash: A hash of existing classes. If specified, the new class is
added to this hash, and it is also used for overwrite tests.
- :overwrite: Whether to overwrite an existing class.
- :parent: The parent class for the generated class. Defaults to
self.
- :prefix: The constant prefix. Default to nothing; if specified,
the capitalized name is appended and the result is set as the constant.