class LicenseAuto::Repo
Public Class Methods
new(hash)
click to toggle source
hash example:
{ "clone_url": "https://github.com/mineworks/license_auto.git", "ref": "readme", "access_token": "40 chars token" }
Calls superclass method
# File lib/license_auto/repo.rb, line 19 def initialize(hash) super(hash) @server = chose_repo_server raise("#{hash} is not a Github Repo") unless @server @repo_dir = nil end
package_managers()
click to toggle source
# File lib/license_auto/repo.rb, line 26 def self.package_managers [ Bundler, Npm, Golang, Gradle, Maven ] end
Public Instance Methods
find_dependencies()
click to toggle source
@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/" } ] } ], "LicenseAuto::Npm": [ { "dep_file": "/tmp/license_auto/cache/github.com/mineworks/license_auto.git/package.json", "deps": [ { "name": "bower", "version": "v1.7.9", "remote": "https://github.com/bower/bower.git" }, { "name": "lodash.isarguments", "version": "3.0.8", "remote": "http://registry.npmjs.org/" }, { "name": "lodash.isarray", "version": "3.0.4", "remote": "http://registry.npmjs.org/" } ] } ]
}
# File lib/license_auto/repo.rb, line 83 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
find_git_modules()
click to toggle source
@return Array
# File lib/license_auto/repo.rb, line 100 def find_git_modules if FileTest.directory?(@repo_dir) pm = LicenseAuto::GitModule.new(@repo_dir) pm.parse_dependencies else error = "Cloned repo_dir is nil" LicenseAuto.logger.error(error) nil end end
Private Instance Methods
chose_repo_server()
click to toggle source
def get_ref()
@server.get_ref(self.ref)
end
# File lib/license_auto/repo.rb, line 117 def chose_repo_server source_code_matcher = LicenseAuto::Matcher::SourceURL.new(clone_url) github_matched = source_code_matcher.match_github_resource if github_matched # TODO: pass argument: ref @server = GithubCom.new({}, github_matched[:owner], github_matched[:repo], ref=self.ref) end end