diff --git a/lib/sprockets-vendor_gems.rb b/lib/sprockets-vendor_gems.rb index 9f986a9..9ef9faf 100644 --- a/lib/sprockets-vendor_gems.rb +++ b/lib/sprockets-vendor_gems.rb @@ -9,7 +9,7 @@ module ::Sprockets paths = [] - Gem::Specification.each do |gemspec| + GemEnvironment.each do |gemspec| options[:paths].product(for_types).each do |base_dir, type| path = File.join(gemspec.gem_dir, base_dir, "assets", type.to_s) @@ -27,5 +27,19 @@ module ::Sprockets Sprockets.find_gem_vendor_paths.each { |path| append_path(path) } end end + + class GemEnvironment + extend Enumerable + + def self.gemspecs + Gem.loaded_specs.map(&:last) + end + + def self.each(&block) + return enum_for(:each) unless block_given? + + gemspecs.each {|spec| yield spec } + end + end end diff --git a/spec/sprockets-vendor_gems_spec.rb b/spec/sprockets-vendor_gems_spec.rb index 3d39330..28a480a 100644 --- a/spec/sprockets-vendor_gems_spec.rb +++ b/spec/sprockets-vendor_gems_spec.rb @@ -17,7 +17,7 @@ describe Sprockets do before do paths.each { |path| FileUtils.mkdir_p path } - Gem::Specification.stubs(:each).yields(gemspec) + Sprockets::GemEnvironment.stubs(:each).yields(gemspec) end subject { described_class.find_gem_vendor_paths } diff --git a/sprockets-vendor_gems.gemspec b/sprockets-vendor_gems.gemspec index 26ab54e..2d82bdf 100644 --- a/sprockets-vendor_gems.gemspec +++ b/sprockets-vendor_gems.gemspec @@ -13,10 +13,9 @@ Gem::Specification.new do |gem| gem.require_paths = ["lib"] gem.version = '0.1.1' - gem.required_rubygems_version = '>= 1.8.0' - gem.add_dependency 'sprockets' + gem.add_development_dependency 'rake' gem.add_development_dependency 'rspec' gem.add_development_dependency 'mocha' gem.add_development_dependency 'fakefs'