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.
Files changed (157) hide show
  1. data/VERSION +1 -1
  2. data/bin/distil +10 -0
  3. data/lib/distil/project.rb +10 -7
  4. data/lib/distil/source-file.rb +1 -1
  5. metadata +28 -164
  6. data/Buildfile +0 -33
  7. data/distil.gemspec +0 -783
  8. data/lib/distil/javascript-documentation-generator.rb +0 -49
  9. data/vendor/pdoc/LICENSE +0 -16
  10. data/vendor/pdoc/PDoc.tmbundle/Commands/Continue PDoc Comment.tmCommand +0 -39
  11. data/vendor/pdoc/PDoc.tmbundle/Macros/Collapse PDoc Blocks.tmMacro +0 -4084
  12. data/vendor/pdoc/PDoc.tmbundle/Macros/Expand PDoc Blocks.tmMacro +0 -1388
  13. data/vendor/pdoc/PDoc.tmbundle/Preferences/PDoc.tmPreferences +0 -50
  14. data/vendor/pdoc/PDoc.tmbundle/Snippets/class.tmSnippet +0 -24
  15. data/vendor/pdoc/PDoc.tmbundle/Snippets/constant.tmSnippet +0 -22
  16. data/vendor/pdoc/PDoc.tmbundle/Snippets/event.tmSnippet +0 -16
  17. data/vendor/pdoc/PDoc.tmbundle/Snippets/method.tmSnippet +0 -22
  18. data/vendor/pdoc/PDoc.tmbundle/Snippets/mixin.tmSnippet +0 -23
  19. data/vendor/pdoc/PDoc.tmbundle/Snippets/namespace.tmSnippet +0 -24
  20. data/vendor/pdoc/PDoc.tmbundle/Snippets/param.tmSnippet +0 -16
  21. data/vendor/pdoc/PDoc.tmbundle/Snippets/property.tmSnippet +0 -22
  22. data/vendor/pdoc/PDoc.tmbundle/Snippets/section.tmSnippet +0 -23
  23. data/vendor/pdoc/PDoc.tmbundle/Syntaxes/PDoc.tmLanguage +0 -33
  24. data/vendor/pdoc/PDoc.tmbundle/info.plist +0 -22
  25. data/vendor/pdoc/README.markdown +0 -34
  26. data/vendor/pdoc/Rakefile +0 -46
  27. data/vendor/pdoc/bin/pdoc +0 -58
  28. data/vendor/pdoc/lib/pdoc.rb +0 -32
  29. data/vendor/pdoc/lib/pdoc/error.rb +0 -4
  30. data/vendor/pdoc/lib/pdoc/generators.rb +0 -6
  31. data/vendor/pdoc/lib/pdoc/generators/abstract_generator.rb +0 -16
  32. data/vendor/pdoc/lib/pdoc/generators/html.rb +0 -8
  33. data/vendor/pdoc/lib/pdoc/generators/html/helpers.rb +0 -256
  34. data/vendor/pdoc/lib/pdoc/generators/html/page.rb +0 -71
  35. data/vendor/pdoc/lib/pdoc/generators/html/syntax_highlighter.rb +0 -41
  36. data/vendor/pdoc/lib/pdoc/generators/html/template.rb +0 -37
  37. data/vendor/pdoc/lib/pdoc/generators/html/website.rb +0 -194
  38. data/vendor/pdoc/lib/pdoc/generators/json.rb +0 -15
  39. data/vendor/pdoc/lib/pdoc/generators/pythonesque.rb +0 -105
  40. data/vendor/pdoc/lib/pdoc/models.rb +0 -47
  41. data/vendor/pdoc/lib/pdoc/models/argument.rb +0 -37
  42. data/vendor/pdoc/lib/pdoc/models/base.rb +0 -107
  43. data/vendor/pdoc/lib/pdoc/models/callable.rb +0 -19
  44. data/vendor/pdoc/lib/pdoc/models/class.rb +0 -28
  45. data/vendor/pdoc/lib/pdoc/models/class_method.rb +0 -18
  46. data/vendor/pdoc/lib/pdoc/models/class_property.rb +0 -9
  47. data/vendor/pdoc/lib/pdoc/models/constant.rb +0 -9
  48. data/vendor/pdoc/lib/pdoc/models/constructor.rb +0 -14
  49. data/vendor/pdoc/lib/pdoc/models/container.rb +0 -114
  50. data/vendor/pdoc/lib/pdoc/models/entity.rb +0 -54
  51. data/vendor/pdoc/lib/pdoc/models/instance_method.rb +0 -18
  52. data/vendor/pdoc/lib/pdoc/models/instance_property.rb +0 -9
  53. data/vendor/pdoc/lib/pdoc/models/mixin.rb +0 -10
  54. data/vendor/pdoc/lib/pdoc/models/namespace.rb +0 -10
  55. data/vendor/pdoc/lib/pdoc/models/root.rb +0 -27
  56. data/vendor/pdoc/lib/pdoc/models/section.rb +0 -19
  57. data/vendor/pdoc/lib/pdoc/models/signature.rb +0 -27
  58. data/vendor/pdoc/lib/pdoc/models/utility.rb +0 -11
  59. data/vendor/pdoc/lib/pdoc/parser.rb +0 -109
  60. data/vendor/pdoc/lib/pdoc/parser/argument_description_nodes.rb +0 -21
  61. data/vendor/pdoc/lib/pdoc/parser/basic_nodes.rb +0 -31
  62. data/vendor/pdoc/lib/pdoc/parser/description_nodes.rb +0 -42
  63. data/vendor/pdoc/lib/pdoc/parser/documentation_nodes.rb +0 -483
  64. data/vendor/pdoc/lib/pdoc/parser/ebnf_arguments_nodes.rb +0 -58
  65. data/vendor/pdoc/lib/pdoc/parser/ebnf_expression_nodes.rb +0 -227
  66. data/vendor/pdoc/lib/pdoc/parser/fragment.rb +0 -55
  67. data/vendor/pdoc/lib/pdoc/parser/section_content_nodes.rb +0 -19
  68. data/vendor/pdoc/lib/pdoc/parser/tags_nodes.rb +0 -14
  69. data/vendor/pdoc/lib/pdoc/parser/treetop_files/argument_description.treetop +0 -31
  70. data/vendor/pdoc/lib/pdoc/parser/treetop_files/basic.treetop +0 -41
  71. data/vendor/pdoc/lib/pdoc/parser/treetop_files/description.treetop +0 -7
  72. data/vendor/pdoc/lib/pdoc/parser/treetop_files/documentation.treetop +0 -75
  73. data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_arguments.treetop +0 -33
  74. data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_expression.treetop +0 -70
  75. data/vendor/pdoc/lib/pdoc/parser/treetop_files/ebnf_javascript.treetop +0 -54
  76. data/vendor/pdoc/lib/pdoc/parser/treetop_files/events.treetop +0 -17
  77. data/vendor/pdoc/lib/pdoc/parser/treetop_files/section_content.treetop +0 -8
  78. data/vendor/pdoc/lib/pdoc/parser/treetop_files/tags.treetop +0 -31
  79. data/vendor/pdoc/lib/pdoc/runner.rb +0 -110
  80. data/vendor/pdoc/lib/pdoc/treemaker.rb +0 -94
  81. data/vendor/pdoc/pdoc.gemspec +0 -31
  82. data/vendor/pdoc/templates/html/assets/images/pdoc/alias.png +0 -0
  83. data/vendor/pdoc/templates/html/assets/images/pdoc/class.png +0 -0
  84. data/vendor/pdoc/templates/html/assets/images/pdoc/class_deprecated.png +0 -0
  85. data/vendor/pdoc/templates/html/assets/images/pdoc/class_method.png +0 -0
  86. data/vendor/pdoc/templates/html/assets/images/pdoc/class_property.png +0 -0
  87. data/vendor/pdoc/templates/html/assets/images/pdoc/constant.png +0 -0
  88. data/vendor/pdoc/templates/html/assets/images/pdoc/constructor.png +0 -0
  89. data/vendor/pdoc/templates/html/assets/images/pdoc/deprecated.png +0 -0
  90. data/vendor/pdoc/templates/html/assets/images/pdoc/description.png +0 -0
  91. data/vendor/pdoc/templates/html/assets/images/pdoc/information.png +0 -0
  92. data/vendor/pdoc/templates/html/assets/images/pdoc/instance_method.png +0 -0
  93. data/vendor/pdoc/templates/html/assets/images/pdoc/instance_property.png +0 -0
  94. data/vendor/pdoc/templates/html/assets/images/pdoc/method.png +0 -0
  95. data/vendor/pdoc/templates/html/assets/images/pdoc/method_deprecated.png +0 -0
  96. data/vendor/pdoc/templates/html/assets/images/pdoc/mixin.png +0 -0
  97. data/vendor/pdoc/templates/html/assets/images/pdoc/namespace.png +0 -0
  98. data/vendor/pdoc/templates/html/assets/images/pdoc/property.png +0 -0
  99. data/vendor/pdoc/templates/html/assets/images/pdoc/related_to.png +0 -0
  100. data/vendor/pdoc/templates/html/assets/images/pdoc/search-background.png +0 -0
  101. data/vendor/pdoc/templates/html/assets/images/pdoc/section-background.png +0 -0
  102. data/vendor/pdoc/templates/html/assets/images/pdoc/section.png +0 -0
  103. data/vendor/pdoc/templates/html/assets/images/pdoc/selected-section-background.png +0 -0
  104. data/vendor/pdoc/templates/html/assets/images/pdoc/subclass.png +0 -0
  105. data/vendor/pdoc/templates/html/assets/images/pdoc/superclass.png +0 -0
  106. data/vendor/pdoc/templates/html/assets/images/pdoc/utility.png +0 -0
  107. data/vendor/pdoc/templates/html/assets/javascripts/pdoc/application.js +0 -478
  108. data/vendor/pdoc/templates/html/assets/javascripts/pdoc/prototype.js +0 -4874
  109. data/vendor/pdoc/templates/html/assets/javascripts/pdoc/tabs.js +0 -506
  110. data/vendor/pdoc/templates/html/assets/stylesheets/pdoc/api.css +0 -677
  111. data/vendor/pdoc/templates/html/assets/stylesheets/pdoc/pygments.css +0 -62
  112. data/vendor/pdoc/templates/html/helpers.rb +0 -35
  113. data/vendor/pdoc/templates/html/index.erb +0 -18
  114. data/vendor/pdoc/templates/html/item_index.js.erb +0 -6
  115. data/vendor/pdoc/templates/html/layout.erb +0 -67
  116. data/vendor/pdoc/templates/html/leaf.erb +0 -22
  117. data/vendor/pdoc/templates/html/node.erb +0 -30
  118. data/vendor/pdoc/templates/html/partials/class_relationships.erb +0 -19
  119. data/vendor/pdoc/templates/html/partials/classes.erb +0 -7
  120. data/vendor/pdoc/templates/html/partials/constructor.erb +0 -5
  121. data/vendor/pdoc/templates/html/partials/description.erb +0 -5
  122. data/vendor/pdoc/templates/html/partials/link_list.erb +0 -1
  123. data/vendor/pdoc/templates/html/partials/method_signatures.erb +0 -14
  124. data/vendor/pdoc/templates/html/partials/methodized_note.erb +0 -9
  125. data/vendor/pdoc/templates/html/partials/mixins.erb +0 -7
  126. data/vendor/pdoc/templates/html/partials/namespaces.erb +0 -7
  127. data/vendor/pdoc/templates/html/partials/related_utilities.erb +0 -5
  128. data/vendor/pdoc/templates/html/partials/relationships.erb +0 -11
  129. data/vendor/pdoc/templates/html/partials/short_description_list.erb +0 -7
  130. data/vendor/pdoc/templates/html/partials/title.erb +0 -22
  131. data/vendor/pdoc/templates/html/section.erb +0 -18
  132. data/vendor/pdoc/test/fixtures/ajax.js +0 -809
  133. data/vendor/pdoc/test/fixtures/prototype.js +0 -5789
  134. data/vendor/pdoc/test/fixtures/test.txt +0 -1
  135. data/vendor/pdoc/test/fixtures/text.txt +0 -13
  136. data/vendor/pdoc/test/unit/parser/argument_description_test.rb +0 -40
  137. data/vendor/pdoc/test/unit/parser/basic_test.rb +0 -55
  138. data/vendor/pdoc/test/unit/parser/description_test.rb +0 -34
  139. data/vendor/pdoc/test/unit/parser/documentation_test.rb +0 -520
  140. data/vendor/pdoc/test/unit/parser/ebnf_arguments_test.rb +0 -81
  141. data/vendor/pdoc/test/unit/parser/ebnf_expression_test.rb +0 -382
  142. data/vendor/pdoc/test/unit/parser/ebnf_javascript_test.rb +0 -37
  143. data/vendor/pdoc/test/unit/parser/events_test.rb +0 -27
  144. data/vendor/pdoc/test/unit/parser/section_content_test.rb +0 -44
  145. data/vendor/pdoc/test/unit/parser/tags_test.rb +0 -39
  146. data/vendor/pdoc/test/unit/parser/test_fragment.rb +0 -80
  147. data/vendor/pdoc/test/unit/parser_test_helper.rb +0 -62
  148. data/vendor/pdoc/test/unit/runner/basic_test.rb +0 -14
  149. data/vendor/pdoc/test/unit/templates/html_helpers_test.rb +0 -25
  150. data/vendor/pdoc/vendor/albino.rb +0 -122
  151. data/vendor/pdoc/website/html/documentation.html +0 -280
  152. data/vendor/pdoc/website/html/images/pdoc.jpg +0 -0
  153. data/vendor/pdoc/website/html/index.html +0 -84
  154. data/vendor/pdoc/website/html/stylesheets/main.css +0 -73
  155. data/vendor/pdoc/website/html/stylesheets/reset.css +0 -18
  156. data/vendor/pdoc/website/markdown/syntax.markdown +0 -226
  157. data/yuicompressor-2.4.6.zip +0 -0
