Class: RubiGen::GemGeneratorSource

Inherits:
AbstractGemSource
  • Object
show all
Defined in:
lib/sprout/generator/base_mixins.rb

Overview

GemGeneratorSource hits the mines to quarry for generators. The latest versions of gems named sprout-#sprout_name-bundle are selected.

Instance Method Summary collapse

Constructor Details

#initialize(name = nil) ⇒ GemGeneratorSource



93
94
95
96
# File 'lib/sprout/generator/base_mixins.rb', line 93

def initialize(name=nil)
  super()
  @sprout_name = name
end

Instance Method Details

#eachObject

Yield latest versions of generator gems.



99
100
101
102
103
104
105
106
107
# File 'lib/sprout/generator/base_mixins.rb', line 99

def each
  Gem::cache.sprout_search(/sprout-*#{@sprout_name}-bundle$/).inject({}) do |latest, gem|
    hem = latest[gem.name]
    latest[gem.name] = gem if hem.nil? or gem.version > hem.version
    latest
  end.values.each do |gem|
    yield Spec.new(gem.name.sub(/sprout-*#{@sprout_name}-bundle$/, ''), gem.full_gem_path, label)
  end
end

#each_sproutObject



109
110
111
112
113
114
115
116
117
# File 'lib/sprout/generator/base_mixins.rb', line 109

def each_sprout
  Gem::cache.sprout_search(/^sprout-.*/).inject({}) do |latest, gem|
    hem = latest[gem.name]
    latest[gem.name] = gem if hem.nil? or gem.version > hem.version
    latest
  end.values.each do |gem|
    yield Spec.new(gem.name, gem.full_gem_path, label)
  end
end