class Orbacle::Indexer::ParsingProcess

Attributes

logger[R]

Public Class Methods

new(logger, queue_contents, queue_asts) click to toggle source
# File lib/orbacle/indexer.rb, line 66
def initialize(logger, queue_contents, queue_asts)
  @logger = logger
  @queue_contents = queue_contents
  @queue_asts = queue_asts
end

Public Instance Methods

call() click to toggle source
# File lib/orbacle/indexer.rb, line 72
def call
  parser = RubyParser.new
  while !@queue_contents.closed? || !@queue_contents.empty?
    element = @queue_contents.shift
    begin
      ast = parser.parse(element.ast)
      @queue_asts.push(QueueElement.new(ast, element.file_path))
    rescue RubyParser::Error => e
      logger.warn "Warning: Skipped #{element.file_path} because of #{e}"
    end
  end
  @queue_asts.close
end