#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../lib/yard'

log.level = Logger::DEBUG
YARD::Registry.load
gclass = eval("YARD::Generators::#{ARGV[0]}")
sclass = ARGV[1] == "nil" ? nil : eval("YARD::Serializers::#{ARGV[1]}") 
obj = ARGV[2] == "all" ? YARD::Registry.all(:module, :class) : P(ARGV[2])
format = ARGV[3].to_sym

if sclass
  sclass = sclass.new 
else
  sclass = YARD::Serializers::StdoutSerializer.new(80)
end
verifier = lambda {|gen, obj| return false if gen.respond_to?(:visibility) && [:protected, :private].include?(gen.visibility) }
gclass.new(:format => format, :template => :default, :serializer => sclass, :verifier => verifier).generate(obj)
