padrino-assets 0.1.0 → 0.2.0
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/CHANGELOG.md +8 -3
- data/README.md +20 -1
- data/lib/padrino-assets.rb +10 -0
- data/lib/padrino-assets/helpers.rb +5 -6
- data/lib/padrino-assets/version.rb +1 -1
- data/lib/tasks/cleanup.rake +3 -3
- data/lib/tasks/clobber.rake +2 -2
- data/lib/tasks/compress.rake +14 -1
- data/lib/tasks/precompile.rake +4 -0
- data/padrino-assets.gemspec +2 -2
- metadata +9 -9
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
# Version History
|
2
|
-
|
3
|
-
### 0.
|
1
|
+
# Version History
|
2
|
+
|
3
|
+
### 0.2.0 - (January 17, 2012)
|
4
|
+
* The current `request` is now passed to **:assets_host** when a `Proc` is used
|
5
|
+
* Added the rake task `assets:compress` for [deflating](http://en.wikipedia.org/wiki/Gzip) assets
|
6
|
+
* Basic support for asset minification
|
7
|
+
|
8
|
+
### 0.1.0 - (January 12, 2012)
|
4
9
|
* Initial release
|
data/README.md
CHANGED
@@ -28,6 +28,26 @@ map '/assets' do
|
|
28
28
|
end
|
29
29
|
```
|
30
30
|
|
31
|
+
By default, Sprockets is configured to load assets from your project's `app/assets` and `lib/assets` directories. Any files stored in these directories are readily available to the included helpers and will be served by the Sprockets middleware.
|
32
|
+
|
33
|
+
The following directories are no longer used and will instead be served statically:
|
34
|
+
|
35
|
+
* `public/images`
|
36
|
+
* `public/stylesheets`
|
37
|
+
* `public/javascripts`
|
38
|
+
|
39
|
+
Because of this you should now be storing your assets in the following directories:
|
40
|
+
|
41
|
+
* `app/assets/images`
|
42
|
+
* `app/assets/stylesheets`
|
43
|
+
* `app/assets/javascripts`
|
44
|
+
|
45
|
+
Should your project need to add additional paths you can do so by adding the following line:
|
46
|
+
|
47
|
+
``` ruby
|
48
|
+
Padrino::Assets.load_paths << 'path/to/my/assets'
|
49
|
+
```
|
50
|
+
|
31
51
|
### Dependencies
|
32
52
|
|
33
53
|
* [Padrino-Core](https://github.com/padrino/padrino-framework) and [Padrino-Helpers](https://github.com/padrino/padrino-framework)
|
@@ -36,7 +56,6 @@ end
|
|
36
56
|
|
37
57
|
### TODO
|
38
58
|
|
39
|
-
* Support for CSS/Javascript minification
|
40
59
|
* Additional documentation
|
41
60
|
* Tests
|
42
61
|
|
data/lib/padrino-assets.rb
CHANGED
@@ -15,6 +15,7 @@ module Padrino
|
|
15
15
|
# @example
|
16
16
|
# Padrino::Assets.load_paths << Padrino.root('vendor', '**', 'assets')
|
17
17
|
#
|
18
|
+
# @since 0.1.0
|
18
19
|
# @api public
|
19
20
|
def load_paths
|
20
21
|
@_load_paths ||= ['app/assets/**', 'lib/assets/**'].map do |file|
|
@@ -28,6 +29,7 @@ module Padrino
|
|
28
29
|
# @return [Sprockets::Environment]
|
29
30
|
# Sprockets environment
|
30
31
|
#
|
32
|
+
# @since 0.1.0
|
31
33
|
# @api public
|
32
34
|
def environment
|
33
35
|
@_environment
|
@@ -39,6 +41,7 @@ module Padrino
|
|
39
41
|
# @return [Sprockets::Manifest]
|
40
42
|
# Sprockets manifest
|
41
43
|
#
|
44
|
+
# @since 0.1.0
|
42
45
|
# @api public
|
43
46
|
def manifest
|
44
47
|
@_manifest
|
@@ -51,6 +54,8 @@ module Padrino
|
|
51
54
|
app.set :assets_version, 1.0
|
52
55
|
app.set :assets_host, nil
|
53
56
|
app.set :compress_assets, true
|
57
|
+
app.set :js_compressor, nil
|
58
|
+
app.set :css_compressor, nil
|
54
59
|
app.set :index_assets, -> { app.environment == :production }
|
55
60
|
app.set :manifest_file, -> { File.join(app.public_folder, app.assets_prefix, 'manifest.json') }
|
56
61
|
app.set :precompile_assets, [ /^.+\.(?!js|css).+$/i, /^application\.(js|css)$/i ]
|
@@ -66,6 +71,11 @@ module Padrino
|
|
66
71
|
environment.cache = app.cache
|
67
72
|
end
|
68
73
|
end
|
74
|
+
|
75
|
+
if app.compress_assets?
|
76
|
+
environment.js_compressor = app.js_compressor
|
77
|
+
environment.css_compressor = app.css_compressor
|
78
|
+
end
|
69
79
|
end
|
70
80
|
|
71
81
|
load_paths.each { |path| environment.append_path(path) }
|
@@ -74,7 +74,7 @@
|
|
74
74
|
# Returns an HTML image element with given sources and options
|
75
75
|
#
|
76
76
|
# @overload image(sources, options={})
|
77
|
-
# @param [String]
|
77
|
+
# @param [Array<String>] sources
|
78
78
|
# Sources
|
79
79
|
# @param [Hash] options
|
80
80
|
# HTML options
|
@@ -206,7 +206,7 @@
|
|
206
206
|
|
207
207
|
if sources.is_a?(Array)
|
208
208
|
content_tag(:video, options) do
|
209
|
-
sources.collect { |source| tag(:source, src: asset_path(source)) }.join
|
209
|
+
sources.collect { |source| tag(:source, src: asset_path(source)) }.join("\n")
|
210
210
|
end
|
211
211
|
else
|
212
212
|
tag(:video, options.reverse_merge(src: asset_path(sources)))
|
@@ -265,7 +265,7 @@
|
|
265
265
|
|
266
266
|
if sources.is_a?(Array)
|
267
267
|
content_tag(:audio, options) do
|
268
|
-
sources.collect { |source| tag(:source, src: asset_path(source)) }.join
|
268
|
+
sources.collect { |source| tag(:source, src: asset_path(source)) }.join("\n")
|
269
269
|
end
|
270
270
|
else
|
271
271
|
tag(:audio, options.reverse_merge(src: asset_path(sources)))
|
@@ -363,9 +363,8 @@
|
|
363
363
|
|
364
364
|
# @private
|
365
365
|
def rewrite_asset_host(source)
|
366
|
-
host = settings.assets_host
|
367
|
-
host
|
368
|
-
host ? "#{host}#{source}" : source
|
366
|
+
host = settings.assets_host rescue settings.assets_host(source, request)
|
367
|
+
host ? host + source : source
|
369
368
|
end
|
370
369
|
end
|
371
370
|
end
|
data/lib/tasks/cleanup.rake
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
namespace :assets do
|
2
2
|
desc 'Removes backups for existing assets'
|
3
3
|
task :cleanup, :quanity do |task, args|
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
quanity = args['quanity'] || 2
|
5
|
+
manifest = Padrino::Assets.manifest
|
6
|
+
manifest.cleanup(quanity)
|
7
7
|
end
|
8
8
|
end
|
data/lib/tasks/clobber.rake
CHANGED
data/lib/tasks/compress.rake
CHANGED
@@ -1 +1,14 @@
|
|
1
|
-
|
1
|
+
namespace :assets do
|
2
|
+
desc 'Compresses all compiled assets'
|
3
|
+
task :compress do
|
4
|
+
environment = Padrino::Assets.environment
|
5
|
+
manifest = Padrino::Assets.manifest
|
6
|
+
|
7
|
+
manifest.assets.each do |asset, digested_asset|
|
8
|
+
if asset = environment[asset]
|
9
|
+
compressed_asset = File.join(manifest.dir, digested_asset)
|
10
|
+
asset.write_to(compressed_asset + '.gz') if compressed_asset =~ /\.(?:css|html|js|svg|txt|xml)$/
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/tasks/precompile.rake
CHANGED
data/padrino-assets.gemspec
CHANGED
@@ -16,8 +16,8 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
17
|
s.require_paths = ['lib']
|
18
18
|
|
19
|
-
s.add_dependency 'sprockets', '~> 2.
|
20
|
-
|
19
|
+
s.add_dependency 'sprockets', '~> 2.3.0'
|
20
|
+
|
21
21
|
s.add_dependency 'padrino-core'
|
22
22
|
s.add_dependency 'padrino-helpers'
|
23
23
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: padrino-assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-17 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sprockets
|
16
|
-
requirement: &
|
16
|
+
requirement: &9246510 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.
|
21
|
+
version: 2.3.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *9246510
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: padrino-core
|
27
|
-
requirement: &
|
27
|
+
requirement: &9246250 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *9246250
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: padrino-helpers
|
38
|
-
requirement: &
|
38
|
+
requirement: &9245990 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *9245990
|
47
47
|
description: A plugin for the Padrino web framework which uses Sprockets to manage
|
48
48
|
and compile assets
|
49
49
|
email:
|