Class: ParseJS::CommentScanner
Instance Method Summary
collapse
Methods inherited from Visitor
#accept, #map, #visit, #visit_ArrayExpression, #visit_BinaryExpression, #visit_BlockStatement, #visit_BreakStatement, #visit_CallExpression, #visit_CatchClause, #visit_Comment, #visit_ConditionalExpression, #visit_ContinueStatement, #visit_DebuggerStatement, #visit_DoWhileStatement, #visit_EmptyStatement, #visit_ExpressionStatement, #visit_ForInStatement, #visit_ForStatement, #visit_FunctionDeclaration, #visit_FunctionExpression, #visit_Identifier, #visit_IfStatement, #visit_Literal, #visit_LogicalExpression, #visit_MemberExpression, #visit_NewExpression, #visit_Number, #visit_ObjectExpression, #visit_ParameterList, #visit_Program, #visit_RegExp, #visit_ReturnStatement, #visit_SequenceExpression, #visit_String, #visit_SwitchCase, #visit_SwitchStatement, #visit_ThisExpression, #visit_ThrowStatement, #visit_TryStatement, #visit_UnaryExpression, #visit_UpdateExpression, #visit_VariableDeclaration, #visit_VariableDeclarator, #visit_WhileStatement, #visit_WithStatement
Constructor Details
Returns a new instance of CommentScanner.
8
9
10
11
|
# File 'lib/parsejs/docs.rb', line 8
def initialize(*)
@current_comment = nil
super
end
|
Instance Method Details
13
14
15
16
17
|
# File 'lib/parsejs/docs.rb', line 13
def
return false unless @current_comment
return false if @current_comment.empty?
return @current_comment.any?(&:multiline?)
end
|
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/parsejs/docs.rb', line 45
def (node)
return unless
puts
puts "-" * 10 + node.class.name + "-" * 10
puts @current_comment.map { |c| next unless c.multiline?; c.body }.join("\n")
puts "-" * (10 + node.class.name.size + 10)
puts
puts Stringifier.to_string(Marshal.load(Marshal.dump(node)))
puts
ensure
@current_comment = nil
end
|
41
42
43
|
# File 'lib/parsejs/docs.rb', line 41
def (node)
(node)
end
|
#stringify(node) ⇒ Object
19
20
21
|
# File 'lib/parsejs/docs.rb', line 19
def stringify(node)
Stringifier.to_string(Marshal.load(Marshal.dump(node)))
end
|
#strip_leading_whitespace(string) ⇒ Object
60
61
62
63
64
|
# File 'lib/parsejs/docs.rb', line 60
def strip_leading_whitespace(string)
min = string.scan(/^[ \t]*(?=\S)/).min
size = min ? min.size : 0
string.gsub(/^[ \t]{#{size}}/, '')
end
|
#visit_AssignmentExpression(expr) ⇒ Object
23
24
25
26
|
# File 'lib/parsejs/docs.rb', line 23
def visit_AssignmentExpression(expr)
(expr)
super
end
|
28
29
30
31
32
|
# File 'lib/parsejs/docs.rb', line 28
def ()
@current_comment = .
super
end
|
#visit_Property(property) ⇒ Object
34
35
36
37
38
39
|
# File 'lib/parsejs/docs.rb', line 34
def visit_Property(property)
@current_comment = property.
(property)
super
end
|