= decorate
Homepage:: http://github.com/lang/decorate
== Description
Python style decorators for Ruby, some common decorators like
private_method are provided out of the box.
Decorators that come with the decorate library:
* Decorate::PrivateMethod
* Decorate::ProtectedMethod
* Decorate::PublicMethod
* Decorate::ModuleMethod
* Decorate::Memoize
Helpers to create your own decorators:
* Decorate::AroundDecorator
* Decorate::BeforeDecorator
== Hygiene issues
Decorate hooks into (aka redefines) Module#method_added and
Object#singleton_method_added via the classic alias/delegate pattern.
If you override these methods in one of your classes that use
decorators, make sure to call +super+, otherwise decorate breaks.
Also, private_method, protected_method, public_method and
module_method are defined as private methods of Module, but only if
the respective files are required.
== License
Decorate is licensed under the same terms as the main Ruby
implementation. See http://www.ruby-lang.org/en/LICENSE.txt.
Homepage:: http://github.com/lang/decorate
== Description
Python style decorators for Ruby, some common decorators like
private_method are provided out of the box.
Decorators that come with the decorate library:
* Decorate::PrivateMethod
* Decorate::ProtectedMethod
* Decorate::PublicMethod
* Decorate::ModuleMethod
* Decorate::Memoize
Helpers to create your own decorators:
* Decorate::AroundDecorator
* Decorate::BeforeDecorator
== Hygiene issues
Decorate hooks into (aka redefines) Module#method_added and
Object#singleton_method_added via the classic alias/delegate pattern.
If you override these methods in one of your classes that use
decorators, make sure to call +super+, otherwise decorate breaks.
Also, private_method, protected_method, public_method and
module_method are defined as private methods of Module, but only if
the respective files are required.
== License
Decorate is licensed under the same terms as the main Ruby
implementation. See http://www.ruby-lang.org/en/LICENSE.txt.