Module: Geminabox::Indexer
- Defined in:
- lib/geminabox/indexer.rb
Class Method Summary collapse
- .germane? ⇒ Boolean
- .patch_rubygems_update_index_pre_1_8_25(indexer) ⇒ Object
- .updated_gemspecs(indexer) ⇒ Object
Class Method Details
.germane? ⇒ Boolean
15 16 17 18 19 20 21 |
# File 'lib/geminabox/indexer.rb', line 15 def self.germane? gem_version = Gem::Version.new(Gem::VERSION) v1_8 = Gem::Version.new('1.8') v1_8_25 = Gem::Version.new('1.8.25') (gem_version >= v1_8) && (gem_version < v1_8_25) end |
.patch_rubygems_update_index_pre_1_8_25(indexer) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/geminabox/indexer.rb', line 36 def self.patch_rubygems_update_index_pre_1_8_25(indexer) if germane? specs = updated_gemspecs(indexer) unless specs.empty? Gem::Specification.dirs = [] Gem::Specification.add_specs(*specs) end end end |
.updated_gemspecs(indexer) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/geminabox/indexer.rb', line 23 def self.updated_gemspecs(indexer) specs_mtime = File.stat(indexer.dest_specs_index).mtime newest_mtime = Time.at 0 updated_gems = indexer.gem_file_list.select do |gem| gem_mtime = File.stat(gem).mtime newest_mtime = gem_mtime if gem_mtime > newest_mtime gem_mtime >= specs_mtime end indexer.map_gems_to_specs updated_gems end |