class Macro::MethodNode
postpone macro expansion in methods til method defn is executed
Public Instance Methods
macro_expand(macros,session)
click to toggle source
# File lib/macro.rb, line 599 def macro_expand(macros,session) expand=proc{|x| Node===x ? Macro.expand(x,macros,session) : x} self.receiver= expand[receiver] args.map!( &expand )if args self.body= expand[body] rescues.map!( &expand )if rescues self.ensure_= expand[ensure_] self.else_= expand[else_] return self,false end
old_macro_expand(macros,session)
click to toggle source
# File lib/macro.rb, line 583 def old_macro_expand(macros,session) if session[:@expand_in_defs] session[:@expand_in_defs]=false expand=proc{|x| Node===x ? Macro.expand(x,macros,session) : x} self.receiver= expand[receiver] args.map!( &expand )if args self.body= expand[body] rescues.map!( &expand )if rescues self.ensure_= expand[ensure_] self.else_= expand[else_] session[:@expand_in_defs]=true return self,false else return Macro.postpone(self,session),false end end