Class: PDoc::Generators::Pythonesque

Inherits:
AbstractGenerator show all
Defined in:
lib/pdoc/generators/pythonesque.rb

Defined Under Namespace

Classes: Description

Instance Attribute Summary

Attributes inherited from AbstractGenerator

#options, #root

Instance Method Summary collapse

Methods inherited from AbstractGenerator

#initialize, #mkdir

Constructor Details

This class inherits a constructor from PDoc::Generators::AbstractGenerator

Instance Method Details

#render(output) ⇒ Object



4
5
6
7
8
# File 'lib/pdoc/generators/pythonesque.rb', line 4

def render(output)
  open(output, "w+") do |file|
    file << render_to_str
  end
end

#render_to_strObject



10
11
12
13
14
15
16
# File 'lib/pdoc/generators/pythonesque.rb', line 10

def render_to_str
  selected_objects.map do |k, obj|
    js_name = to_js_name(obj)
    desc = Description.new(obj).to_escaped_str
    " #{js_name}.__doc__ = '#{desc}';"
  end.join("\n")
end

#selected_objectsObject



26
27
28
29
30
31
32
33
34
35
# File 'lib/pdoc/generators/pythonesque.rb', line 26

def selected_objects
  root.registry.select do |k, v|
    (v.is_a?(Models::InstanceMethod) ||
    v.is_a?(Models::ClassMethod) ||
    v.is_a?(Models::Mixin) ||
    v.is_a?(Models::Class) ||
    v.is_a?(Models::Namespace) ||
    v.is_a?(Models::Utility)) && !v.alias?
  end
end

#to_js_name(obj) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/pdoc/generators/pythonesque.rb', line 18

def to_js_name(obj)
  if obj.is_a?(Models::InstanceMethod)
    obj.full_name.sub('#', '.prototype.')
  else
    obj.full_name
  end
end