Sha256: d3a1e97d19075b3b0ff213578e52416309f91004934a0d92c36494d181c51fd1

Contents?: true

Size: 662 Bytes

Versions: 1

Compression:

Stored size: 662 Bytes

Contents

# frozen_string_literal: true

module Zapata
  class Analyst
    attr_reader :result

    def self.analyze(filename)
      code = Core::Reader.parse(filename)
      analyst = Analyst.new(code)
      result = analyst.result.dup
      analyst.clean
      result
    end

    def initialize(code)
      # class dive
      Diver.search_for(:klass)
      Diver.dive(code)
      # var dive
      Diver.search_for(:var)
      Diver.dive(code)
      # def dive
      Diver.search_for(:def)
      Diver.dive(code)
      # send dive
      Diver.search_for(:send)
      Diver.dive(code)

      @result = DB.all
    end

    def clean
      DB.destroy_all
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zapata-1.0.0 lib/zapata/analyst.rb