sprockets-vendor_gems 0.1.2 → 0.1.3

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
@@ -1,6 +1,49 @@
1
1
  # Get at available assets in loaded gems in Sprockets
2
2
 
3
- Either get the list of asset paths:
3
+ Who says you need Rails Engines to use the vendored assets in gems? All you need is
4
+ `sprockets-vendor_gems`. Use those cool vendored JavaScript & CSS gems in anything!
5
+
6
+ The easiest way? Punch Sprockets right in the duck!
7
+
8
+ ``` ruby
9
+ require 'sprockets-vendor_gems/extend_all'
10
+ ```
11
+
12
+ So, for instance, in Sinatra with [sinatra-sprockets](https://github.com/amarshall/sinatra-sprockets):
13
+
14
+ ``` ruby
15
+ # config.ru
16
+
17
+ require 'sinatra/base'
18
+ require 'sprockets-vendor_gems/extend_all'
19
+ require 'sinatra/sprockets'
20
+
21
+ class MyApp < Sinatra::Base
22
+ register Sinatra::Sprockets
23
+
24
+ get '/' do
25
+ "hi"
26
+ end
27
+ end
28
+
29
+ map "/assets" do
30
+ run Sinatra::Sprockets.environment
31
+ end
32
+
33
+ run MyApp
34
+
35
+ ```
36
+
37
+ *Every* `Sprockets::Environment` instance now has every vendored gems asset path added!
38
+ By default, that's the `javascripts`, `stylesheets`, and `images` directories. Need more?
39
+
40
+ ``` ruby
41
+ Sprockets::VendorGems.default_types << "coolthings"
42
+ ```
43
+
44
+ Do that before any `Sprockets::Environment`s get instantiated.
45
+
46
+ Want more manual control? Either get the list of asset paths:
4
47
 
5
48
  ``` ruby
6
49
  require 'sprockets-vendor_gems'
@@ -11,7 +54,7 @@ Sprockets.find_gem_vendor_paths(:for => :javascript).each do |path|
11
54
  end
12
55
  ```
13
56
 
14
- or get an Environment with those paths in there already:
57
+ or, instead of duck punching all of Sprockets, get an Environment with those paths in there already:
15
58
 
16
59
  ``` ruby
17
60
  require 'sprockets-vendor_gems'
@@ -21,17 +64,5 @@ env = Sprockets::EnvironmentWithVendoredGems.new
21
64
 
22
65
  Yeah!
23
66
 
24
- ## Installation
25
-
26
- Add this line to your application's Gemfile:
27
-
28
- gem 'sprockets-vendor_gems'
29
-
30
- And then execute:
31
-
32
- $ bundle
33
-
34
- Or install it yourself as:
35
-
36
- $ gem install sprockets-vendor_gems
37
-
67
+ You may have to futz a bit with `require` and fake classes for particular gems, especially if they really
68
+ rely on Rails to get their job done.
@@ -2,10 +2,18 @@ require 'sprockets'
2
2
  require 'rubygems'
3
3
 
4
4
  module ::Sprockets
5
+ module VendorGems
6
+ class << self
7
+ attr_accessor :default_types
8
+ end
9
+
10
+ self.default_types = %w{javascripts stylesheets images}
11
+ end
12
+
5
13
  def self.find_gem_vendor_paths(options = {})
6
14
  options = { :paths => %w{vendor lib app} }.merge(options)
7
15
 
8
- for_types = [ options[:for] || [ 'javascripts', 'stylesheets' ] ].flatten
16
+ for_types = [ options[:for] || ::Sprockets::VendorGems.default_types ].flatten
9
17
 
10
18
  paths = []
11
19
 
@@ -24,6 +32,12 @@ module ::Sprockets
24
32
  def initialize(*args)
25
33
  super(*args)
26
34
 
35
+ extend_with_vendored_gems
36
+ end
37
+ end
38
+
39
+ class Environment
40
+ def extend_with_vendored_gems
27
41
  Sprockets.find_gem_vendor_paths.each { |path| append_path(path) }
28
42
  end
29
43
  end
@@ -0,0 +1,14 @@
1
+ require 'sprockets-vendor_gems'
2
+
3
+ module ::Sprockets
4
+ class Environment
5
+ alias :_initialize :initialize
6
+
7
+ def initialize(*args)
8
+ _initialize(*args)
9
+
10
+ self.extend_with_vendored_gems
11
+ end
12
+ end
13
+ end
14
+
@@ -11,7 +11,7 @@ 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.2'
14
+ gem.version = '0.1.3'
15
15
 
16
16
  gem.add_dependency 'sprockets'
17
17
 
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.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-02 00:00:00.000000000 Z
12
+ date: 2012-08-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sprockets
@@ -104,6 +104,7 @@ files:
104
104
  - README.md
105
105
  - Rakefile
106
106
  - lib/sprockets-vendor_gems.rb
107
+ - lib/sprockets-vendor_gems/extend_all.rb
107
108
  - spec/spec_helper.rb
108
109
  - spec/sprockets-vendor_gems_spec.rb
109
110
  - sprockets-vendor_gems.gemspec