Sha256: 3d3fb80b0e3b9362eb917e00558845a7056e573e77283c7376cdfc22b6e774fa

Contents?: true

Size: 1.31 KB

Versions: 2

Compression:

Stored size: 1.31 KB

Contents

require_relative 'configuration'
Dir.glob(__dir__ + '/target/*.rb').each {|f| require_relative f }

module Depec
  class Analyzer
    #
    # @param [String]
    # @param [Hash]
    #
    def initialize(dir, config)
      @dir = dir
      @name = File.basename(@dir)
      @config = Configuration.call(config).to_h
    end

    #
    # @return [Hash]
    #
    def analyze
      results = {
        name: @name
      }

      @config[:targets].each do |target, options|
        klass = Object.const_get("Depec::Target::#{target.to_s.split('_').collect!{ |w| w.capitalize }.join}").new(@dir)
        results[target] = klass.used? if options[:use]
        if [:ruby, :node].include?(target)
          results[:"#{target}_version"] = klass.version if options[:version]
        end
        if target == :circle_ci
          results[:circle_ci_images] = klass.images if options[:images]
        end
        if target == :ruby
          results[:bundler_version] = klass.bundler_version if options[:bundler_version]
          options[:gem_version]&.each do |gem|
            results[:"#{gem}_gem"] = klass.gem_version(gem)
          end
        end
        if target == :node
          options[:npm_version]&.each do |npm|
            results[:"#{npm}_npm"] = klass.npm_version(npm)
          end
        end
      end

      results
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
depec-1.0.1 lib/depec/analyzer.rb
depec-1.0.0 lib/depec/analyzer.rb