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,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,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,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,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
|