Class: GemXray::RailsKnowledge
- Inherits:
-
Object
- Object
- GemXray::RailsKnowledge
- Defined in:
- lib/gemxray/rails_knowledge.rb
Defined Under Namespace
Classes: Change
Instance Method Summary collapse
- #changes_for(rails_version) ⇒ Object
- #find_removal(gem_name, rails_version) ⇒ Object
-
#initialize(data_path: File.join(GemXray.root, "data", "rails_changes.yml")) ⇒ RailsKnowledge
constructor
A new instance of RailsKnowledge.
Constructor Details
#initialize(data_path: File.join(GemXray.root, "data", "rails_changes.yml")) ⇒ RailsKnowledge
Returns a new instance of RailsKnowledge.
9 10 11 |
# File 'lib/gemxray/rails_knowledge.rb', line 9 def initialize(data_path: File.join(GemXray.root, "data", "rails_changes.yml")) @data_path = data_path end |
Instance Method Details
#changes_for(rails_version) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/gemxray/rails_knowledge.rb', line 13 def changes_for(rails_version) return [] unless rails_version data.fetch("versions", {}).each_with_object([]) do |(since, payload), changes| next if Gem::Version.new(rails_version) < Gem::Version.new(since) Array(payload["removals"]).each do |item| changes << Change.new( gem_name: item.fetch("gem"), since: since, reason: item.fetch("reason"), source: item["source"] ) end end rescue ArgumentError [] end |
#find_removal(gem_name, rails_version) ⇒ Object
32 33 34 |
# File 'lib/gemxray/rails_knowledge.rb', line 32 def find_removal(gem_name, rails_version) changes_for(rails_version).reverse.find { |change| change.gem_name == gem_name } end |