Class: RBS::Repository::GemRBS
- Inherits:
-
Object
- Object
- RBS::Repository::GemRBS
- Defined in:
- lib/rbs/repository.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#paths ⇒ Object
readonly
Returns the value of attribute paths.
Instance Method Summary collapse
- #empty? ⇒ Boolean
- #find_best_version(version) ⇒ Object
-
#initialize(name:) ⇒ GemRBS
constructor
A new instance of GemRBS.
- #latest_version ⇒ Object
- #load! ⇒ Object
- #oldest_version ⇒ Object
- #version_names ⇒ Object
- #versions ⇒ Object
Constructor Details
#initialize(name:) ⇒ GemRBS
Returns a new instance of GemRBS.
11 12 13 14 15 |
# File 'lib/rbs/repository.rb', line 11 def initialize(name:) @name = name @paths = [] @versions = nil end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
8 9 10 |
# File 'lib/rbs/repository.rb', line 8 def name @name end |
#paths ⇒ Object (readonly)
Returns the value of attribute paths.
9 10 11 |
# File 'lib/rbs/repository.rb', line 9 def paths @paths end |
Instance Method Details
#empty? ⇒ Boolean
64 65 66 |
# File 'lib/rbs/repository.rb', line 64 def empty? versions.empty? end |
#find_best_version(version) ⇒ Object
59 60 61 62 |
# File 'lib/rbs/repository.rb', line 59 def find_best_version(version) best_version = Repository.find_best_version(version, version_names) versions[best_version] end |
#latest_version ⇒ Object
54 55 56 57 |
# File 'lib/rbs/repository.rb', line 54 def latest_version latest = version_names.last or raise versions[latest] or raise end |
#load! ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/rbs/repository.rb', line 22 def load! @versions = {} versions = @versions or raise paths.each do |gem_path| gem_path.each_child(false) do |child| next unless Gem::Version.correct?(child.to_s) if version = Gem::Version.create(child.to_s) unless version.prerelease? path = gem_path + child if prev = versions[version] RBS.logger.info { "Overwriting gem RBS in repository: gem=#{name}, prev_path=#{prev.path}, new_path=#{path}" } end versions[version] = VersionPath.new(gem: self, version: version, path: path) end end end end end |
#oldest_version ⇒ Object
49 50 51 52 |
# File 'lib/rbs/repository.rb', line 49 def oldest_version oldest = version_names.first or raise versions[oldest] or raise end |
#version_names ⇒ Object
45 46 47 |
# File 'lib/rbs/repository.rb', line 45 def version_names versions.keys.sort_by(&:version) end |
#versions ⇒ Object
17 18 19 20 |
# File 'lib/rbs/repository.rb', line 17 def versions load! unless @versions @versions or raise end |