C
Caleb Clausen
rubymacros version 0.1.5 has been released!
* <http://github.com/coatl/rubymacros/>
* <http://rubyforge.org/projects/rubymacros/>
RubyMacros is a lisp-like macro pre-processor for Ruby. More than just a
purely textual substitution scheme, RubyMacros can manipulate and morph
Ruby parse trees (in the form of RedParse Nodes) at parse time in just about
any way you see fit.
Macros are programmed in ruby itself. And since parse trees are represented
in RedParse format, they're easier to use (programatically) and more object-
oriented than other available ruby parsetree formats. (RedParse Node format
is actually designed to be straightforward to use and to represent the
structure of ruby source code very closely.)
##
Changes:
### 0.1.5 / 2009-07-04
* 4 Major Enhancements:
* all macros are now immediate, not delayed
* macro calls can accept blocks
* macro calls need not be inside a method
* form escapes can stand in for a method name in callsites
* 4 Minor Enhancements:
* macros can expand to nop by returning nil
* form escapes whose value is a symbol become callsites now
* forms can now be catenated together with + in the obvious way
* HashLiteralNode can be treated somewhat like a real hash, using #get
* <http://github.com/coatl/rubymacros/>
* <http://rubyforge.org/projects/rubymacros/>
* <http://github.com/coatl/rubymacros/>
* <http://rubyforge.org/projects/rubymacros/>
RubyMacros is a lisp-like macro pre-processor for Ruby. More than just a
purely textual substitution scheme, RubyMacros can manipulate and morph
Ruby parse trees (in the form of RedParse Nodes) at parse time in just about
any way you see fit.
Macros are programmed in ruby itself. And since parse trees are represented
in RedParse format, they're easier to use (programatically) and more object-
oriented than other available ruby parsetree formats. (RedParse Node format
is actually designed to be straightforward to use and to represent the
structure of ruby source code very closely.)
##
Changes:
### 0.1.5 / 2009-07-04
* 4 Major Enhancements:
* all macros are now immediate, not delayed
* macro calls can accept blocks
* macro calls need not be inside a method
* form escapes can stand in for a method name in callsites
* 4 Minor Enhancements:
* macros can expand to nop by returning nil
* form escapes whose value is a symbol become callsites now
* forms can now be catenated together with + in the obvious way
* HashLiteralNode can be treated somewhat like a real hash, using #get
* <http://github.com/coatl/rubymacros/>
* <http://rubyforge.org/projects/rubymacros/>