@@ -1,32 +0,0 @@
1
- DIR = File.expand_path(File.dirname(__FILE__))
2
- OUTPUT_DIR = File.join(DIR, '..', 'output')
3
- TEMPLATES_DIR = File.join(DIR, '..', 'templates')
4
- VENDOR_DIR = File.join(DIR, '..', 'vendor')
5
- PARSER_DIR = File.join(DIR, 'pdoc', 'parser')
6
-
7
- [DIR, VENDOR_DIR, PARSER_DIR, OUTPUT_DIR, TEMPLATES_DIR].each do |c|
8
- $:.unshift(c)
9
- end
10
-
11
- require 'rubygems'
12
- require 'erb'
13
- require 'fileutils'
14
-
15
- require 'pdoc/error'
16
- require 'pdoc/runner'
17
- require 'pdoc/generators'
18
- require 'pdoc/parser'
19
- require 'pdoc/models'
20
- require 'pdoc/treemaker'
21
-
22
- module PDoc
23
- def self.run(options = {})
24
- Runner.new(options.dup).run
25
- end
26
-
27
- def self.copy_templates(template_type, destination)
28
- dir = File.expand_path(destination)
29
- raise "File already exists: #{destination}" if File.exist?(dir)
30
- FileUtils.cp_r("#{TEMPLATES_DIR}/#{template_type}", dir)
31
- end
32
- end
@@ -1,4 +0,0 @@
1
- module PDoc
2
- class PDocError < StandardError
3
- end
4
- end
@@ -1,6 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'generators', 'abstract_generator'))
2
- require File.expand_path(File.join(File.dirname(__FILE__), 'generators', 'html'))
3
- require File.expand_path(File.join(File.dirname(__FILE__), 'generators', 'pythonesque'))
4
- require File.expand_path(File.join(File.dirname(__FILE__), 'generators', 'json'))
5
-
6
-
@@ -1,16 +0,0 @@
1
- module PDoc
2
- module Generators
3
- class AbstractGenerator
4
- attr_reader :options, :root
5
- def initialize(root, options = {})
6
- @root = root
7
- @options = options
8
- end
9
-
10
- # Creates a new directory with read, write and execute permission.
11
- def mkdir(name)
12
- Dir.mkdir(name, 0755)
13
- end
14
- end
15
- end
16
- end
@@ -1,8 +0,0 @@
1
- HTML_DIR = File.expand_path(File.join(File.dirname(__FILE__), "html"))
2
-
3
- require File.join(HTML_DIR, "helpers")
4
- require File.join(HTML_DIR, "template")
5
- require File.join(HTML_DIR, "page")
6
- require File.join(HTML_DIR, "website")
7
- require File.join(HTML_DIR, "syntax_highlighter")
8
-
@@ -1,256 +0,0 @@
1
- module PDoc
2
- module Generators
3
- module Html
4
- module Helpers
5
- module BaseHelper
6
- def content_tag(tag_name, content, attributes = {})
7
- "<#{tag_name}#{attributes_to_html(attributes)}>#{content}</#{tag_name}>"
8
- end
9
-
10
- def img_tag(filename, attributes = {})
11
- attributes.merge! :src => "#{path_prefix}images/#{filename}"
12
- tag(:img, attributes)
13
- end
14
-
15
- def tag(tag_name, attributes = {})
16
- "<#{tag_name}#{attributes_to_html(attributes)} />"
17
- end
18
-
19
- def link_to(name, path, attributes={})
20
- content_tag(:a, name, attributes.merge(:href => path))
21
- end
22
-
23
- def htmlize(markdown)
24
- markdown = Website.syntax_highlighter.parse(markdown)
25
- Website.markdown_parser.new(markdown).to_html
26
- end
27
-
28
- # Gah, what an ugly hack.
29
- def inline_htmlize(markdown)
30
- htmlize(markdown).gsub(/^<p>/, '').gsub(/<\/p>$/, '')
31
- end
32
-
33
- def javascript_include_tag(*names)
34
- names.map do |name|
35
- attributes = {
36
- :src => "#{path_prefix}javascripts/#{name}.js",
37
- :type => "text/javascript",
38
- :charset => "utf-8"
39
- }
40
- content_tag(:script, "", attributes)
41
- end.join("\n")
42
- end
43
-
44
- def stylesheet_link_tag(*names)
45
- names.map do |name|
46
- attributes = {
47
- :href => "#{path_prefix}stylesheets/#{name}.css",
48
- :type => "text/css",
49
- :media => "screen, projection",
50
- :charset => "utf-8",
51
- :rel => "stylesheet"
52
- }
53
- tag(:link, attributes)
54
- end.join("\n")
55
- end
56
-
57
- private
58
- def attributes_to_html(attributes)
59
- attributes = attributes.sort { |a, b| a.to_s <=> b.to_s }
60
- attributes.map do |a|
61
- k, v = a
62
- k ? " #{k}=\"#{v}\"" : ""
63
- end.join
64
- end
65
- end
66
-
67
- module LinkHelper
68
- def path_prefix
69
- "../" * depth
70
- end
71
-
72
- def path_to(obj)
73
- path = path_prefix << obj.url << '/'
74
- Website.pretty_urls? ? path : "#{path}index.html"
75
- end
76
-
77
- def auto_link(obj, options = {})
78
- if obj.is_a?(String)
79
- original = obj
80
- obj = root.find(obj)
81
- return original unless obj
82
- end
83
- name = options.delete(:name) == :short ? obj.name : obj.full_name
84
- if obj.type == 'section'
85
- title = obj.full_name
86
- else
87
- title = "#{obj.full_name} (#{obj.type})"
88
- end
89
- link_to(name, path_to(obj), { :title => title }.merge(options))
90
- end
91
-
92
- def auto_link_code(obj, options = {})
93
- "<code>#{auto_link(obj, options)}</code>"
94
- end
95
-
96
- def auto_link_content(content)
97
- return '' if content.nil?
98
- content.gsub!(/\[\[([a-zA-Z]+)\s+section\]\]/) do |m|
99
- result = auto_link(root.find($1), :name => :long)
100
- result
101
- end
102
- content.gsub(/\[\[([a-zA-Z$\.#]+)(?:\s+([^\]]+))?\]\]/) do |m|
103
- if doc_instance = root.find($1)
104
- $2 ? link_to($2, path_to(doc_instance)) : auto_link_code(doc_instance, :name => :long)
105
- else
106
- $1
107
- end
108
- end
109
- end
110
-
111
- def auto_link_types(types, options = {})
112
- types = types.split(/\s+\|\s+/) if types.is_a?(String)
113
- types.map do |t|
114
- if match = /^\[([\w\d\$\.\(\)#]*[\w\d\$\(\)#])...\s*\]$/.match(t) # e.g.: [Element...]
115
- "[#{auto_link(match[1], options)}…]"
116
- else
117
- auto_link(t, options)
118
- end
119
- end
120
- end
121
-
122
- def dom_id(obj)
123
- "#{obj.id}-#{obj.type.gsub(/\s+/, '_')}"
124
- end
125
- end
126
-
127
- module CodeHelper
128
- def methodize_signature(sig)
129
- sig.sub(/\.([\w\d\$]+)\((.*?)(,\s*|\))/) do
130
- first_arg = $2.to_s.strip
131
- prefix = first_arg[-1, 1] == '[' ? '([' : '('
132
- rest = $3 == ')' ? $3 : ''
133
- "##{$1}#{prefix}#{rest}"
134
- end
135
- end
136
-
137
- def methodize_full_name(obj)
138
- obj.full_name.sub(/\.([^.]+)$/, '#\1')
139
- end
140
-
141
- def method_synopsis(object)
142
- result = []
143
- object.signatures.each do |signature|
144
- if return_value = signature.return_value
145
- types = auto_link_types(return_value, :name => :long).join(' | ')
146
- result << "#{signature.name} &rarr; #{types}"
147
- else # Constructors
148
- result << signature.name
149
- end
150
- end
151
- result
152
- end
153
-
154
- def breadcrumb(obj, options = {})
155
- options = {:name => :short}.merge(options)
156
- result = []
157
- begin
158
- result << auto_link(obj, options.dup)
159
- obj = obj.parent
160
- end until obj.is_a?(Models::Root)
161
- result.reverse!
162
- end
163
- end
164
-
165
- module MenuHelper
166
- NODES = [
167
- :namespaces,
168
- :classes,
169
- :mixins,
170
- :utilities
171
- ]
172
- LEAVES = [
173
- :constants,
174
- :class_methods,
175
- :class_properties,
176
- :instance_methods,
177
- :instance_properties
178
- ]
179
-
180
- def menu(obj)
181
- if obj.parent
182
- html = menu_item(obj, :name => :long)
183
-
184
- html << node_submenu(obj)
185
-
186
- if obj == doc_instance && obj.respond_to?(:constants)
187
- html << leaf_submenu(obj)
188
- elsif doc_instance && doc_instance.respond_to?(:parent)
189
- parent = doc_instance.parent
190
- html << leaf_submenu(parent) if parent == obj && obj.respond_to?(:constants)
191
- end
192
-
193
- content_tag(:li, html)
194
- else #root
195
- node_submenu(obj)
196
- end
197
- end
198
-
199
- def node_submenu(obj)
200
- children = []
201
- options = {}
202
-
203
- NODES.each do |prop|
204
- children.concat(obj.send(prop)) if obj.respond_to?(prop)
205
- end
206
-
207
- list_items = children.sort.map { |item| menu(item) }
208
- if obj.respond_to?(:sections)
209
- obj.sections.each { |section| list_items << menu(section) }
210
- options[:class] = "menu-items"
211
- options[:id] = "api_menu"
212
- elsif obj.type == "section"
213
- options[:class] = "menu-section"
214
- end
215
- list_items.empty? ? '' : content_tag(:ul, list_items.join("\n"), options)
216
- end
217
-
218
- def menu_item(obj, options = {})
219
- options = options.dup
220
- options[:class] = class_names_for(obj, options)
221
- content_tag(:div, auto_link(obj, options), :class => 'menu-item')
222
- end
223
-
224
- def leaf_submenu(obj)
225
- items = []
226
- if obj.respond_to?(:constructor) && obj.constructor
227
- items << content_tag(:li, menu_item(obj.constructor, :name => :short))
228
- end
229
- LEAVES.each do |prop|
230
- if obj.respond_to?(prop)
231
- obj.send(prop).sort!.map do |item|
232
- items << content_tag(:li, menu_item(item, :name => :short))
233
- end
234
- end
235
- end
236
- content_tag(:ul, items.join("\n"))
237
- end
238
-
239
- def class_names_for(obj, options = {})
240
- classes = []
241
- classes << obj.type.gsub(/\s+/, '-')
242
- classes << "deprecated" if obj.deprecated?
243
- if doc_instance
244
- if obj == doc_instance
245
- classes << "current"
246
- elsif obj.ancestor_of?(doc_instance)
247
- classes << "current-parent"
248
- end
249
- end
250
- classes.join(' ')
251
- end
252
- end
253
- end
254
- end
255
- end
256
- end
@@ -1,71 +0,0 @@
1
- module PDoc
2
- module Generators
3
- module Html
4
- class Page
5
-
6
- include Helpers::BaseHelper
7
- include Helpers::LinkHelper
8
-
9
- def initialize(template, layout, variables = {})
10
- @template = template
11
- @layout = layout
12
- assign_variables(variables)
13
- end
14
-
15
- # Renders the page as a string using the assigned layout.
16
- def render
17
- if @layout
18
- @content_for_layout = Template.new(@template, @templates_directory).result(binding)
19
- Template.new(@layout, @templates_directory).result(binding)
20
- else
21
- Template.new(@template, @templates_directory).result(binding)
22
- end
23
- end
24
-
25
- # Creates a new file and renders the page to it
26
- # using the assigned layout.
27
- def render_to_file(filename)
28
- filename ||= ""
29
- FileUtils.mkdir_p(File.dirname(filename))
30
- File.open(filename, "w+") { |f| f << render }
31
- end
32
-
33
- def include(path, options = {})
34
- r = ''
35
- options.each { |k, v| r << "#{k.to_s} = options[:#{k}];" }
36
- eval(r)
37
-
38
- if options[:collection]
39
- options[:collection].map { |object| Template.new(path, @templates_directory).result(binding) }.join("\n")
40
- else
41
- Template.new(path, @templates_directory).result(binding)
42
- end
43
- end
44
-
45
- private
46
- def assign_variables(variables)
47
- variables.each { |key, value| instance_variable_set("@#{key}", value) }
48
- end
49
- end
50
-
51
- class DocPage < Page
52
- include Helpers::LinkHelper, Helpers::CodeHelper, Helpers::MenuHelper
53
-
54
- attr_reader :doc_instance, :depth, :root
55
-
56
- def initialize(template, layout = "layout", variables = {})
57
- if layout.is_a?(Hash)
58
- variables = layout
59
- layout = "layout"
60
- end
61
- super(template, layout, variables)
62
- end
63
-
64
- def htmlize(markdown)
65
- super(auto_link_content(markdown))
66
- end
67
- end
68
-
69
- end
70
- end
71
- end
@@ -1,41 +0,0 @@
1
- module PDoc
2
- module Generators
3
- module Html
4
- class SyntaxHighlighter
5
- CODE_BLOCK_REGEXP = /(?:\n\n|\A)(?:\s{4,}lang(?:uage)?:\s*(\w+)\s*\n)?((?:\s{4}.*\n*)+)(^\s{0,3}\S|\z)?/
6
-
7
- attr_reader :highlighter
8
-
9
- def initialize(h = nil)
10
- @highlighter = h.nil? ? :none : h.to_sym
11
- end
12
-
13
- def parse(input)
14
- input.gsub(CODE_BLOCK_REGEXP) do |block|
15
- language, codeblock, remainder = $1, $2, $3
16
- codeblock = codeblock.gsub(/^\s{4}/, '').rstrip
17
- "\n\n#{highlight_block(codeblock, language)}\n#{remainder}"
18
- end
19
- end
20
-
21
- def highlight_block(code, language)
22
- language = :javascript if language.nil?
23
- case highlighter.to_sym
24
- when :none
25
- require 'cgi'
26
- code = CGI.escapeHTML(code)
27
- "<pre><code class=\"#{language}\">#{code}</code></pre>"
28
- when :coderay
29
- require 'coderay'
30
- CodeRay.scan(code, language).div
31
- when :pygments
32
- require 'albino'
33
- Albino.new(code, language).colorize
34
- else
35
- raise "Requested unsupported syntax highlighter: #{highlighter}"
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,37 +0,0 @@
1
- begin
2
- require 'erubis'
3
- rescue LoadError
4
- end
5
-
6
- module PDoc
7
- module Generators
8
- module Html
9
- class Template
10
- def initialize(file_name = "layout.erb", templates_directory = nil)
11
- @file_name = file_name
12
- @templates_directory = templates_directory
13
- @template = create_template(IO.read(file_path))
14
- end
15
-
16
- def result(binding)
17
- @template.result(binding)
18
- end
19
-
20
- private
21
- def file_path
22
- @file_name << '.erb' unless @file_name =~ /\.erb$/
23
- path = File.join(@templates_directory, @file_name.split("/"))
24
- File.expand_path(path, DIR)
25
- end
26
-
27
- def create_template(input)
28
- if defined?(Erubis)
29
- Erubis::Eruby.new(input)
30
- else
31
- ERB.new(input, nil, '%')
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end