pdoc 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +34 -0
- data/Rakefile +46 -0
- data/bin/pdoc +58 -0
- data/lib/pdoc.rb +32 -0
- data/lib/pdoc/error.rb +4 -0
- data/lib/pdoc/generators.rb +6 -0
- data/lib/pdoc/generators/abstract_generator.rb +16 -0
- data/lib/pdoc/generators/html.rb +8 -0
- data/lib/pdoc/generators/html/helpers.rb +256 -0
- data/lib/pdoc/generators/html/page.rb +71 -0
- data/lib/pdoc/generators/html/syntax_highlighter.rb +41 -0
- data/lib/pdoc/generators/html/template.rb +37 -0
- data/lib/pdoc/generators/html/website.rb +194 -0
- data/lib/pdoc/generators/json.rb +15 -0
- data/lib/pdoc/generators/pythonesque.rb +105 -0
- data/lib/pdoc/models.rb +47 -0
- data/lib/pdoc/models/argument.rb +37 -0
- data/lib/pdoc/models/base.rb +107 -0
- data/lib/pdoc/models/callable.rb +19 -0
- data/lib/pdoc/models/class.rb +28 -0
- data/lib/pdoc/models/class_method.rb +18 -0
- data/lib/pdoc/models/class_property.rb +9 -0
- data/lib/pdoc/models/constant.rb +9 -0
- data/lib/pdoc/models/constructor.rb +14 -0
- data/lib/pdoc/models/container.rb +114 -0
- data/lib/pdoc/models/entity.rb +54 -0
- data/lib/pdoc/models/instance_method.rb +18 -0
- data/lib/pdoc/models/instance_property.rb +9 -0
- data/lib/pdoc/models/mixin.rb +10 -0
- data/lib/pdoc/models/namespace.rb +10 -0
- data/lib/pdoc/models/root.rb +27 -0
- data/lib/pdoc/models/section.rb +19 -0
- data/lib/pdoc/models/signature.rb +27 -0
- data/lib/pdoc/models/utility.rb +11 -0
- data/lib/pdoc/parser.rb +109 -0
- data/lib/pdoc/parser/argument_description_nodes.rb +21 -0
- data/lib/pdoc/parser/basic_nodes.rb +31 -0
- data/lib/pdoc/parser/description_nodes.rb +42 -0
- data/lib/pdoc/parser/documentation_nodes.rb +483 -0
- data/lib/pdoc/parser/ebnf_arguments_nodes.rb +58 -0
- data/lib/pdoc/parser/ebnf_expression_nodes.rb +227 -0
- data/lib/pdoc/parser/fragment.rb +55 -0
- data/lib/pdoc/parser/section_content_nodes.rb +19 -0
- data/lib/pdoc/parser/tags_nodes.rb +14 -0
- data/lib/pdoc/parser/treetop_files/argument_description.treetop +31 -0
- data/lib/pdoc/parser/treetop_files/basic.treetop +41 -0
- data/lib/pdoc/parser/treetop_files/description.treetop +7 -0
- data/lib/pdoc/parser/treetop_files/documentation.treetop +75 -0
- data/lib/pdoc/parser/treetop_files/ebnf_arguments.treetop +33 -0
- data/lib/pdoc/parser/treetop_files/ebnf_expression.treetop +70 -0
- data/lib/pdoc/parser/treetop_files/ebnf_javascript.treetop +54 -0
- data/lib/pdoc/parser/treetop_files/events.treetop +17 -0
- data/lib/pdoc/parser/treetop_files/section_content.treetop +8 -0
- data/lib/pdoc/parser/treetop_files/tags.treetop +31 -0
- data/lib/pdoc/runner.rb +110 -0
- data/lib/pdoc/treemaker.rb +94 -0
- data/pdoc.gemspec +31 -0
- data/templates/html/assets/images/pdoc/alias.png +0 -0
- data/templates/html/assets/images/pdoc/class.png +0 -0
- data/templates/html/assets/images/pdoc/class_deprecated.png +0 -0
- data/templates/html/assets/images/pdoc/class_method.png +0 -0
- data/templates/html/assets/images/pdoc/class_property.png +0 -0
- data/templates/html/assets/images/pdoc/constant.png +0 -0
- data/templates/html/assets/images/pdoc/constructor.png +0 -0
- data/templates/html/assets/images/pdoc/deprecated.png +0 -0
- data/templates/html/assets/images/pdoc/description.png +0 -0
- data/templates/html/assets/images/pdoc/information.png +0 -0
- data/templates/html/assets/images/pdoc/instance_method.png +0 -0
- data/templates/html/assets/images/pdoc/instance_property.png +0 -0
- data/templates/html/assets/images/pdoc/method.png +0 -0
- data/templates/html/assets/images/pdoc/method_deprecated.png +0 -0
- data/templates/html/assets/images/pdoc/mixin.png +0 -0
- data/templates/html/assets/images/pdoc/namespace.png +0 -0
- data/templates/html/assets/images/pdoc/property.png +0 -0
- data/templates/html/assets/images/pdoc/related_to.png +0 -0
- data/templates/html/assets/images/pdoc/search-background.png +0 -0
- data/templates/html/assets/images/pdoc/section-background.png +0 -0
- data/templates/html/assets/images/pdoc/section.png +0 -0
- data/templates/html/assets/images/pdoc/selected-section-background.png +0 -0
- data/templates/html/assets/images/pdoc/subclass.png +0 -0
- data/templates/html/assets/images/pdoc/superclass.png +0 -0
- data/templates/html/assets/images/pdoc/utility.png +0 -0
- data/templates/html/assets/javascripts/pdoc/application.js +478 -0
- data/templates/html/assets/javascripts/pdoc/prototype.js +4874 -0
- data/templates/html/assets/javascripts/pdoc/tabs.js +506 -0
- data/templates/html/assets/stylesheets/pdoc/api.css +677 -0
- data/templates/html/assets/stylesheets/pdoc/pygments.css +62 -0
- data/templates/html/helpers.rb +35 -0
- data/templates/html/index.erb +18 -0
- data/templates/html/item_index.js.erb +6 -0
- data/templates/html/layout.erb +67 -0
- data/templates/html/leaf.erb +22 -0
- data/templates/html/node.erb +30 -0
- data/templates/html/partials/class_relationships.erb +19 -0
- data/templates/html/partials/classes.erb +7 -0
- data/templates/html/partials/constructor.erb +5 -0
- data/templates/html/partials/description.erb +5 -0
- data/templates/html/partials/link_list.erb +1 -0
- data/templates/html/partials/method_signatures.erb +14 -0
- data/templates/html/partials/methodized_note.erb +9 -0
- data/templates/html/partials/mixins.erb +7 -0
- data/templates/html/partials/namespaces.erb +7 -0
- data/templates/html/partials/related_utilities.erb +5 -0
- data/templates/html/partials/relationships.erb +11 -0
- data/templates/html/partials/short_description_list.erb +7 -0
- data/templates/html/partials/title.erb +22 -0
- data/templates/html/section.erb +18 -0
- data/test/unit/parser/argument_description_test.rb +40 -0
- data/test/unit/parser/basic_test.rb +55 -0
- data/test/unit/parser/description_test.rb +34 -0
- data/test/unit/parser/documentation_test.rb +520 -0
- data/test/unit/parser/ebnf_arguments_test.rb +81 -0
- data/test/unit/parser/ebnf_expression_test.rb +382 -0
- data/test/unit/parser/ebnf_javascript_test.rb +37 -0
- data/test/unit/parser/events_test.rb +27 -0
- data/test/unit/parser/section_content_test.rb +44 -0
- data/test/unit/parser/tags_test.rb +39 -0
- data/test/unit/parser/test_fragment.rb +80 -0
- data/test/unit/parser_test_helper.rb +62 -0
- data/test/unit/runner/basic_test.rb +14 -0
- data/test/unit/templates/html_helpers_test.rb +25 -0
- metadata +222 -0
data/lib/pdoc/models.rb
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
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
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
|
@@ -0,0 +1,107 @@
|
|
|
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
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
|
@@ -0,0 +1,114 @@
|
|
|
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
|
|
@@ -0,0 +1,54 @@
|
|
|
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
|