Class: LicenseAuto::Repo

Inherits:
Hashie::Mash
  • Object
show all
Defined in:
lib/license_auto/repo.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Repo

hash example: { "clone_url": "https://github.com/mineworks/license_auto.git", "ref": "readme", "access_token": "40 chars token" }



14
15
16
17
18
# File 'lib/license_auto/repo.rb', line 14

def initialize(hash)
  super(hash)
  @server = chose_repo_server
  raise("#{hash} is not a Github Repo") unless @server
end

Class Method Details

.package_managersObject



20
21
22
# File 'lib/license_auto/repo.rb', line 20

def self.package_managers
  [Bundler]
end

Instance Method Details

#find_dependenciesObject

@return: { "LicenseAuto::Bundler": [ { "dep_file": "/tmp/license_auto/cache/github.com/mineworks/license_auto.git/Gemfile.lock", "deps": [ { "name": "addressable", "version": "2.4.0", "remote": "https://rubygems.org/" }, { "name": "anemone", "version": "0.7.2", "remote": "https://rubygems.org/" }, { "name": "ast", "version": "2.2.0", "remote": "https://rubygems.org/" } ] } ] }



49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/license_auto/repo.rb', line 49

def find_dependencies
  repo_dir = @server.clone
  deps = {}
  Repo.package_managers.each {|pm|
    # LicenseAuto.logger.debug(pm)
    items = pm.new(repo_dir).parse_dependencies
    unless items.empty?
      deps[pm.to_s] = items
    end
  }
  LicenseAuto.logger.debug(JSON.pretty_generate(deps))
  deps
end