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