class DependenciesCollector::Collector
Public Instance Methods
execute()
click to toggle source
# File lib/dependencies_collector.rb, line 12 def execute data = { packages: parsingGemfile , opreating_system: RbConfig::CONFIG["arch"]} puts parsingDependencies(JSON.parse((requestDependencies(data).body))) end
parsingDependencies(packages)
click to toggle source
Parsing packges dependencies to final dependencies list
# File lib/dependencies_collector.rb, line 40 def parsingDependencies(packages) final_result = Array.new packages.each do |package| package.first['dependencies'].each do |library| final_result.push(library['library_name']) if not final_result.include?(library) end end puts final_result end
parsingGemfile()
click to toggle source
Parsing Gemfile.lock to get gems list
# File lib/dependencies_collector.rb, line 18 def parsingGemfile gems_list = Bundler::LockfileParser.new(Bundler.read_file("Gemfile.lock")).specs gems_list = gems_list.map {|s| {"name":s.name,"version":s.version}} end
requestDependencies(packages)
click to toggle source
Calling Api Service to get dependencies
# File lib/dependencies_collector.rb, line 24 def requestDependencies(packages) # Create the HTTP objects uri = URI.parse("http://localhost:3000/api/packages/dependencies") http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Post.new( uri.request_uri, 'Content-Type' => 'application/json' ) request.body = packages.to_json # Send the request response = http.request(request) end