Sha256: d4d272b5d2614c36967bc954baae5c5c19be3530d27abe4859d85719bea991b1
Contents?: true
Size: 1.84 KB
Versions: 1
Compression:
Stored size: 1.84 KB
Contents
module Quarry module Documentation class RubyCollector def initialize(*paths) @classes = [] @modules = [] end def collect ObjectSpace.each_object(Class) do |reference| @classes << ClassSpecification.new(reference) end ObjectSpace.each_object(Module) do |reference| @modules << ModuleSpecification.new(reference) end end def to_xml inner = [] inner << to_xml_for_modules inner << to_xml_for_classes inner = inner.join("\n") xml = %{<ruby-program>\n#{inner}\n</ruby-program>} end def to_xml_for_classes template = <<-END <class name="%s"> </class> END inner = [] @classes.each do inner << template % [ reference.name ] end inner = inner.join("\n") classes_xml = %{<classes>\n#{inner}\n</classes>} end def to_xml_for_modules template = <<-END <module name="%s"> </module> END inner = [] @modules.each do inner << template % [ reference.name ] end inner = inner.join("\n") classes_xml = %{<modules>\n#{inner}\n</modules>} end end # class ModuleSpecification attr :reference def initialize(reference) @reference = reference end def public_instance_methods reference.public_instance_methods(false) end def private_instance_methods reference.private_instance_methods(false) end def protected_instance_methods reference.protected_instance_methods(false) end def public_methods reference.public_methods(false) end def private_methods reference.private_methods(false) end def protected_methods reference.protected_methods(false) end end # class ClassSpecification < ModuleSpecification end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
quarry-0.4.0 | work/sandbox/iface_scanner.rb |