Module: OssAudit::Managers::Bundler
- Extended by:
- Utils
- Defined in:
- lib/oss_audit/managers/bundler.rb
Class Method Summary collapse
- .get_info(package, version = nil) ⇒ Object
- .list_dependencies(directory) ⇒ Object
- .used_in?(directory) ⇒ Boolean
Methods included from Utils
Class Method Details
.get_info(package, version = nil) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/oss_audit/managers/bundler.rb', line 18 def self.get_info(package, version=nil) data = get_uri("https://rubygems.org/api/v1/gems/#{package}.json") if data.is_a?(Exception) OssAudit.logger.error{"#{package} | #{data}"} return end name = data['name'] licenses = Array(data['license'] || data['licenses']) homepage = data['homepage_uri'] || data.dig('metadata','homepage_uri') || data['project_uri'] source = data['source_code_uri'] || data.dig('metadata','source_code_uri') dependencies = data['dependencies']['runtime'].map{|k| k['name']} return { "name" => name, "licenses" => licenses, "homepage" => homepage, "source" => source, "dependencies" => dependencies } end |
.list_dependencies(directory) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/oss_audit/managers/bundler.rb', line 10 def self.list_dependencies(directory) file = File.read(File.join(directory, 'Gemfile')) file.gsub!(/\#.*/,'') return file.scan(/gem\s["'](\w+)["']/).flatten.uniq end |
.used_in?(directory) ⇒ Boolean
6 7 8 |
# File 'lib/oss_audit/managers/bundler.rb', line 6 def self.used_in?(directory) File.exists?(File.join(directory, 'Gemfile.lock')) || File.exists?(File.join(directory, 'Gemfile')) end |