classy_assets 0.9.4 → 0.10.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.
- checksums.yaml +4 -4
- data/lib/classy_assets/config.rb +31 -21
- data/lib/classy_assets/sprockets.rb +12 -9
- data/lib/classy_assets/tasks.rb +7 -5
- data/lib/classy_assets/version.rb +1 -1
- data/spec/classy_assets/config_spec.rb +39 -20
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ae68f4846cdfc63757cd698e09ccb68299ba1e1
|
4
|
+
data.tar.gz: bfcadb8dbf17457e24675413a9c4c77941ec3fb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61802ad99b6dadbd523bcd0a69f84ef66f56f496f974914b2b88dae310e0d85fd95dc3ea65f883653d689a7f7a4bb8464ee596f6416246ef6f61e9299640537a
|
7
|
+
data.tar.gz: 83a22842adb3bcb5fe5aadc093a898211179f15ec1ed94876855a2fc28464d778c70eb2b04c59b7ba571e6045e1ac860592b53ae441bb9b15a77560b7849aeed
|
data/lib/classy_assets/config.rb
CHANGED
@@ -7,34 +7,24 @@ module ClassyAssets
|
|
7
7
|
class Config
|
8
8
|
include Singleton
|
9
9
|
|
10
|
-
attr_accessor :asset_cache, :asset_compress, :
|
11
|
-
|
12
|
-
|
10
|
+
attr_accessor :asset_cache, :asset_compress, :asset_debug, :asset_digest,
|
11
|
+
:asset_host, :asset_manifest_path, :asset_paths,
|
12
|
+
:asset_precompile, :asset_precompile_keep,
|
13
|
+
:asset_precompile_path, :asset_prefix, :asset_public_path,
|
14
|
+
:asset_root, :asset_version, :css_compressor, :js_compressor
|
13
15
|
|
14
16
|
def asset_cache
|
15
17
|
@asset_cache = (ENV['RACK_ENV'] == 'production') unless defined? @asset_cache
|
16
18
|
@asset_cache
|
17
19
|
end
|
18
20
|
|
19
|
-
def asset_compress
|
20
|
-
@asset_compress if defined? @asset_compress
|
21
|
-
end
|
22
|
-
|
23
|
-
def css_compressor
|
24
|
-
@css_compressor ||= :yui
|
25
|
-
end
|
26
|
-
|
27
|
-
def js_compressor
|
28
|
-
@js_compressor ||= :uglifier
|
29
|
-
end
|
30
|
-
|
31
21
|
def asset_debug
|
32
22
|
@asset_debug = (ENV['RACK_ENV'] == 'development') unless defined? @asset_debug
|
33
23
|
@asset_debug
|
34
24
|
end
|
35
25
|
|
36
|
-
def
|
37
|
-
@
|
26
|
+
def asset_manifest_path
|
27
|
+
@asset_manifest_path ||= File.join(asset_precompile_path, 'manifest.json')
|
38
28
|
end
|
39
29
|
|
40
30
|
def asset_paths
|
@@ -43,21 +33,41 @@ module ClassyAssets
|
|
43
33
|
@asset_paths
|
44
34
|
end
|
45
35
|
|
36
|
+
def asset_precompile
|
37
|
+
@asset_precompile ||= [/\w+\.(?!js|css).+/, /application.(css|js)$/]
|
38
|
+
end
|
39
|
+
|
40
|
+
def asset_precompile_keep
|
41
|
+
@asset_precompile_keep ||= 2
|
42
|
+
end
|
43
|
+
|
44
|
+
def asset_precompile_path
|
45
|
+
@asset_precompile_path ||= File.join(asset_public_path, asset_prefix)
|
46
|
+
end
|
47
|
+
|
46
48
|
def asset_prefix
|
47
49
|
@asset_prefix ||= 'assets'
|
48
50
|
end
|
49
51
|
|
52
|
+
def asset_public_path
|
53
|
+
@asset_public_path ||= File.join(asset_root, 'public')
|
54
|
+
end
|
55
|
+
|
50
56
|
def asset_root
|
51
57
|
raise Errors::NilAssetRoot.new if @asset_root.nil?
|
52
58
|
@asset_root
|
53
59
|
end
|
54
60
|
|
55
|
-
def
|
56
|
-
@
|
61
|
+
def asset_version
|
62
|
+
@asset_version ||= ClassyAssets::VERSION
|
57
63
|
end
|
58
64
|
|
59
|
-
def
|
60
|
-
@
|
65
|
+
def css_compressor
|
66
|
+
@css_compressor ||= :yui
|
67
|
+
end
|
68
|
+
|
69
|
+
def js_compressor
|
70
|
+
@js_compressor ||= :uglifier
|
61
71
|
end
|
62
72
|
|
63
73
|
private
|
@@ -6,31 +6,34 @@ module ClassyAssets
|
|
6
6
|
class Sprockets
|
7
7
|
attr_accessor :asset_root, :environment
|
8
8
|
def initialize
|
9
|
-
@
|
9
|
+
@config = ClassyAssets.config
|
10
|
+
@asset_root = @config.asset_root
|
10
11
|
@environment = new_sprockets_environment
|
11
12
|
end
|
12
13
|
|
13
14
|
private
|
14
15
|
|
15
16
|
def new_sprockets_environment
|
16
|
-
|
17
|
+
sprockets_environment = ::Sprockets::Environment.new(asset_root) do
|
18
|
+
@version = @config.asset_version
|
19
|
+
end
|
17
20
|
|
18
|
-
|
19
|
-
|
21
|
+
@config.asset_paths.each do |asset_path|
|
22
|
+
sprockets_environment.append_path asset_path
|
20
23
|
end
|
21
24
|
|
22
|
-
if
|
23
|
-
|
24
|
-
|
25
|
+
if @config.asset_compress
|
26
|
+
sprockets_environment.css_compressor = @config.css_compressor
|
27
|
+
sprockets_environment.js_compressor = @config.css_compressor
|
25
28
|
end
|
26
29
|
|
27
|
-
|
30
|
+
sprockets_environment.context_class.class_eval do
|
28
31
|
def asset_path(path, options = {})
|
29
32
|
ClassyAssets.asset_url_for(path)
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
33
|
-
|
36
|
+
sprockets_environment
|
34
37
|
end
|
35
38
|
end
|
36
39
|
end
|
data/lib/classy_assets/tasks.rb
CHANGED
@@ -5,16 +5,18 @@ require 'rake/sprocketstask'
|
|
5
5
|
require 'classy_assets'
|
6
6
|
|
7
7
|
module ClassyAssets
|
8
|
-
class Tasks < Rake::SprocketsTask
|
9
|
-
def
|
8
|
+
class Tasks < Rake::SprocketsTask
|
9
|
+
def define_precompile_task
|
10
10
|
task "assets:precompile" => [:clean_assets, :assets]
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
ClassyAssets::Tasks.new do |t|
|
16
|
+
t.define_precompile_task
|
16
17
|
t.environment = ClassyAssets.sprockets
|
17
|
-
t.output = ClassyAssets.config.
|
18
|
-
t.assets = ClassyAssets.config.
|
19
|
-
t.
|
18
|
+
t.output = ClassyAssets.config.asset_precompile_path
|
19
|
+
t.assets = ClassyAssets.config.asset_precompile
|
20
|
+
t.keep = ClassyAssets.config.asset_precompile_keep
|
21
|
+
t.manifest = ::Sprockets::Manifest.new(t.environment, ClassyAssets.config.asset_manifest_path)
|
20
22
|
end
|
@@ -4,15 +4,18 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe ClassyAssets::Config do
|
6
6
|
before(:all) do
|
7
|
+
@asset_prefix = 'assets'
|
7
8
|
@asset_root = File.expand_path('../../support', __FILE__)
|
8
9
|
@asset_host = 'http://example.com'
|
9
|
-
@
|
10
|
-
|
10
|
+
@asset_public_path = File.join(@asset_root, 'public')
|
11
|
+
@asset_precompile_path = File.join(@asset_public_path, @asset_prefix)
|
12
|
+
@asset_manifest_path = File.join(@asset_precompile_path, 'manifest.json')
|
13
|
+
@asset_precompile = %w(application.css application.js)
|
14
|
+
@asset_version = ClassyAssets::VERSION
|
15
|
+
|
11
16
|
@asset_paths = Dir.glob(File.join(@asset_root, @asset_prefix, '*'))
|
12
17
|
@vendor_path = File.expand_path('../../support/vendor', __FILE__)
|
13
18
|
@asset_paths << @vendor_path
|
14
|
-
@asset_precompile_files = %w(application.css application.js)
|
15
|
-
@asset_precompile_folder = "./public/#{@asset_prefix}"
|
16
19
|
|
17
20
|
ClassyAssets.config do |config|
|
18
21
|
config.asset_root = @asset_root # must be configured first
|
@@ -20,7 +23,7 @@ describe ClassyAssets::Config do
|
|
20
23
|
config.asset_digest = true
|
21
24
|
config.asset_host = @asset_host
|
22
25
|
config.asset_paths << @vendor_path
|
23
|
-
config.
|
26
|
+
config.asset_precompile = @asset_precompile
|
24
27
|
end
|
25
28
|
|
26
29
|
@configuration = ClassyAssets.config
|
@@ -34,14 +37,6 @@ describe ClassyAssets::Config do
|
|
34
37
|
@configuration.asset_compress.must_equal nil
|
35
38
|
end
|
36
39
|
|
37
|
-
it "returns the configured css_compressor" do
|
38
|
-
@configuration.css_compressor.must_equal :yui
|
39
|
-
end
|
40
|
-
|
41
|
-
it "returns the configured js_compressor" do
|
42
|
-
@configuration.js_compressor.must_equal :uglifier
|
43
|
-
end
|
44
|
-
|
45
40
|
it "returns the configured asset_debug" do
|
46
41
|
@configuration.asset_debug.must_equal true
|
47
42
|
end
|
@@ -54,23 +49,47 @@ describe ClassyAssets::Config do
|
|
54
49
|
@configuration.asset_host.must_equal @asset_host
|
55
50
|
end
|
56
51
|
|
52
|
+
it "returns the configured asset_manifest_path" do
|
53
|
+
@configuration.asset_manifest_path.must_equal @asset_manifest_path
|
54
|
+
end
|
55
|
+
|
56
|
+
it "returns the configured asset_paths" do
|
57
|
+
@configuration.asset_paths.must_equal @asset_paths
|
58
|
+
end
|
59
|
+
|
60
|
+
it "returns the configured asset_precompile" do
|
61
|
+
@configuration.asset_precompile.must_equal @asset_precompile
|
62
|
+
end
|
63
|
+
|
64
|
+
it "returns the configured asset_precompile_keep" do
|
65
|
+
@configuration.asset_precompile_keep.must_equal 2
|
66
|
+
end
|
67
|
+
|
68
|
+
it "returns the configured asset_precompile_path" do
|
69
|
+
@configuration.asset_precompile_path.must_equal @asset_precompile_path
|
70
|
+
end
|
71
|
+
|
57
72
|
it "returns the configured asset_prefix" do
|
58
73
|
@configuration.asset_prefix.must_equal @asset_prefix
|
59
74
|
end
|
60
75
|
|
76
|
+
it "returns the configured asset_public_path" do
|
77
|
+
@configuration.asset_public_path.must_equal @asset_public_path
|
78
|
+
end
|
79
|
+
|
61
80
|
it "returns the configured asset_root" do
|
62
81
|
@configuration.asset_root.must_equal @asset_root
|
63
82
|
end
|
64
|
-
|
65
|
-
it "returns the configured
|
66
|
-
@configuration.
|
83
|
+
|
84
|
+
it "returns the configured asset_version" do
|
85
|
+
@configuration.asset_version.must_equal @asset_version
|
67
86
|
end
|
68
87
|
|
69
|
-
it "returns the configured
|
70
|
-
@configuration.
|
88
|
+
it "returns the configured css_compressor" do
|
89
|
+
@configuration.css_compressor.must_equal :yui
|
71
90
|
end
|
72
91
|
|
73
|
-
it "returns the configured
|
74
|
-
@configuration.
|
92
|
+
it "returns the configured js_compressor" do
|
93
|
+
@configuration.js_compressor.must_equal :uglifier
|
75
94
|
end
|
76
95
|
end
|