distil 0.14.4 → 0.14.5.a
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bin/distil +10 -0
- data/lib/distil/project.rb +10 -7
- data/lib/distil/source-file.rb +1 -1
- metadata +28 -164
- data/Buildfile +0 -33
- data/distil.gemspec +0 -783
- data/lib/distil/javascript-documentation-generator.rb +0 -49
- data/vendor/pdoc/LICENSE +0 -16
- data/vendor/pdoc/PDoc.tmbundle/Commands/Continue PDoc Comment.tmCommand +0 -39
- data/vendor/pdoc/PDoc.tmbundle/Macros/Collapse PDoc Blocks.tmMacro +0 -4084
- data/vendor/pdoc/PDoc.tmbundle/Macros/Expand PDoc Blocks.tmMacro +0 -1388
- data/vendor/pdoc/PDoc.tmbundle/Preferences/PDoc.tmPreferences +0 -50
- data/vendor/pdoc/PDoc.tmbundle/Snippets/class.tmSnippet +0 -24
- data/vendor/pdoc/PDoc.tmbundle/Snippets/constant.tmSnippet +0 -22
- data/vendor/pdoc/PDoc.tmbundle/Snippets/event.tmSnippet +0 -16
- data/vendor/pdoc/PDoc.tmbundle/Snippets/method.tmSnippet +0 -22
- data/vendor/pdoc/PDoc.tmbundle/Snippets/mixin.tmSnippet +0 -23
- data/vendor/pdoc/PDoc.tmbundle/Snippets/namespace.tmSnippet +0 -24
- data/vendor/pdoc/PDoc.tmbundle/Snippets/param.tmSnippet +0 -16
- data/vendor/pdoc/PDoc.tmbundle/Snippets/property.tmSnippet +0 -22
- data/vendor/pdoc/PDoc.tmbundle/Snippets/section.tmSnippet +0 -23
- data/vendor/pdoc/PDoc.tmbundle/Syntaxes/PDoc.tmLanguage +0 -33
- data/vendor/pdoc/PDoc.tmbundle/info.plist +0 -22
- data/vendor/pdoc/README.markdown +0 -34
- data/vendor/pdoc/Rakefile +0 -46
- data/vendor/pdoc/bin/pdoc +0 -58
- data/vendor/pdoc/lib/pdoc.rb +0 -32
- data/vendor/pdoc/lib/pdoc/error.rb +0 -4
- data/vendor/pdoc/lib/pdoc/generators.rb +0 -6
- data/vendor/pdoc/lib/pdoc/generators/abstract_generator.rb +0 -16
- data/vendor/pdoc/lib/pdoc/generators/html.rb +0 -8
- data/vendor/pdoc/lib/pdoc/generators/html/helpers.rb +0 -256
- data/vendor/pdoc/lib/pdoc/generators/html/page.rb +0 -71
- data/vendor/pdoc/lib/pdoc/generators/html/syntax_highlighter.rb +0 -41
- data/vendor/pdoc/lib/pdoc/generators/html/template.rb +0 -37
- data/vendor/pdoc/lib/pdoc/generators/html/website.rb +0 -194
- data/vendor/pdoc/lib/pdoc/generators/json.rb +0 -15
- data/vendor/pdoc/lib/pdoc/generators/pythonesque.rb +0 -105
- data/vendor/pdoc/lib/pdoc/models.rb +0 -47
- data/vendor/pdoc/lib/pdoc/models/argument.rb +0 -37
- data/vendor/pdoc/lib/pdoc/models/base.rb +0 -107
- data/vendor/pdoc/lib/pdoc/models/callable.rb +0 -19
- data/vendor/pdoc/lib/pdoc/models/class.rb +0 -28
- data/vendor/pdoc/lib/pdoc/models/class_method.rb +0 -18
- data/vendor/pdoc/lib/pdoc/models/class_property.rb +0 -9
- data/vendor/pdoc/lib/pdoc/models/constant.rb +0 -9
- data/vendor/pdoc/lib/pdoc/models/constructor.rb +0 -14
- data/vendor/pdoc/lib/pdoc/models/container.rb +0 -114
- data/vendor/pdoc/lib/pdoc/models/entity.rb +0 -54
- data/vendor/pdoc/lib/pdoc/models/instance_method.rb +0 -18
- data/vendor/pdoc/lib/pdoc/models/instance_property.rb +0 -9
- data/vendor/pdoc/lib/pdoc/models/mixin.rb +0 -10
- data/vendor/pdoc/lib/pdoc/models/namespace.rb +0 -10
- data/vendor/pdoc/lib/pdoc/models/root.rb +0 -27
- data/vendor/pdoc/lib/pdoc/models/section.rb +0 -19
- data/vendor/pdoc/lib/pdoc/models/signature.rb +0 -27
- data/vendor/pdoc/lib/pdoc/models/utility.rb +0 -11
- data/vendor/pdoc/lib/pdoc/parser.rb +0 -109
- data/vendor/pdoc/lib/pdoc/parser/argument_description_nodes.rb +0 -21
- data/vendor/pdoc/lib/pdoc/parser/basic_nodes.rb +0 -31
- data/vendor/pdoc/lib/pdoc/parser/description_nodes.rb +0 -42
- data/vendor/pdoc/lib/pdoc/parser/documentation_nodes.rb +0 -483
- data/vendor/pdoc/lib/pdoc/parser/ebnf_arguments_nodes.rb +0 -58
- data/vendor/pdoc/lib/pdoc/parser/ebnf_expression_nodes.rb +0 -227
- data/vendor/pdoc/lib/pdoc/parser/fragment.rb +0 -55
- data/vendor/pdoc/lib/pdoc/parser/section_content_nodes.rb +0 -19
- data/vendor/pdoc/lib/pdoc/parser/tags_nodes.rb +0 -14
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/argument_description.treetop +0 -31
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/basic.treetop +0 -41
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/description.treetop +0 -7
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/documentation.treetop +0 -75
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_arguments.treetop +0 -33
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_expression.treetop +0 -70
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_javascript.treetop +0 -54
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/events.treetop +0 -17
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/section_content.treetop +0 -8
- data/vendor/pdoc/lib/pdoc/parser/treetop_files/tags.treetop +0 -31
- data/vendor/pdoc/lib/pdoc/runner.rb +0 -110
- data/vendor/pdoc/lib/pdoc/treemaker.rb +0 -94
- data/vendor/pdoc/pdoc.gemspec +0 -31
- data/vendor/pdoc/templates/html/assets/images/pdoc/alias.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/class.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/class_deprecated.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/class_method.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/class_property.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/constant.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/constructor.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/deprecated.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/description.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/information.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/instance_method.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/instance_property.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/method.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/method_deprecated.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/mixin.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/namespace.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/property.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/related_to.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/search-background.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/section-background.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/section.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/selected-section-background.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/subclass.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/superclass.png +0 -0
- data/vendor/pdoc/templates/html/assets/images/pdoc/utility.png +0 -0
- data/vendor/pdoc/templates/html/assets/javascripts/pdoc/application.js +0 -478
- data/vendor/pdoc/templates/html/assets/javascripts/pdoc/prototype.js +0 -4874
- data/vendor/pdoc/templates/html/assets/javascripts/pdoc/tabs.js +0 -506
- data/vendor/pdoc/templates/html/assets/stylesheets/pdoc/api.css +0 -677
- data/vendor/pdoc/templates/html/assets/stylesheets/pdoc/pygments.css +0 -62
- data/vendor/pdoc/templates/html/helpers.rb +0 -35
- data/vendor/pdoc/templates/html/index.erb +0 -18
- data/vendor/pdoc/templates/html/item_index.js.erb +0 -6
- data/vendor/pdoc/templates/html/layout.erb +0 -67
- data/vendor/pdoc/templates/html/leaf.erb +0 -22
- data/vendor/pdoc/templates/html/node.erb +0 -30
- data/vendor/pdoc/templates/html/partials/class_relationships.erb +0 -19
- data/vendor/pdoc/templates/html/partials/classes.erb +0 -7
- data/vendor/pdoc/templates/html/partials/constructor.erb +0 -5
- data/vendor/pdoc/templates/html/partials/description.erb +0 -5
- data/vendor/pdoc/templates/html/partials/link_list.erb +0 -1
- data/vendor/pdoc/templates/html/partials/method_signatures.erb +0 -14
- data/vendor/pdoc/templates/html/partials/methodized_note.erb +0 -9
- data/vendor/pdoc/templates/html/partials/mixins.erb +0 -7
- data/vendor/pdoc/templates/html/partials/namespaces.erb +0 -7
- data/vendor/pdoc/templates/html/partials/related_utilities.erb +0 -5
- data/vendor/pdoc/templates/html/partials/relationships.erb +0 -11
- data/vendor/pdoc/templates/html/partials/short_description_list.erb +0 -7
- data/vendor/pdoc/templates/html/partials/title.erb +0 -22
- data/vendor/pdoc/templates/html/section.erb +0 -18
- data/vendor/pdoc/test/fixtures/ajax.js +0 -809
- data/vendor/pdoc/test/fixtures/prototype.js +0 -5789
- data/vendor/pdoc/test/fixtures/test.txt +0 -1
- data/vendor/pdoc/test/fixtures/text.txt +0 -13
- data/vendor/pdoc/test/unit/parser/argument_description_test.rb +0 -40
- data/vendor/pdoc/test/unit/parser/basic_test.rb +0 -55
- data/vendor/pdoc/test/unit/parser/description_test.rb +0 -34
- data/vendor/pdoc/test/unit/parser/documentation_test.rb +0 -520
- data/vendor/pdoc/test/unit/parser/ebnf_arguments_test.rb +0 -81
- data/vendor/pdoc/test/unit/parser/ebnf_expression_test.rb +0 -382
- data/vendor/pdoc/test/unit/parser/ebnf_javascript_test.rb +0 -37
- data/vendor/pdoc/test/unit/parser/events_test.rb +0 -27
- data/vendor/pdoc/test/unit/parser/section_content_test.rb +0 -44
- data/vendor/pdoc/test/unit/parser/tags_test.rb +0 -39
- data/vendor/pdoc/test/unit/parser/test_fragment.rb +0 -80
- data/vendor/pdoc/test/unit/parser_test_helper.rb +0 -62
- data/vendor/pdoc/test/unit/runner/basic_test.rb +0 -14
- data/vendor/pdoc/test/unit/templates/html_helpers_test.rb +0 -25
- data/vendor/pdoc/vendor/albino.rb +0 -122
- data/vendor/pdoc/website/html/documentation.html +0 -280
- data/vendor/pdoc/website/html/images/pdoc.jpg +0 -0
- data/vendor/pdoc/website/html/index.html +0 -84
- data/vendor/pdoc/website/html/stylesheets/main.css +0 -73
- data/vendor/pdoc/website/html/stylesheets/reset.css +0 -18
- data/vendor/pdoc/website/markdown/syntax.markdown +0 -226
- data/yuicompressor-2.4.6.zip +0 -0
@@ -1,194 +0,0 @@
|
|
1
|
-
module PDoc
|
2
|
-
module Generators
|
3
|
-
module Html
|
4
|
-
|
5
|
-
unless defined? TEMPLATES_DIRECTORY
|
6
|
-
TEMPLATES_DIRECTORY = File.join(TEMPLATES_DIR, "html")
|
7
|
-
end
|
8
|
-
|
9
|
-
class Website < AbstractGenerator
|
10
|
-
|
11
|
-
include Helpers::BaseHelper
|
12
|
-
include Helpers::LinkHelper
|
13
|
-
|
14
|
-
class << Website
|
15
|
-
attr_accessor :syntax_highlighter
|
16
|
-
attr_accessor :markdown_parser
|
17
|
-
def pretty_urls?
|
18
|
-
!!@pretty_urls
|
19
|
-
end
|
20
|
-
|
21
|
-
def pretty_urls=(boolean)
|
22
|
-
@pretty_urls = boolean
|
23
|
-
end
|
24
|
-
end
|
25
|
-
attr_reader :templates_directory, :custom_assets, :index_page
|
26
|
-
def initialize(parser_output, options = {})
|
27
|
-
super
|
28
|
-
@templates_directory = File.expand_path(options[:templates] || TEMPLATES_DIRECTORY)
|
29
|
-
@index_page = options[:index_page] && File.expand_path(options[:index_page])
|
30
|
-
@custom_assets = @options[:assets] && File.expand_path(@options[:assets])
|
31
|
-
self.class.syntax_highlighter = SyntaxHighlighter.new(options[:syntax_highlighter])
|
32
|
-
self.class.pretty_urls = options[:pretty_urls]
|
33
|
-
set_markdown_parser(options[:markdown_parser])
|
34
|
-
load_custom_helpers
|
35
|
-
end
|
36
|
-
|
37
|
-
def set_markdown_parser(parser = nil)
|
38
|
-
parser = :rdiscount if parser.nil?
|
39
|
-
case parser.to_sym
|
40
|
-
when :rdiscount
|
41
|
-
require 'rdiscount'
|
42
|
-
self.class.markdown_parser = RDiscount
|
43
|
-
when :bluecloth
|
44
|
-
require 'bluecloth'
|
45
|
-
self.class.markdown_parser = BlueCloth
|
46
|
-
when :maruku
|
47
|
-
require 'maruku'
|
48
|
-
self.class.markdown_parser = Maruku
|
49
|
-
else
|
50
|
-
raise "Requested unsupported Markdown parser: #{parser}."
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def load_custom_helpers
|
55
|
-
begin
|
56
|
-
require File.join(templates_directory, "helpers")
|
57
|
-
rescue LoadError => e
|
58
|
-
return nil
|
59
|
-
end
|
60
|
-
self.class.__send__(:include, Helpers::BaseHelper)
|
61
|
-
Page.__send__(:include, Helpers::BaseHelper)
|
62
|
-
Helpers.constants.map(&Helpers.method(:const_get)).each(&DocPage.method(:include))
|
63
|
-
end
|
64
|
-
|
65
|
-
# Generates the website to the specified directory.
|
66
|
-
def render(output)
|
67
|
-
@depth = 0
|
68
|
-
path = File.expand_path(output)
|
69
|
-
FileUtils.mkdir_p(path)
|
70
|
-
Dir.chdir(path) do
|
71
|
-
|
72
|
-
render_index
|
73
|
-
copy_assets
|
74
|
-
copy_custom_assets
|
75
|
-
|
76
|
-
render_children(root)
|
77
|
-
if root.sections?
|
78
|
-
root.sections.each do |section|
|
79
|
-
@depth = 0
|
80
|
-
render_template('section', { :doc_instance => section })
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
dest = File.join("javascripts", "pdoc", "item_index.js")
|
85
|
-
DocPage.new("item_index.js", false, variables).render_to_file(dest)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def render_index
|
90
|
-
vars = variables.merge(:index_page_content => index_page_content, :home => true)
|
91
|
-
DocPage.new('index', 'layout', vars).render_to_file('index.html')
|
92
|
-
end
|
93
|
-
|
94
|
-
def render_template(template, var = {})
|
95
|
-
@depth += 1
|
96
|
-
doc = var[:doc_instance]
|
97
|
-
dest = doc.url(File::SEPARATOR)
|
98
|
-
puts " Rendering #{dest}..."
|
99
|
-
FileUtils.mkdir_p(dest)
|
100
|
-
DocPage.new(template, variables.merge(var)).render_to_file(File.join(dest, 'index.html'))
|
101
|
-
render_json("#{dest}.json", doc) if json_api?
|
102
|
-
render_children(doc)
|
103
|
-
@depth -= 1
|
104
|
-
end
|
105
|
-
|
106
|
-
def render_json(dest, obj)
|
107
|
-
open(dest, 'w') { |file| file << obj.to_json }
|
108
|
-
end
|
109
|
-
|
110
|
-
def render_children(obj)
|
111
|
-
[:namespaces, :classes, :mixins].each do |prop|
|
112
|
-
obj.send(prop).each(&method(:render_node)) if obj.respond_to?(prop)
|
113
|
-
end
|
114
|
-
|
115
|
-
obj.utilities.each(&method(:render_leaf)) if obj.respond_to?(:utilities)
|
116
|
-
render_leaf(obj.constructor) if obj.respond_to?(:constructor) && obj.constructor
|
117
|
-
|
118
|
-
[:instance_methods, :instance_properties, :class_methods, :class_properties, :constants].each do |prop|
|
119
|
-
obj.send(prop).each(&method(:render_leaf)) if obj.respond_to?(prop)
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
# Copies the content of the assets folder to the generated website's
|
124
|
-
# root directory.
|
125
|
-
def copy_assets
|
126
|
-
FileUtils.cp_r(Dir.glob(File.join(templates_directory, "assets", "**")), '.')
|
127
|
-
end
|
128
|
-
|
129
|
-
def copy_custom_assets
|
130
|
-
if custom_assets
|
131
|
-
FileUtils.cp_r(Dir.glob(File.join(custom_assets, "**")), ".")
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
def render_leaf(object)
|
136
|
-
is_proto_prop = is_proto_prop?(object)
|
137
|
-
@depth += 1 if is_proto_prop
|
138
|
-
render_template('leaf', { :doc_instance => object })
|
139
|
-
@depth -= 1 if is_proto_prop
|
140
|
-
end
|
141
|
-
|
142
|
-
def render_node(object)
|
143
|
-
render_template('node', { :doc_instance => object })
|
144
|
-
end
|
145
|
-
|
146
|
-
private
|
147
|
-
def variables
|
148
|
-
{
|
149
|
-
:root => root,
|
150
|
-
:depth => @depth,
|
151
|
-
:templates_directory => templates_directory,
|
152
|
-
:name => @options[:name],
|
153
|
-
:short_name => @options[:short_name] || @options[:name],
|
154
|
-
:home_url => @options[:home_url],
|
155
|
-
:version => @options[:version],
|
156
|
-
:footer => footer,
|
157
|
-
:index_header => index_header,
|
158
|
-
:header => header,
|
159
|
-
:timestamp => timestamp
|
160
|
-
}
|
161
|
-
end
|
162
|
-
|
163
|
-
def header
|
164
|
-
@header ||= @options[:header] ? htmlize(@options[:header]) : ''
|
165
|
-
end
|
166
|
-
|
167
|
-
def index_header
|
168
|
-
@index_header ||= @options[:index_header] ? htmlize(@options[:index_header]) : ''
|
169
|
-
end
|
170
|
-
|
171
|
-
def footer
|
172
|
-
@footer ||= @options[:footer] ? htmlize(@options[:footer]) : ''
|
173
|
-
end
|
174
|
-
|
175
|
-
def timestamp
|
176
|
-
@timestamp ||= @options[:timestamp] == false ? nil : Time.now.utc
|
177
|
-
end
|
178
|
-
|
179
|
-
def json_api?
|
180
|
-
!!options[:json_api]
|
181
|
-
end
|
182
|
-
|
183
|
-
def is_proto_prop?(object)
|
184
|
-
object.is_a?(Models::InstanceMethod) ||
|
185
|
-
object.is_a?(Models::InstanceProperty)
|
186
|
-
end
|
187
|
-
|
188
|
-
def index_page_content
|
189
|
-
@index_page ? htmlize(File.read(@index_page)) : nil
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
module PDoc
|
3
|
-
module Generators
|
4
|
-
class JSON < AbstractGenerator
|
5
|
-
def render(output)
|
6
|
-
open(output, "w+") do |file|
|
7
|
-
json = root.registry.map do |k, obj|
|
8
|
-
"#{k.inspect}: #{obj.to_json}"
|
9
|
-
end.join(",\n ")
|
10
|
-
file << "{\n #{json}\n}"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,105 +0,0 @@
|
|
1
|
-
module PDoc
|
2
|
-
module Generators
|
3
|
-
class Pythonesque < AbstractGenerator
|
4
|
-
def render(output)
|
5
|
-
open(output, "w+") do |file|
|
6
|
-
file << render_to_str
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def render_to_str
|
11
|
-
selected_objects.map do |k, obj|
|
12
|
-
js_name = to_js_name(obj)
|
13
|
-
desc = Description.new(obj).to_escaped_str
|
14
|
-
" #{js_name}.__doc__ = '#{desc}';"
|
15
|
-
end.join("\n")
|
16
|
-
end
|
17
|
-
|
18
|
-
def to_js_name(obj)
|
19
|
-
if obj.is_a?(Models::InstanceMethod)
|
20
|
-
obj.full_name.sub('#', '.prototype.')
|
21
|
-
else
|
22
|
-
obj.full_name
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def selected_objects
|
27
|
-
root.registry.select do |k, v|
|
28
|
-
(v.is_a?(Models::InstanceMethod) ||
|
29
|
-
v.is_a?(Models::ClassMethod) ||
|
30
|
-
v.is_a?(Models::Mixin) ||
|
31
|
-
v.is_a?(Models::Class) ||
|
32
|
-
v.is_a?(Models::Namespace) ||
|
33
|
-
v.is_a?(Models::Utility)) && !v.alias?
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
class Description
|
38
|
-
JS_ESCAPE_MAP = {
|
39
|
-
'\\' => '\\\\',
|
40
|
-
'</' => '<\/',
|
41
|
-
"\r\n" => '\n',
|
42
|
-
"\n" => '\n',
|
43
|
-
"\r" => '\n',
|
44
|
-
'"' => '\\"',
|
45
|
-
"'" => "\\'"
|
46
|
-
}
|
47
|
-
|
48
|
-
attr_reader :obj
|
49
|
-
def initialize(obj)
|
50
|
-
@obj = obj
|
51
|
-
end
|
52
|
-
|
53
|
-
def to_str
|
54
|
-
return "#{obj.full_name} has been deprecated." if obj.deprecated?
|
55
|
-
results = []
|
56
|
-
results << sig
|
57
|
-
results << args if obj.respond_to?(:arguments) && obj.arguments?
|
58
|
-
results << desc
|
59
|
-
results << aliases if obj.aliases?
|
60
|
-
if obj.respond_to?(:constructor) && obj.constructor
|
61
|
-
results << "\nWhen called as a constructor:\n"
|
62
|
-
results << Description.new(obj.constructor).to_str
|
63
|
-
end
|
64
|
-
results.join("\n")
|
65
|
-
end
|
66
|
-
|
67
|
-
def to_escaped_str
|
68
|
-
escape(to_str)
|
69
|
-
end
|
70
|
-
|
71
|
-
private
|
72
|
-
def escape(str)
|
73
|
-
str.gsub(/(\\|<\/|\r\n|[\n\r"'])/) {
|
74
|
-
JS_ESCAPE_MAP[$1]
|
75
|
-
}
|
76
|
-
end
|
77
|
-
|
78
|
-
def sig
|
79
|
-
if obj.signatures?
|
80
|
-
obj.signatures.map do |s|
|
81
|
-
s.return_value ? "#{s.name} -> #{s.return_value}" : s.name
|
82
|
-
end.join("\n")
|
83
|
-
else
|
84
|
-
obj.full_name
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def aliases
|
89
|
-
aliases = obj.aliases.map { |a| a.full_name }.join(', ')
|
90
|
-
"Aliased as: #{aliases}."
|
91
|
-
end
|
92
|
-
|
93
|
-
def args
|
94
|
-
obj.arguments.map do |a|
|
95
|
-
" - #{a.name} (#{a.types.join(' | ')}): #{a.description.chomp}"
|
96
|
-
end.join("\n")
|
97
|
-
end
|
98
|
-
|
99
|
-
def desc
|
100
|
-
obj.short_description ? obj.short_description : ''
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__), 'models')
|
2
|
-
|
3
|
-
require 'models/base'
|
4
|
-
require 'models/entity'
|
5
|
-
require 'models/container'
|
6
|
-
require 'models/callable'
|
7
|
-
require 'models/section'
|
8
|
-
require 'models/root'
|
9
|
-
require 'models/argument'
|
10
|
-
require 'models/class'
|
11
|
-
require 'models/class_method'
|
12
|
-
require 'models/class_property'
|
13
|
-
require 'models/constant'
|
14
|
-
require 'models/constructor'
|
15
|
-
require 'models/instance_method'
|
16
|
-
require 'models/instance_property'
|
17
|
-
require 'models/mixin'
|
18
|
-
require 'models/namespace'
|
19
|
-
require 'models/signature'
|
20
|
-
require 'models/utility'
|
21
|
-
|
22
|
-
module PDoc
|
23
|
-
module Models
|
24
|
-
class << Models
|
25
|
-
attr_accessor :src_code_href
|
26
|
-
attr_accessor :doc_href
|
27
|
-
end
|
28
|
-
|
29
|
-
class Base
|
30
|
-
@@subclasses_by_type = {
|
31
|
-
'section' => Section,
|
32
|
-
'argument' => Argument,
|
33
|
-
'class' => Class,
|
34
|
-
'class method' => ClassMethod,
|
35
|
-
'class property' => ClassProperty,
|
36
|
-
'constant' => Constant,
|
37
|
-
'constructor' => Constructor,
|
38
|
-
'instance method' => InstanceMethod,
|
39
|
-
'instance property' => InstanceProperty,
|
40
|
-
'mixin' => Mixin,
|
41
|
-
'namespace' => Namespace,
|
42
|
-
'signature' => Signature,
|
43
|
-
'utility' => Utility
|
44
|
-
}
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
module PDoc
|
2
|
-
module Models
|
3
|
-
class Argument < Base
|
4
|
-
attr_reader :name
|
5
|
-
attr_reader :default_value
|
6
|
-
|
7
|
-
def attach_to_parent(parent)
|
8
|
-
parent.arguments << self
|
9
|
-
end
|
10
|
-
|
11
|
-
# returns the argument's id in the form
|
12
|
-
# method_id:argument_name. So, for example:
|
13
|
-
# document.querySelectorAll:cssSelector
|
14
|
-
def id
|
15
|
-
@id ||= "#{parent.id}:#{name}"
|
16
|
-
end
|
17
|
-
|
18
|
-
def optional?
|
19
|
-
!!@optional
|
20
|
-
end
|
21
|
-
|
22
|
-
def types
|
23
|
-
@types ||= []
|
24
|
-
end
|
25
|
-
|
26
|
-
def to_hash
|
27
|
-
{
|
28
|
-
:name => name,
|
29
|
-
:description => description,
|
30
|
-
:default_value => default_value,
|
31
|
-
:optional => optional?,
|
32
|
-
:types => types
|
33
|
-
}
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,107 +0,0 @@
|
|
1
|
-
module PDoc
|
2
|
-
module Models
|
3
|
-
class Base
|
4
|
-
@@subclasses_by_type = {}
|
5
|
-
|
6
|
-
def self.instantiate(attributes)
|
7
|
-
@@subclasses_by_type[attributes['type']].new(attributes)
|
8
|
-
end
|
9
|
-
|
10
|
-
attr_accessor :parent
|
11
|
-
attr_reader :description
|
12
|
-
attr_reader :id
|
13
|
-
attr_reader :type
|
14
|
-
attr_reader :file
|
15
|
-
attr_reader :line_number
|
16
|
-
|
17
|
-
def initialize(attributes = {})
|
18
|
-
attributes.each { |k, v| instance_variable_set("@#{k}", v) }
|
19
|
-
end
|
20
|
-
|
21
|
-
def register_on(registry)
|
22
|
-
registry[id] = self
|
23
|
-
end
|
24
|
-
|
25
|
-
def short_description
|
26
|
-
@short_description ||= description.split(/\n\n/).first
|
27
|
-
end
|
28
|
-
|
29
|
-
def deprecated?
|
30
|
-
return !!@deprecated if @deprecated
|
31
|
-
parent.respond_to?(:deprecated?) ? parent.deprecated? : false
|
32
|
-
end
|
33
|
-
|
34
|
-
def full_name
|
35
|
-
@id
|
36
|
-
end
|
37
|
-
|
38
|
-
def name
|
39
|
-
@name ||= @id.match(/[\w\d\$]+$/)[0]
|
40
|
-
end
|
41
|
-
|
42
|
-
def ancestor_of?(obj)
|
43
|
-
while obj = obj.parent
|
44
|
-
return true if obj == self
|
45
|
-
end
|
46
|
-
false
|
47
|
-
end
|
48
|
-
|
49
|
-
def descendant_of?(obj)
|
50
|
-
obj.ancestor_of?(self)
|
51
|
-
end
|
52
|
-
|
53
|
-
def doc_href
|
54
|
-
proc = Models.doc_href
|
55
|
-
@doc_href ||= proc ? proc.call(self) : nil
|
56
|
-
end
|
57
|
-
|
58
|
-
def url(separator = '/')
|
59
|
-
result = []
|
60
|
-
obj = self
|
61
|
-
begin
|
62
|
-
result << obj.normalized_name
|
63
|
-
if obj.is_a?(Models::InstanceMethod) || obj.is_a?(Models::InstanceProperty)
|
64
|
-
result << 'prototype'
|
65
|
-
end
|
66
|
-
obj = obj.parent
|
67
|
-
end until obj.is_a?(Models::Root)
|
68
|
-
result.reverse.join(separator)
|
69
|
-
end
|
70
|
-
|
71
|
-
def to_hash
|
72
|
-
{
|
73
|
-
:deprecated => deprecated?,
|
74
|
-
:id => id,
|
75
|
-
:type => type,
|
76
|
-
:description => description,
|
77
|
-
:short_description => short_description,
|
78
|
-
:parent => parent.is_a?(Models::Root) ? nil : parent.id,
|
79
|
-
:doc_href => doc_href
|
80
|
-
}
|
81
|
-
end
|
82
|
-
|
83
|
-
def to_json(*args)
|
84
|
-
to_hash.to_json(*args)
|
85
|
-
end
|
86
|
-
|
87
|
-
def normalized_name
|
88
|
-
@normalized_name ||= name.gsub(/(^\$+$)|(^\$+)|(\$+$)|(\$+)/) do |m|
|
89
|
-
dollar = Array.new(m.length, 'dollar').join('-')
|
90
|
-
if $1
|
91
|
-
dollar
|
92
|
-
elsif $2
|
93
|
-
"#{dollar}-"
|
94
|
-
elsif $3
|
95
|
-
"-#{dollar}"
|
96
|
-
elsif $4
|
97
|
-
"-#{dollar}-"
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
def inspect
|
103
|
-
"#<#{self.class} #{id}>"
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|