Module: SyntaxTree::Reflection::Type
- Defined in:
- lib/syntax_tree/reflection.rb
Overview
This module represents the type of the values being passed to attributes of nodes. It is used as part of the documentation of the attributes.
Defined Under Namespace
Classes: ArrayType, TupleType, UnionType
Constant Summary collapse
- CONSTANTS =
SyntaxTree.constants.to_h { [_1, SyntaxTree.const_get(_1)] }
Class Method Summary collapse
Class Method Details
.parse(comment) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/syntax_tree/reflection.rb', line 66 def parse(comment) comment = comment.gsub("\n", " ") unless comment.start_with?("[") raise "Comment does not start with a bracket: #{comment.inspect}" end count = 1 found = comment.chars[1..] .find .with_index(1) do |char, index| count += { "[" => 1, "]" => -1 }.fetch(char, 0) break index if count == 0 end # If we weren't able to find the end of the balanced brackets, then # the comment is malformed. if found.nil? raise "Comment does not have balanced brackets: #{comment.inspect}" end parse_type(comment[1...found].strip) end |