Class: Gembox::Gems

Inherits:
Object
  • Object
show all
Defined in:
lib/gembox/gems.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.source_indexObject

Returns the value of attribute source_index.



4
5
6
# File 'lib/gembox/gems.rb', line 4

def source_index
  @source_index
end

Class Method Details

.loadObject



6
7
8
9
# File 'lib/gembox/gems.rb', line 6

def load
  @source_index ||= ::Gem.source_index
  local_gems
end

.local_gemsObject



11
12
13
# File 'lib/gembox/gems.rb', line 11

def local_gems
  @local_gems ||= group_gems(source_index.gems)
end

.search(search_term, version = nil, strict = false) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/gembox/gems.rb', line 15

def search(search_term, version = nil, strict = false)
  version = version ? Gem::Requirement.create(version) : Gem::Requirement.default
  escaped = Regexp.escape(search_term)
  regexp = strict ? /^#{escaped}$/ : /#{escaped}/
  gems = source_index.search Gem::Dependency.new(regexp, version)
  group_gems(gems)
end

.statsObject



23
24
25
26
27
28
# File 'lib/gembox/gems.rb', line 23

def stats
  num_versions = source_index.length
  num_gems     = local_gems.length
  oldest_gem   = source_index.min {|a,b| a[1].date <=> b[1].date }.last
  {:num_versions => num_versions, :num_gems => num_gems, :oldest_gem => oldest_gem}
end