Class RDoc::RI::Writer
In: ri/writer.rb
Parent: Object

Methods

Public Class methods

[Source]

   # File ri/writer.rb, line 6
6:   def self.class_desc_path(dir, class_desc)
7:     File.join(dir, "cdesc-" + class_desc.name + ".yaml")
8:   end

And the reverse operation

[Source]

    # File ri/writer.rb, line 21
21:   def self.external_to_internal(name)
22:     name.gsub(/%([0-9a-f]{2,2})/) { $1.to_i(16).chr }
23:   end

Convert a name from internal form (containing punctuation) to an external form (where punctuation is replaced by %xx)

[Source]

    # File ri/writer.rb, line 14
14:   def self.internal_to_external(name)
15:     name.gsub(/\W/) { "%%%02x" % $&[0].ord }
16:   end

[Source]

    # File ri/writer.rb, line 25
25:   def initialize(base_dir)
26:     @base_dir = base_dir
27:   end

Public Instance methods

[Source]

    # File ri/writer.rb, line 33
33:   def add_class(class_desc)
34:     dir = path_to_dir(class_desc.full_name)
35:     FileUtils.mkdir_p(dir)
36:     class_file_name = self.class.class_desc_path(dir, class_desc)
37:     File.open(class_file_name, "w") do |f|
38:       f.write(class_desc.serialize)
39:     end
40:   end

[Source]

    # File ri/writer.rb, line 42
42:   def add_method(class_desc, method_desc)
43:     dir = path_to_dir(class_desc.full_name)
44:     file_name = self.class.internal_to_external(method_desc.name)
45:     meth_file_name = File.join(dir, file_name)
46:     if method_desc.is_singleton
47:       meth_file_name += "-c.yaml"
48:     else
49:       meth_file_name += "-i.yaml"
50:     end
51: 
52:     File.open(meth_file_name, "w") do |f|
53:       f.write(method_desc.serialize)
54:     end
55:   end

[Source]

    # File ri/writer.rb, line 59
59:   def path_to_dir(class_name)
60:     File.join(@base_dir, *class_name.split('::'))
61:   end

[Source]

    # File ri/writer.rb, line 29
29:   def remove_class(class_desc)
30:     FileUtils.rm_rf(path_to_dir(class_desc.full_name))
31:   end

[Validate]