sprockets-vendor_gems 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -12,10 +12,11 @@ end
12
12
  ```
13
13
 
14
14
  or get an Environment with those paths in there already:
15
+
15
16
  ``` ruby
16
17
  require 'sprockets-vendor_gems'
17
18
 
18
- env = Sprockets::EnvironmentWithVendoredGems.new('.')
19
+ env = Sprockets::EnvironmentWithVendoredGems.new
19
20
  ```
20
21
 
21
22
  Yeah!
@@ -2,22 +2,22 @@ require 'sprockets'
2
2
  require 'rubygems'
3
3
 
4
4
  module ::Sprockets
5
- class << self
6
- def find_gem_vendor_paths(options = {})
7
- for_types = [ options[:for] || [ 'javascripts', 'stylesheets' ] ].flatten
5
+ def self.find_gem_vendor_paths(options = {})
6
+ options = { :paths => %w{vendor lib app} }.merge(options)
8
7
 
9
- paths = []
8
+ for_types = [ options[:for] || [ 'javascripts', 'stylesheets' ] ].flatten
10
9
 
11
- Gem::Specification.each do |gemspec|
12
- %w{vendor lib app}.product(for_types).each do |base_dir, type|
13
- path = File.join(gemspec.gem_dir, base_dir, "assets", type.to_s)
10
+ paths = []
14
11
 
15
- paths << path if File.directory?(path)
16
- end
17
- end
12
+ GemEnvironment.each do |gemspec|
13
+ options[:paths].product(for_types).each do |base_dir, type|
14
+ path = File.join(gemspec.gem_dir, base_dir, "assets", type.to_s)
18
15
 
19
- paths
16
+ paths << path if File.directory?(path)
17
+ end
20
18
  end
19
+
20
+ paths
21
21
  end
22
22
 
23
23
  class EnvironmentWithVendoredGems < Environment
@@ -27,5 +27,19 @@ module ::Sprockets
27
27
  Sprockets.find_gem_vendor_paths.each { |path| append_path(path) }
28
28
  end
29
29
  end
30
+
31
+ class GemEnvironment
32
+ extend Enumerable
33
+
34
+ def self.gemspecs
35
+ Gem.loaded_specs.map(&:last)
36
+ end
37
+
38
+ def self.each(&block)
39
+ return enum_for(:each) unless block_given?
40
+
41
+ gemspecs.each {|spec| yield spec }
42
+ end
43
+ end
30
44
  end
31
45
 
@@ -0,0 +1,8 @@
1
+ require 'mocha'
2
+ require 'fakefs/spec_helpers'
3
+ require 'sprockets-vendor_gems'
4
+
5
+ RSpec.configure do |c|
6
+ c.mock_with :mocha
7
+ end
8
+
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sprockets do
4
+ include FakeFS::SpecHelpers
5
+
6
+ describe '.find_gem_vendor_paths' do
7
+ let(:gem_dir) { "dir" }
8
+ let(:gemspec) { stub(:gem_dir => gem_dir) }
9
+
10
+ let(:paths) do
11
+ %w{vendor lib app}.collect do |dir|
12
+ File.join(gem_dir, dir, 'assets/javascripts')
13
+ File.join(gem_dir, dir, 'assets/stylesheets')
14
+ end
15
+ end
16
+
17
+ before do
18
+ paths.each { |path| FileUtils.mkdir_p path }
19
+
20
+ Sprockets::GemEnvironment.stubs(:each).yields(gemspec)
21
+ end
22
+
23
+ subject { described_class.find_gem_vendor_paths }
24
+
25
+ it { should =~ paths }
26
+ end
27
+ end
28
+
29
+ describe Sprockets::EnvironmentWithVendoredGems do
30
+ let(:env) { described_class.new }
31
+ let(:path) { 'path' }
32
+
33
+ before do
34
+ Sprockets.expects(:find_gem_vendor_paths).returns([ path ])
35
+
36
+ described_class.any_instance.expects(:append_path).with(path)
37
+ end
38
+
39
+ it 'should work' do
40
+ env
41
+ end
42
+ end
@@ -11,8 +11,13 @@ Gem::Specification.new do |gem|
11
11
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
12
12
  gem.name = "sprockets-vendor_gems"
13
13
  gem.require_paths = ["lib"]
14
- gem.version = '0.1.1'
14
+ gem.version = '0.1.2'
15
15
 
16
- gem.required_rubygems_version = '>= 1.8.0'
16
+ gem.add_dependency 'sprockets'
17
+
18
+ gem.add_development_dependency 'rake'
19
+ gem.add_development_dependency 'rspec'
20
+ gem.add_development_dependency 'mocha'
21
+ gem.add_development_dependency 'fakefs'
17
22
  end
18
23
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprockets-vendor_gems
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,88 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-08 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2012-08-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sprockets
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: mocha
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: fakefs
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
14
94
  description: Get the vendored assets paths in gems.
15
95
  email:
16
96
  - john@coswellproductions.com
@@ -24,6 +104,8 @@ files:
24
104
  - README.md
25
105
  - Rakefile
26
106
  - lib/sprockets-vendor_gems.rb
107
+ - spec/spec_helper.rb
108
+ - spec/sprockets-vendor_gems_spec.rb
27
109
  - sprockets-vendor_gems.gemspec
28
110
  homepage: ''
29
111
  licenses: []
@@ -42,11 +124,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
124
  requirements:
43
125
  - - ! '>='
44
126
  - !ruby/object:Gem::Version
45
- version: 1.8.0
127
+ version: '0'
46
128
  requirements: []
47
129
  rubyforge_project:
48
- rubygems_version: 1.8.15
130
+ rubygems_version: 1.8.23
49
131
  signing_key:
50
132
  specification_version: 3
51
133
  summary: Get the vendored assets paths in gems.
52
- test_files: []
134
+ test_files:
135
+ - spec/spec_helper.rb
136
+ - spec/sprockets-vendor_gems_spec.rb