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