Class: GemXray::Analyzers::VersionAnalyzer
- Defined in:
- lib/gemxray/analyzers/version_analyzer.rb
Constant Summary
Constants inherited from Base
Instance Method Summary collapse
Methods inherited from Base
Constructor Details
This class inherits a constructor from GemXray::Analyzers::Base
Instance Method Details
#analyze(gems) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/gemxray/analyzers/version_analyzer.rb', line 6 def analyze(gems) ruby_version = gemfile_parser.ruby_version rails_version = gemfile_parser.rails_version(gems) default_gems = stdgems_client.default_gems_for(ruby_version) bundled_gems = stdgems_client.bundled_gems_for(ruby_version) gems.each_with_object([]) do |gem_entry, results| next if skipped?(gem_entry) if default_gems.include?(gem_entry.name) && !gem_entry.pinned_version? results << build_result( gem_entry: gem_entry, type: :version_redundant, severity: :warning, detail: "Ruby #{ruby_version} already ships this as a default gem" ) elsif bundled_gems.include?(gem_entry.name) && !gem_entry.pinned_version? results << build_result( gem_entry: gem_entry, type: :version_redundant, severity: :warning, detail: "Ruby #{ruby_version} already ships this as a bundled gem" ) end change = rails_knowledge.find_removal(gem_entry.name, rails_version) next unless change results << build_result( gem_entry: gem_entry, type: :version_redundant, severity: :warning, detail: "since Rails #{change.since}, #{change.reason}" ) end end |