Project

classy

0.0
No commit activity in last 3 years
No release in over 3 years
Classy is a collection of metaprogramming-heavy modules which you can extend in order to give various capabilities to your Ruby classes. For example, SubclassAware lets a class know about all of its subclasses (and sub-subclasses, etc), and Aliasable lets you refer to classes via symbols (useful for creating friendly DSLs).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.2.9
 Project Readme

classy¶ ↑

Classy is a collection of metaprogramming-heavy modules which you can extend in order to give various capabilities to your Ruby classes. For example, SubclassAware lets a class know about all of its subclasses (and sub-subclasses, etc), and Aliasable lets you refer to classes via symbols (useful for creating friendly DSLs).

Examples¶ ↑

class Parent
  extend Aliasable
  extend SubclassAware
  extend Templatable

  templatable_attr :awesomeness, :temperature
  awesomeness :fairly

  aka :pop
end

class ChildA
  aka :kid1
end

class ChildB
  aka :kid2
end

Parent.find(:kid1)      # => ChildA
Parent.subclasses       # => [ ChildA, ChildB ]
Parent.new.awesomeness  # => :fairly

More extensive documentation and example code can be found in the RDoc for each module (available online at rdoc.info/projects/djspinmonkey/classy) or in the spec files.

Note on Patches/Pull Requests¶ ↑

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2009 John Hyland. See LICENSE for details.