Class: Inch::Language::JavaScript::Provider::JSDoc::Object::Base
Abstract
- Inherits:
-
Object
- Object
- Inch::Language::JavaScript::Provider::JSDoc::Object::Base
show all
- Defined in:
- lib/inch/language/javascript/provider/jsdoc/object/base.rb
Overview
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(hash) ⇒ Base
Returns a new instance of Base.
16
17
18
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 16
def initialize(hash)
@hash = hash
end
|
Instance Attribute Details
#base_dir ⇒ String
Returns the codebase’s directory.
13
14
15
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 13
def base_dir
@base_dir
end
|
#children_fullnames ⇒ Object
45
46
47
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 45
def children_fullnames
@children_fullnames ||= []
end
|
Instance Method Details
#aliased_object_fullname ⇒ Object
57
58
59
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 57
def aliased_object_fullname
nil
end
|
#aliases_fullnames ⇒ Object
61
62
63
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 61
def aliases_fullnames
nil
end
|
#api_tag? ⇒ Boolean
53
54
55
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 53
def api_tag?
nil
end
|
#attributes ⇒ Object
65
66
67
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 65
def attributes
[]
end
|
#bang_name? ⇒ Boolean
69
70
71
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 69
def bang_name?
false
end
|
#constant? ⇒ Boolean
73
74
75
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 73
def constant?
false end
|
#constructor? ⇒ Boolean
77
78
79
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 77
def constructor?
false
end
|
81
82
83
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 81
def depth
fullname.split('.').size
end
|
86
87
88
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 86
def docstring
@docstring ||= Docstring.new(@hash['comment'])
end
|
40
41
42
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 40
def filename
files.first.filename unless files.empty?
end
|
#files ⇒ Array<CodeLocation>
Returns all files declaring the object in the form of an Array of Arrays containing the location of their declaration.
32
33
34
35
36
37
38
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 32
def files
return [] unless meta?
filename = meta['path'] + '/' + meta['filename']
[
Inch::Utils::CodeLocation.new('', filename, meta['lineno'])
]
end
|
24
25
26
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 24
def fullname
@hash['longname']
end
|
#getter? ⇒ Boolean
90
91
92
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 90
def getter?
fullname =~ /(\A|#|\.)(get)[A-Z]/
end
|
#has_children? ⇒ Boolean
94
95
96
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 94
def has_children?
!children_fullnames.empty?
end
|
#has_code_example? ⇒ Boolean
98
99
100
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 98
def has_code_example?
docstring.contains_code_example?
end
|
#has_doc? ⇒ Boolean
102
103
104
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 102
def has_doc?
!undocumented?
end
|
#has_multiple_code_examples? ⇒ Boolean
106
107
108
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 106
def has_multiple_code_examples?
docstring.code_examples.size > 1
end
|
110
111
112
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 110
def has_unconsidered_tags?
false end
|
#in_root? ⇒ Boolean
187
188
189
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 187
def in_root?
depth == 1
end
|
#method? ⇒ Boolean
114
115
116
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 114
def method?
false
end
|
20
21
22
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 20
def name
@hash['name']
end
|
#namespace? ⇒ Boolean
124
125
126
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 124
def namespace?
false
end
|
#nodoc? ⇒ Boolean
118
119
120
121
122
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 118
def nodoc?
@hash['comment'] == false ||
docstring.tag?(:ignore) ||
docstring.to_s.strip.start_with?("istanbul ignore")
end
|
#original_docstring ⇒ Object
128
129
130
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 128
def original_docstring
@hash['comment']
end
|
#overridden? ⇒ Boolean
132
133
134
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 132
def overridden?
false end
|
#overridden_method_fullname ⇒ Object
136
137
138
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 136
def overridden_method_fullname
nil end
|
#parameters ⇒ Object
140
141
142
143
144
145
146
147
148
149
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 140
def parameters
if meta? && meta['code']
names = meta['code']['paramnames'] || []
names.map do |name|
FunctionParameterObject.new(self, name)
end
else
[]
end
end
|
#parent_fullname ⇒ Object
49
50
51
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 49
def parent_fullname
@hash['memberof'] || retrieve_parent_fullname
end
|
#private? ⇒ Boolean
151
152
153
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 151
def private?
visibility == 'private' || private_name?
end
|
#protected? ⇒ Boolean
163
164
165
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 163
def protected?
visibility == 'protected'
end
|
#public? ⇒ Boolean
167
168
169
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 167
def public?
visibility == 'public'
end
|
#questioning_name? ⇒ Boolean
171
172
173
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 171
def questioning_name?
fullname =~ /(\A|#|\.)(has|is)[A-Z]/
end
|
#return_described? ⇒ Boolean
175
176
177
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 175
def return_described?
docstring.describes_return?
end
|
#return_mentioned? ⇒ Boolean
179
180
181
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 179
def return_mentioned?
docstring.mentions_return?
end
|
#return_typed? ⇒ Boolean
183
184
185
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 183
def return_typed?
return_mentioned?
end
|
#setter? ⇒ Boolean
191
192
193
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 191
def setter?
fullname =~ /(\A|#|\.)(set)[A-Z]/
end
|
195
196
197
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 195
def source
nil
end
|
#tagged_as_internal_api? ⇒ Boolean
155
156
157
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 155
def tagged_as_internal_api?
false
end
|
#tagged_as_private? ⇒ Boolean
159
160
161
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 159
def tagged_as_private?
nodoc?
end
|
#unconsidered_tag_count ⇒ Object
199
200
201
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 199
def unconsidered_tag_count
0
end
|
#undocumented? ⇒ Boolean
203
204
205
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 203
def undocumented?
@hash['comment'].to_s.empty?
end
|
#visibility ⇒ Object
207
208
209
|
# File 'lib/inch/language/javascript/provider/jsdoc/object/base.rb', line 207
def visibility
docstring.visibility(@hash['access'])
end
|