sprock-assets 0.9.0 → 0.9.4
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/.travis.yml +4 -0
- data/Gemfile.lock +2 -28
- data/lib/sprock_assets.rb +16 -18
- data/lib/sprock_assets/version.rb +1 -1
- data/readme.md +19 -21
- data/spec/sprock_assets_spec.rb +17 -19
- data/sprock_assets.gemspec +0 -2
- metadata +3 -20
- data/bin/sprock-assets +0 -18
data/.travis.yml
ADDED
data/Gemfile.lock
CHANGED
@@ -1,33 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sprock-assets (0.
|
4
|
+
sprock-assets (0.9.3)
|
5
5
|
sprockets
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
|
-
addressable (2.3.2)
|
11
|
-
capybara (1.1.2)
|
12
|
-
mime-types (>= 1.16)
|
13
|
-
nokogiri (>= 1.3.3)
|
14
|
-
rack (>= 1.0.0)
|
15
|
-
rack-test (>= 0.5.4)
|
16
|
-
selenium-webdriver (~> 2.0)
|
17
|
-
xpath (~> 0.1.4)
|
18
|
-
childprocess (0.3.5)
|
19
|
-
ffi (~> 1.0, >= 1.0.6)
|
20
10
|
diff-lcs (1.1.3)
|
21
|
-
ffi (1.1.5)
|
22
11
|
hike (1.2.1)
|
23
|
-
libwebsocket (0.1.5)
|
24
|
-
addressable
|
25
|
-
mime-types (1.19)
|
26
12
|
multi_json (1.3.6)
|
27
|
-
nokogiri (1.5.5)
|
28
13
|
rack (1.4.1)
|
29
|
-
rack-test (0.6.2)
|
30
|
-
rack (>= 1.0)
|
31
14
|
rake (0.9.2.2)
|
32
15
|
rspec (2.11.0)
|
33
16
|
rspec-core (~> 2.11.0)
|
@@ -37,26 +20,17 @@ GEM
|
|
37
20
|
rspec-expectations (2.11.3)
|
38
21
|
diff-lcs (~> 1.1.3)
|
39
22
|
rspec-mocks (2.11.3)
|
40
|
-
|
41
|
-
selenium-webdriver (2.25.0)
|
42
|
-
childprocess (>= 0.2.5)
|
43
|
-
libwebsocket (~> 0.1.3)
|
44
|
-
multi_json (~> 1.0)
|
45
|
-
rubyzip
|
46
|
-
sprockets (2.6.0)
|
23
|
+
sprockets (2.8.1)
|
47
24
|
hike (~> 1.2)
|
48
25
|
multi_json (~> 1.0)
|
49
26
|
rack (~> 1.0)
|
50
27
|
tilt (~> 1.1, != 1.3.0)
|
51
28
|
tilt (1.3.3)
|
52
|
-
xpath (0.1.4)
|
53
|
-
nokogiri (~> 1.3)
|
54
29
|
|
55
30
|
PLATFORMS
|
56
31
|
ruby
|
57
32
|
|
58
33
|
DEPENDENCIES
|
59
|
-
capybara
|
60
34
|
rack
|
61
35
|
rake
|
62
36
|
rspec
|
data/lib/sprock_assets.rb
CHANGED
@@ -20,13 +20,29 @@ class SprockAssets
|
|
20
20
|
assets_path: 'app',
|
21
21
|
javascripts_path: 'app/assets/javascripts',
|
22
22
|
stylesheets_path: 'app/assets/stylesheets',
|
23
|
+
compile: false
|
23
24
|
}.merge(settings)
|
24
25
|
|
26
|
+
|
27
|
+
javascript_file = "#{Dir.pwd}/#{@settings[:javascripts_path]}/application.js"
|
28
|
+
unless File.exists? javascript_file
|
29
|
+
raise "Javascript application file (#{javascript_file}) was not found"
|
30
|
+
end
|
31
|
+
|
32
|
+
stylesheet_file = "#{Dir.pwd}/#{@settings[:stylesheets_path]}/application.css"
|
33
|
+
unless File.exists? stylesheet_file
|
34
|
+
raise "Stylesheet application file (#{stylesheet_file}) was not found"
|
35
|
+
end
|
36
|
+
|
25
37
|
@assets = Sprockets::Environment.new(Dir.pwd) do |assets|
|
26
38
|
assets.logger = Logger.new(STDOUT)
|
27
39
|
assets.append_path @settings[:assets_path]
|
28
40
|
assets.append_path @settings[:javascripts_path]
|
29
41
|
assets.append_path @settings[:stylesheets_path]
|
42
|
+
if @settings[:compile]
|
43
|
+
assets.js_compressor = Uglifier.new({ mangle: true })
|
44
|
+
assets.css_compressor = YUI::CssCompressor.new
|
45
|
+
end
|
30
46
|
end
|
31
47
|
end
|
32
48
|
|
@@ -38,22 +54,4 @@ class SprockAssets
|
|
38
54
|
@assets.call env
|
39
55
|
end
|
40
56
|
end
|
41
|
-
|
42
|
-
# Public: Generates the configured file structure for an applications assets.
|
43
|
-
def generate_assets
|
44
|
-
FileUtils.mkdir_p "#{@settings[:javascripts_path]}/coffee"
|
45
|
-
FileUtils.mkdir_p "#{@settings[:stylesheets_path]}/scss"
|
46
|
-
File.open("#{@settings[:javascripts_path]}/application.js", 'w') do |application_js|
|
47
|
-
application_js << (<<-EOS).gsub(' ', '')
|
48
|
-
//= require_tree ./coffee
|
49
|
-
EOS
|
50
|
-
end
|
51
|
-
File.open("#{@settings[:stylesheets_path]}/application.css", 'w') do |application_css|
|
52
|
-
application_css << (<<-EOS).gsub(' ', '')
|
53
|
-
/*
|
54
|
-
*= require_tree ./scss
|
55
|
-
*/
|
56
|
-
EOS
|
57
|
-
end
|
58
|
-
end
|
59
57
|
end
|
data/readme.md
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
# SprockAssets
|
2
|
+
[](https://travis-ci.org/nickbarth/SprockAssets)
|
3
|
+
[](https://gemnasium.com/nickbarth/SprockAssets)
|
2
4
|
|
3
|
-
SprockAssets is a Rack
|
5
|
+
SprockAssets is a Rack middleware that makes compiling your assets on the fly with Sprockets easy and fast.
|
4
6
|
|
5
7
|
## Usage
|
6
8
|
|
7
|
-
Here
|
9
|
+
Here is how to use it.
|
8
10
|
|
9
11
|
### Add it to your Gemfile
|
10
12
|
|
11
|
-
gem 'sprock-assets', require 'sprock_assets'
|
13
|
+
gem 'sprock-assets', require: 'sprock_assets'
|
12
14
|
|
13
15
|
### Vanilla Rack apps
|
14
16
|
|
@@ -18,7 +20,7 @@ Add a use to your `config.ru`
|
|
18
20
|
|
19
21
|
### Sinatra
|
20
22
|
|
21
|
-
|
23
|
+
You can use assets just like in Rails.
|
22
24
|
|
23
25
|
require 'sinatra/base'
|
24
26
|
require 'sprock_assets'
|
@@ -27,30 +29,26 @@ If you're using Sinatra, you can use the flash hash just like in Rails:
|
|
27
29
|
use SprockAssets
|
28
30
|
end
|
29
31
|
|
30
|
-
###
|
32
|
+
### Create and update the source files
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
│ └── coffee
|
44
|
-
└── stylesheets
|
45
|
-
├── application.css.scss
|
46
|
-
└── scss
|
34
|
+
<table>
|
35
|
+
<tr>
|
36
|
+
<th>Default source file</th>
|
37
|
+
</tr>
|
38
|
+
<tr>
|
39
|
+
<td>app/assets/stylesheets/application.css</td>
|
40
|
+
</tr>
|
41
|
+
<tr>
|
42
|
+
<td>app/assets/javascripts/application.js</td>
|
43
|
+
</tr>
|
44
|
+
</table>
|
47
45
|
|
48
46
|
### Serve compiled assets
|
49
47
|
|
50
48
|
ruby config.ru
|
51
49
|
curl http://localhost/assets/stylesheets/application.css
|
52
50
|
curl http://localhost/assets/javascripts/application.js
|
53
|
-
|
51
|
+
|
54
52
|
Your compiled assets will now be served at their corresponding URIs.
|
55
53
|
|
56
54
|
### License
|
data/spec/sprock_assets_spec.rb
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe SprockAssets do
|
4
|
+
Uglifier = Module.new
|
5
|
+
YUI = Module.new
|
6
|
+
YUI::CssCompressor = Module.new
|
7
|
+
|
8
|
+
before(:each) do
|
9
|
+
File.stub(:exists? => true)
|
10
|
+
Uglifier.stub(:new)
|
11
|
+
YUI::CssCompressor.stub(:new)
|
12
|
+
end
|
13
|
+
|
4
14
|
context 'on Rack initialize' do
|
5
15
|
it 'takes in custom paths' do
|
6
16
|
env = Sprockets::Environment.any_instance
|
@@ -11,6 +21,13 @@ describe SprockAssets do
|
|
11
21
|
javascripts_path: 'JAVASCRIPTS_PATH',
|
12
22
|
stylesheets_path: 'STYLESHEETS_PATH'
|
13
23
|
end
|
24
|
+
|
25
|
+
it 'sets compressors on compile flag' do
|
26
|
+
env = Sprockets::Environment.any_instance
|
27
|
+
env.should_receive(:js_compressor=)
|
28
|
+
env.should_receive(:css_compressor=)
|
29
|
+
SprockAssets.new nil, compile: true
|
30
|
+
end
|
14
31
|
end
|
15
32
|
|
16
33
|
context 'on Rack request' do
|
@@ -26,23 +43,4 @@ describe SprockAssets do
|
|
26
43
|
rack_app.call 'PATH_INFO' => '/other/'
|
27
44
|
end
|
28
45
|
end
|
29
|
-
|
30
|
-
context 'on generate asset call' do
|
31
|
-
before(:each) do
|
32
|
-
FileUtils.stub(:mkdir_p)
|
33
|
-
File.stub(:open)
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'should create the correct folders' do
|
37
|
-
FileUtils.should_receive(:mkdir_p).with('app/assets/stylesheets/scss')
|
38
|
-
FileUtils.should_receive(:mkdir_p).with('app/assets/javascripts/coffee')
|
39
|
-
SprockAssets.new(nil).generate_assets
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'should write an application.css and a application.js file' do
|
43
|
-
File.should_receive(:open).with('app/assets/javascripts/application.js', 'w')
|
44
|
-
File.should_receive(:open).with('app/assets/stylesheets/application.css', 'w')
|
45
|
-
SprockAssets.new(nil).generate_assets
|
46
|
-
end
|
47
|
-
end
|
48
46
|
end
|
data/sprock_assets.gemspec
CHANGED
@@ -11,13 +11,11 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.summary = 'A Ruby Gem for compiling assets through Sprock.'
|
12
12
|
gem.description = 'SprockAssets is a Rack Middleware you can include in your application for compiling your assets on the fly with Sprockets.'
|
13
13
|
gem.homepage = 'https://github.com/nickbarth/SprockAssets'
|
14
|
-
gem.executables = ['sprock-assets']
|
15
14
|
|
16
15
|
gem.add_dependency('sprockets')
|
17
16
|
gem.add_development_dependency('rake')
|
18
17
|
gem.add_development_dependency('rack')
|
19
18
|
gem.add_development_dependency('rspec')
|
20
|
-
gem.add_development_dependency('capybara')
|
21
19
|
|
22
20
|
gem.files = `git ls-files`.split($/)
|
23
21
|
gem.test_files = gem.files.grep /spec/
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprock-assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -75,37 +75,20 @@ dependencies:
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: capybara
|
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'
|
94
78
|
description: SprockAssets is a Rack Middleware you can include in your application
|
95
79
|
for compiling your assets on the fly with Sprockets.
|
96
80
|
email:
|
97
81
|
- nick@nickbarth.ca
|
98
|
-
executables:
|
99
|
-
- sprock-assets
|
82
|
+
executables: []
|
100
83
|
extensions: []
|
101
84
|
extra_rdoc_files: []
|
102
85
|
files:
|
103
86
|
- .gitignore
|
104
87
|
- .rspec
|
88
|
+
- .travis.yml
|
105
89
|
- Gemfile
|
106
90
|
- Gemfile.lock
|
107
91
|
- Rakefile
|
108
|
-
- bin/sprock-assets
|
109
92
|
- lib/sprock_assets.rb
|
110
93
|
- lib/sprock_assets/version.rb
|
111
94
|
- readme.md
|
data/bin/sprock-assets
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'sprock_assets'
|
4
|
-
|
5
|
-
if %w(-v --version).include? ARGV.first
|
6
|
-
puts "sprock-assets, version #{SprockAssets::VERSION}"
|
7
|
-
elsif 'generate_assets' == ARGV.first
|
8
|
-
SprockAssets.new(nil).generate_assets
|
9
|
-
else
|
10
|
-
puts (<<-EOS).gsub('^ ', '')
|
11
|
-
usage: sprock-assets [switches] [commands]
|
12
|
-
switches:
|
13
|
-
-v/--version displays version number
|
14
|
-
-h/--help displays this help
|
15
|
-
commands:
|
16
|
-
generate_assets generates default assets
|
17
|
-
EOS
|
18
|
-
end
|