Class: RailsMcpCodeSearch::ErbParser
- Inherits:
-
Object
- Object
- RailsMcpCodeSearch::ErbParser
- Defined in:
- lib/rails_mcp_code_search/erb_parser.rb
Defined Under Namespace
Classes: Visitor
Constant Summary collapse
- Result =
RubyParser::Result
- MIN_LINES =
3- MAX_CHUNKS =
30
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.parse(source, file_path: nil) ⇒ Object
9 10 11 |
# File 'lib/rails_mcp_code_search/erb_parser.rb', line 9 def self.parse(source, file_path: nil) new.parse(source, file_path:) end |
Instance Method Details
#parse(source, file_path: nil) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/rails_mcp_code_search/erb_parser.rb', line 13 def parse(source, file_path: nil) result = Herb.parse(source) return SlidingWindowParser.parse(source, file_path:) unless result.success? visitor = Visitor.new(source) visitor.visit(result.value) chunks = deduplicate(visitor.chunks).first(MAX_CHUNKS) chunks.empty? ? SlidingWindowParser.parse(source, file_path:) : chunks rescue => _e SlidingWindowParser.parse(source, file_path:) end |