Meta code commenter (mcc)

Comments your meta code.

Usage

require 'mcc'

params = ARGV.inject({}) do |hash, arg|
key, value = arg.split(/=/)
hash[key] = value
hash
end

puts MetaCodeCommenter.comment(STDIN.readlines)

Command line

$ mcc key1=value key2=value < my_meta_code

Example

$ cat code 
def #{name}(proc=nil, &blk)              
proc ||= blk                           
@#{name} = Proc.new do |ptr,data,len|  
  if data                              
    proc.call(data.get_string(0, len)) 
  else                                 
    proc.call                          
  end                                  
  @abort ? 1 : 0                       
end                                    
@parser[:#{name}] = @#{name}           
end                                      

$ mcc name=on_headers < code 
def #{name}(proc=nil, &blk)                 # def name(proc=nil, &blk)              
proc ||= blk                              #   proc ||= blk                           
@#{name} = Proc.new do |ptr,data,len|     #   @name = Proc.new do |ptr,data,len|  
  if data                                 #     if data                              
    proc.call(data.get_string(0, len))    #       proc.call(data.get_string(0, len)) 
  else                                    #     else                                 
    proc.call                             #       proc.call                          
  end                                     #     end                                  
  @abort ? 1 : 0                          #     @abort ? 1 : 0                       
end                                       #   end                                    
@parser[:#{name}] = @#{name}              #   @parser[:name] = @name           
end                                         # end                                      

Installation (not yet)

gem install meta_code_commenter

Authors

  • Peter Suschlik

TODO

  • Fix failing test (double quotes don't work yet)
  • Use thor or something or mcc