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,19 +0,0 @@
1
- module PDoc
2
- module Models
3
- module Callable
4
- def arguments
5
- @arguments ||= []
6
- end
7
-
8
- def arguments?
9
- @arguments && !@arguments.empty?
10
- end
11
-
12
- def to_hash
13
- super.merge({
14
- :arguments => arguments
15
- })
16
- end
17
- end
18
- end
19
- end
@@ -1,28 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Class < Entity
4
- include Container
5
- attr_accessor :constructor
6
- attr_accessor :superclass
7
- def attach_to_parent(parent)
8
- parent.classes << self
9
- end
10
-
11
- def subclasses
12
- @subclasses ||= []
13
- end
14
-
15
- def subclasses?
16
- @subclasses && !@subclasses.empty?
17
- end
18
-
19
- def to_hash
20
- super.merge({
21
- :superclass => superclass,
22
- :constructor => constructor,
23
- :subclasses => subclasses.map { |obj| obj.id }
24
- })
25
- end
26
- end
27
- end
28
- end
@@ -1,18 +0,0 @@
1
- module PDoc
2
- module Models
3
- class ClassMethod < Entity
4
- include Callable
5
- attr_accessor :methodized_self
6
- def attach_to_parent(parent)
7
- parent.class_methods << self
8
- end
9
-
10
- def to_hash
11
- m = methodized_self
12
- super.merge({
13
- :methodized_self => m ? m.id : nil
14
- })
15
- end
16
- end
17
- end
18
- end
@@ -1,9 +0,0 @@
1
- module PDoc
2
- module Models
3
- class ClassProperty < Entity
4
- def attach_to_parent(parent)
5
- parent.class_properties << self
6
- end
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Constant < Entity
4
- def attach_to_parent(parent)
5
- parent.constants << self
6
- end
7
- end
8
- end
9
- end
@@ -1,14 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Constructor < Entity
4
- include Callable
5
- def attach_to_parent(parent)
6
- parent.constructor = self
7
- end
8
-
9
- def name
10
- @name ||= 'new'
11
- end
12
- end
13
- end
14
- end
@@ -1,114 +0,0 @@
1
- module PDoc
2
- module Models
3
- module Container
4
- def children
5
- @children ||= []
6
- end
7
-
8
- def children?
9
- @children && !@children.empty?
10
- end
11
-
12
- # returns an array of Namespace objects belonging to this section
13
- def namespaces
14
- @namespaces ||= []
15
- end
16
-
17
- def namespaces?
18
- @namespaces && !@namespaces.empty?
19
- end
20
-
21
- # returns an array of Class objects belonging to this section
22
- def classes
23
- @classes ||= []
24
- end
25
-
26
- def classes?
27
- @classes && !@classes.empty?
28
- end
29
-
30
- # returns an array of Mixin objects belonging to this section
31
- def mixins
32
- @mixins ||= []
33
- end
34
-
35
- def mixins?
36
- @mixins && !@mixins.empty?
37
- end
38
-
39
- def included_mixins
40
- @included_mixins ||= []
41
- end
42
-
43
- def included_mixins?
44
- @included_mixins && !@included_mixins.empty?
45
- end
46
-
47
- # returns an array of Function objects belonging to this section
48
- def utilities
49
- @utilities ||= []
50
- end
51
-
52
- def utilities?
53
- @utilities && !@utilities.empty?
54
- end
55
-
56
- # returns an array of constants objects belonging to this section
57
- def constants
58
- @constants ||= []
59
- end
60
-
61
- def constants?
62
- @constants && !@constants.empty?
63
- end
64
-
65
- def class_methods
66
- @class_methods ||= []
67
- end
68
-
69
- def class_methods?
70
- @class_methods && !@class_methods.empty?
71
- end
72
-
73
- def class_properties
74
- @class_properties ||= []
75
- end
76
-
77
- def class_properties?
78
- @class_properties && !@class_properties.empty?
79
- end
80
-
81
- def instance_methods
82
- @instance_methods ||= []
83
- end
84
-
85
- def instance_methods?
86
- @instance_methods && !@instance_methods.empty?
87
- end
88
-
89
- def instance_properties
90
- @instance_properties ||= []
91
- end
92
-
93
- def instance_properties?
94
- @instance_properties && !@instance_properties.empty?
95
- end
96
-
97
- def to_hash
98
- super.merge({
99
- :children => children.map { |obj| obj.id },
100
- :namespaces => namespaces.map { |obj| obj.id },
101
- :classes => classes.map { |obj| obj.id },
102
- :mixins => mixins.map { |obj| obj.id },
103
- :included_mixins => included_mixins.map { |obj| obj.id },
104
- :utilities => utilities.map { |obj| obj.id },
105
- :constants => constants.map { |obj| obj.id },
106
- :class_methods => class_methods.map { |obj| obj.id },
107
- :class_properties => class_properties.map { |obj| obj.id },
108
- :instance_methods => instance_methods.map { |obj| obj.id },
109
- :instance_properties => instance_properties.map { |obj| obj.id }
110
- })
111
- end
112
- end
113
- end
114
- end
@@ -1,54 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Entity < Base
4
- attr_accessor :alias
5
-
6
- def signatures
7
- @signatures ||= []
8
- end
9
-
10
- def <=>(other)
11
- id.downcase <=> other.id.downcase
12
- end
13
-
14
- def src_code_href
15
- proc = Models.src_code_href
16
- @src_code_href ||= proc ? proc.call(self) : nil
17
- end
18
-
19
- def signatures?
20
- @signatures && !@signatures.empty?
21
- end
22
-
23
- def signature
24
- @signature ||= signatures.first
25
- end
26
-
27
- def methodized?
28
- !!@methodized
29
- end
30
-
31
- def alias?
32
- !!@alias
33
- end
34
-
35
- # returns an array of aliases
36
- def aliases
37
- @aliases ||= []
38
- end
39
-
40
- def aliases?
41
- @aliases && !@aliases.empty?
42
- end
43
-
44
- def to_hash
45
- super.merge({
46
- :aliases => aliases.map { |a| a.id },
47
- :alias => self.alias ? self.alias.id : nil,
48
- :signatures => signatures,
49
- :src_code_href => src_code_href
50
- })
51
- end
52
- end
53
- end
54
- end
@@ -1,18 +0,0 @@
1
- module PDoc
2
- module Models
3
- class InstanceMethod < Entity
4
- include Callable
5
- attr_accessor :functionalized_self
6
- def attach_to_parent(parent)
7
- parent.instance_methods << self
8
- end
9
-
10
- def to_hash
11
- f = functionalized_self
12
- super.merge({
13
- :functionalized_self => f ? f.id : nil
14
- })
15
- end
16
- end
17
- end
18
- end
@@ -1,9 +0,0 @@
1
- module PDoc
2
- module Models
3
- class InstanceProperty < Entity
4
- def attach_to_parent(parent)
5
- parent.instance_properties << self
6
- end
7
- end
8
- end
9
- end
@@ -1,10 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Mixin < Entity
4
- include Container
5
- def attach_to_parent(parent)
6
- parent.mixins << self
7
- end
8
- end
9
- end
10
- end
@@ -1,10 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Namespace < Entity
4
- include Container
5
- def attach_to_parent(parent)
6
- parent.namespaces << self
7
- end
8
- end
9
- end
10
- end
@@ -1,27 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Root
4
- include Container
5
-
6
- def sections
7
- @sections ||= []
8
- end
9
-
10
- def sections?
11
- @sections && !@sections.empty?
12
- end
13
-
14
- def registry
15
- @registry ||= {}
16
- end
17
-
18
- def find(id)
19
- registry[id]
20
- end
21
-
22
- def parent
23
- nil
24
- end
25
- end
26
- end
27
- end
@@ -1,19 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Section < Base
4
- include Container
5
-
6
- def attach_to_parent(parent)
7
- parent.sections << self
8
- end
9
-
10
- def name
11
- @name ||= @id.sub(' section', '')
12
- end
13
-
14
- def normalized_name
15
- super.downcase
16
- end
17
- end
18
- end
19
- end
@@ -1,27 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Signature < Base
4
- attr_reader :return_value
5
- def attach_to_parent(parent)
6
- parent.signatures << self
7
- end
8
-
9
- #TODO API cleanup
10
-
11
- def to_s
12
- @signature
13
- end
14
-
15
- def name
16
- @signature
17
- end
18
-
19
- def to_hash
20
- {
21
- :name => name,
22
- :return_value => return_value
23
- }
24
- end
25
- end
26
- end
27
- end
@@ -1,11 +0,0 @@
1
- module PDoc
2
- module Models
3
- class Utility < Entity
4
- include Callable
5
-
6
- def attach_to_parent(parent)
7
- parent.utilities << self
8
- end
9
- end
10
- end
11
- end
@@ -1,109 +0,0 @@
1
- require 'rubygems'
2
- require 'treetop'
3
-
4
- FILE_NAMES = %w[basic tags argument_description description ebnf_arguments ebnf_expression section_content documentation]
5
-
6
- FILE_NAMES.each { |file_name| require "#{file_name}_nodes" }
7
-
8
- %w[ebnf_javascript events].concat(FILE_NAMES).each do |file_name|
9
- Treetop.load File.expand_path(File.join(PARSER_DIR, "treetop_files", file_name))
10
- end
11
-
12
- module PDoc
13
- class Parser
14
- def initialize(string)
15
- @string = string
16
- @parser = DocumentationParser.new
17
- @percentage = 0
18
- end
19
-
20
- # Parses the preprocessed string. Returns an instance
21
- # of Documentation::Doc
22
- def parse
23
- @finished = false
24
- result = @parser.parse(pre_process)
25
- @finished = true
26
- raise ParseError, @parser unless result
27
- result
28
- end
29
-
30
- # Preprocess the string before parsing.
31
- # Converts "\r\n" to "\n" and avoids edge case
32
- # by wrapping the string in line breaks.
33
- def pre_process
34
- string = @string.gsub(/\r\n/, "\n")
35
- string = string.split("\n").map do |line|
36
- line.gsub(/\s+$/, '')
37
- end.join("\n")
38
- "\n#{string}\n"
39
- end
40
-
41
- def completion_percentage
42
- if @parser.index
43
- ratio = @parser.index.to_f / @parser.input.size.to_f
44
- percentage = (ratio * 100).floor
45
- @percentage = percentage if percentage > @percentage
46
- end
47
- "#{@percentage}%"
48
- end
49
-
50
- def finished?
51
- @finished
52
- end
53
- end
54
-
55
- # Thrown by PDoc::Parser if the documentation is malformed.
56
- class ParseError < StandardError
57
- def initialize(parser)
58
- @parser = parser
59
- @lines = @parser.input.split("\n").unshift("")
60
- end
61
-
62
- def message
63
- <<-EOS
64
-
65
- ParseError: Expected #{expected_string} at line #{line}, column #{column} (byte #{index + 1}) after #{@parser.input[@parser.index...index].inspect}.
66
-
67
- #{source_code}
68
-
69
- EOS
70
- end
71
-
72
- def line
73
- @parser.failure_line
74
- end
75
-
76
- def column
77
- @parser.failure_column
78
- end
79
-
80
- def failures
81
- @parser.terminal_failures
82
- end
83
-
84
- def index
85
- @parser.failure_index
86
- end
87
-
88
- def source_code
89
- ((line-2)..(line+2)).map do |index|
90
- result = index == line ? "-->" : " "
91
- "#{result} #{index.to_s.rjust(5)} #{@lines[index]}"
92
- end.join("\n")
93
- end
94
-
95
- def failure_reason
96
- ""
97
- end
98
-
99
- def expected_string
100
- if failures.size == 1
101
- failures.first.expected_string.inspect
102
- else
103
- expected = failures.map { |f| f.expected_string.inspect }.uniq
104
- last = expected.pop
105
- "one of #{expected.join(', ')} or #{last}"
106
- end
107
- end
108
- end
109
- end