Class: Topaz::List

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

Class Method Summary collapse

Class Method Details

.list(type = :local) ⇒ Object

Returns an array of RubyGems. Set the ‘type` parameter to `:local`, `:remote`, or `:both` to have local or remote gems listed, respectively.



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/topaz.rb', line 83

def list(type = :local)
  type = case type
    when :local
      '-l'
    when :remote
      '-r'
    when :both
      '-b'
  end
  if type == '-l'
    gems = Gem::cache.search ''
    list = []
    gems.each do |g|
      list << [g.name, g.version.to_s]
    end
    list
  else
    `gem list #{type}`.scan(/^(\w+) \(([\d\.]+)/)
  end
end