assette 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +7 -3
- data/Gemfile.lock +13 -2
- data/README.rdoc +1 -1
- data/Rakefile +9 -4
- data/VERSION +1 -1
- data/assette.gemspec +57 -16
- data/bin/assette +9 -0
- data/examples/config/assets.rb +19 -0
- data/examples/myapp/templates/foo/_partial.html.mustache +3 -0
- data/examples/{app → myapp}/templates/foo/index.html.mustache +0 -0
- data/examples/public/javascripts/foo.js +1 -1
- data/examples/public/javascripts/handlebars.js +3 -0
- data/examples/public/javascripts/test.coffee +1 -0
- data/examples/public/stylesheets/one1.sass +4 -1
- data/examples/public/stylesheets/two2.scss +8 -0
- data/lib/assette/cli.rb +172 -0
- data/lib/assette/compiled_file.rb +21 -2
- data/lib/assette/config.rb +141 -14
- data/lib/assette/file.rb +6 -2
- data/lib/assette/post_processor.rb +65 -0
- data/lib/assette/post_processors/cache_buster.rb +18 -0
- data/lib/assette/post_processors.rb +4 -0
- data/lib/assette/readers/coffee.rb +23 -23
- data/lib/assette/readers/css.rb +1 -1
- data/lib/assette/readers/js.rb +1 -1
- data/lib/assette/readers/sass.rb +1 -2
- data/lib/assette/run.ru +2 -0
- data/lib/assette/server.rb +15 -13
- data/lib/assette/template.rb +8 -2
- data/lib/assette/template_set.rb +11 -2
- data/lib/assette.rb +3 -1
- data/spec/config_spec.rb +52 -0
- data/spec/post_processor_spec.rb +63 -0
- data/spec/server_spec.rb +15 -0
- data/spec/template_spec.rb +9 -5
- metadata +176 -36
- data/examples/config.ru +0 -7
- data/examples/defaults.rb +0 -5
- data/examples/defaults.yml +0 -7
data/Gemfile
CHANGED
@@ -8,6 +8,10 @@ group :development do
|
|
8
8
|
gem "rcov", ">= 0"
|
9
9
|
end
|
10
10
|
|
11
|
-
gem "
|
12
|
-
gem "
|
13
|
-
gem "
|
11
|
+
gem "rack", '~> 1'
|
12
|
+
gem "thor", '~> 0'
|
13
|
+
gem "json", '>= 1.4'
|
14
|
+
gem "haml", '~> 3'
|
15
|
+
gem "mime-types", ">= 1.16", :require => 'mime/types'
|
16
|
+
gem "git"
|
17
|
+
gem "coffee-script", "~> 2"
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
coffee-script (2.2.0)
|
5
|
+
coffee-script-source
|
6
|
+
execjs
|
7
|
+
coffee-script-source (1.0.1)
|
4
8
|
diff-lcs (1.1.2)
|
9
|
+
execjs (0.1.0)
|
5
10
|
git (1.2.5)
|
6
11
|
haml (3.0.25)
|
7
12
|
jeweler (1.5.2)
|
@@ -10,6 +15,7 @@ GEM
|
|
10
15
|
rake
|
11
16
|
json (1.5.1)
|
12
17
|
mime-types (1.16)
|
18
|
+
rack (1.2.1)
|
13
19
|
rake (0.8.7)
|
14
20
|
rcov (0.9.9)
|
15
21
|
rspec (2.4.0)
|
@@ -20,6 +26,7 @@ GEM
|
|
20
26
|
rspec-expectations (2.4.0)
|
21
27
|
diff-lcs (~> 1.1.2)
|
22
28
|
rspec-mocks (2.4.0)
|
29
|
+
thor (0.14.6)
|
23
30
|
yard (0.6.4)
|
24
31
|
|
25
32
|
PLATFORMS
|
@@ -27,10 +34,14 @@ PLATFORMS
|
|
27
34
|
|
28
35
|
DEPENDENCIES
|
29
36
|
bundler (~> 1.0.0)
|
30
|
-
|
37
|
+
coffee-script (~> 2)
|
38
|
+
git
|
39
|
+
haml (~> 3)
|
31
40
|
jeweler (~> 1.5.2)
|
32
|
-
json
|
41
|
+
json (>= 1.4)
|
33
42
|
mime-types (>= 1.16)
|
43
|
+
rack (~> 1)
|
34
44
|
rcov
|
35
45
|
rspec (~> 2.4.0)
|
46
|
+
thor (~> 0)
|
36
47
|
yard (~> 0.6.0)
|
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -15,14 +15,19 @@ Jeweler::Tasks.new do |gem|
|
|
15
15
|
gem.name = "assette"
|
16
16
|
gem.homepage = "http://github.com/Talby/assette"
|
17
17
|
gem.license = "MIT"
|
18
|
-
gem.summary = %Q{
|
19
|
-
gem.description = %Q{
|
18
|
+
gem.summary = %Q{Treat all assets as equal}
|
19
|
+
gem.description = %Q{Renders all asset types (coffeescript/sass/scss) as equals}
|
20
20
|
gem.email = "me@tal.by"
|
21
21
|
gem.authors = ["Tal Atlas"]
|
22
22
|
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
23
23
|
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
|
-
|
25
|
-
|
24
|
+
gem.add_runtime_dependency "rack", '~> 1'
|
25
|
+
gem.add_runtime_dependency "thor", '~> 0'
|
26
|
+
gem.add_runtime_dependency "json", '>= 1.4'
|
27
|
+
gem.add_runtime_dependency "haml", '~> 3'
|
28
|
+
gem.add_runtime_dependency "coffee-script", '~> 2'
|
29
|
+
# gem.add_runtime_dependency "git"
|
30
|
+
gem.add_runtime_dependency "mime-types", ">= 1.16"
|
26
31
|
end
|
27
32
|
Jeweler::RubygemsDotOrgTasks.new
|
28
33
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.1
|
data/assette.gemspec
CHANGED
@@ -5,13 +5,15 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{assette}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tal Atlas"]
|
12
|
-
s.date = %q{2011-03-
|
13
|
-
s.
|
12
|
+
s.date = %q{2011-03-28}
|
13
|
+
s.default_executable = %q{assette}
|
14
|
+
s.description = %q{Renders all asset types (coffeescript/sass/scss) as equals}
|
14
15
|
s.email = %q{me@tal.by}
|
16
|
+
s.executables = ["assette"]
|
15
17
|
s.extra_rdoc_files = [
|
16
18
|
"LICENSE.txt",
|
17
19
|
"README.rdoc"
|
@@ -26,12 +28,13 @@ Gem::Specification.new do |s|
|
|
26
28
|
"Rakefile",
|
27
29
|
"VERSION",
|
28
30
|
"assette.gemspec",
|
29
|
-
"
|
30
|
-
"examples/config.
|
31
|
-
"examples/
|
32
|
-
"examples/
|
31
|
+
"bin/assette",
|
32
|
+
"examples/config/assets.rb",
|
33
|
+
"examples/myapp/templates/foo/_partial.html.mustache",
|
34
|
+
"examples/myapp/templates/foo/index.html.mustache",
|
33
35
|
"examples/public/images/test.pdf",
|
34
36
|
"examples/public/javascripts/foo.js",
|
37
|
+
"examples/public/javascripts/handlebars.js",
|
35
38
|
"examples/public/javascripts/one.js",
|
36
39
|
"examples/public/javascripts/test.coffee",
|
37
40
|
"examples/public/javascripts/three.js",
|
@@ -41,9 +44,13 @@ Gem::Specification.new do |s|
|
|
41
44
|
"examples/public/stylesheets/two.css",
|
42
45
|
"examples/public/stylesheets/two2.scss",
|
43
46
|
"lib/assette.rb",
|
47
|
+
"lib/assette/cli.rb",
|
44
48
|
"lib/assette/compiled_file.rb",
|
45
49
|
"lib/assette/config.rb",
|
46
50
|
"lib/assette/file.rb",
|
51
|
+
"lib/assette/post_processor.rb",
|
52
|
+
"lib/assette/post_processors.rb",
|
53
|
+
"lib/assette/post_processors/cache_buster.rb",
|
47
54
|
"lib/assette/reader.rb",
|
48
55
|
"lib/assette/readers.rb",
|
49
56
|
"lib/assette/readers/coffee.rb",
|
@@ -51,25 +58,32 @@ Gem::Specification.new do |s|
|
|
51
58
|
"lib/assette/readers/js.rb",
|
52
59
|
"lib/assette/readers/sass.rb",
|
53
60
|
"lib/assette/readers/scss.rb",
|
61
|
+
"lib/assette/run.ru",
|
54
62
|
"lib/assette/server.rb",
|
55
63
|
"lib/assette/template.rb",
|
56
64
|
"lib/assette/template_set.rb",
|
57
65
|
"spec/assette_spec.rb",
|
66
|
+
"spec/config_spec.rb",
|
58
67
|
"spec/file_spec.rb",
|
68
|
+
"spec/post_processor_spec.rb",
|
59
69
|
"spec/reader_spec.rb",
|
70
|
+
"spec/server_spec.rb",
|
60
71
|
"spec/spec_helper.rb",
|
61
72
|
"spec/template_spec.rb"
|
62
73
|
]
|
63
74
|
s.homepage = %q{http://github.com/Talby/assette}
|
64
75
|
s.licenses = ["MIT"]
|
65
76
|
s.require_paths = ["lib"]
|
66
|
-
s.rubygems_version = %q{1.5.
|
67
|
-
s.summary = %q{
|
77
|
+
s.rubygems_version = %q{1.5.2}
|
78
|
+
s.summary = %q{Treat all assets as equal}
|
68
79
|
s.test_files = [
|
69
|
-
"examples/
|
80
|
+
"examples/config/assets.rb",
|
70
81
|
"spec/assette_spec.rb",
|
82
|
+
"spec/config_spec.rb",
|
71
83
|
"spec/file_spec.rb",
|
84
|
+
"spec/post_processor_spec.rb",
|
72
85
|
"spec/reader_spec.rb",
|
86
|
+
"spec/server_spec.rb",
|
73
87
|
"spec/spec_helper.rb",
|
74
88
|
"spec/template_spec.rb"
|
75
89
|
]
|
@@ -78,35 +92,62 @@ Gem::Specification.new do |s|
|
|
78
92
|
s.specification_version = 3
|
79
93
|
|
80
94
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
81
|
-
s.add_runtime_dependency(%q<
|
82
|
-
s.add_runtime_dependency(%q<
|
95
|
+
s.add_runtime_dependency(%q<rack>, ["~> 1"])
|
96
|
+
s.add_runtime_dependency(%q<thor>, ["~> 0"])
|
97
|
+
s.add_runtime_dependency(%q<json>, [">= 1.4"])
|
98
|
+
s.add_runtime_dependency(%q<haml>, ["~> 3"])
|
83
99
|
s.add_runtime_dependency(%q<mime-types>, [">= 1.16"])
|
100
|
+
s.add_runtime_dependency(%q<git>, [">= 0"])
|
101
|
+
s.add_runtime_dependency(%q<coffee-script>, ["~> 2"])
|
84
102
|
s.add_development_dependency(%q<rspec>, ["~> 2.4.0"])
|
85
103
|
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
86
104
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
87
105
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
88
106
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
107
|
+
s.add_runtime_dependency(%q<rack>, ["~> 1"])
|
108
|
+
s.add_runtime_dependency(%q<thor>, ["~> 0"])
|
109
|
+
s.add_runtime_dependency(%q<json>, [">= 1.4"])
|
110
|
+
s.add_runtime_dependency(%q<haml>, ["~> 3"])
|
111
|
+
s.add_runtime_dependency(%q<coffee-script>, ["~> 2"])
|
89
112
|
s.add_runtime_dependency(%q<mime-types>, [">= 1.16"])
|
90
113
|
else
|
91
|
-
s.add_dependency(%q<
|
92
|
-
s.add_dependency(%q<
|
114
|
+
s.add_dependency(%q<rack>, ["~> 1"])
|
115
|
+
s.add_dependency(%q<thor>, ["~> 0"])
|
116
|
+
s.add_dependency(%q<json>, [">= 1.4"])
|
117
|
+
s.add_dependency(%q<haml>, ["~> 3"])
|
93
118
|
s.add_dependency(%q<mime-types>, [">= 1.16"])
|
119
|
+
s.add_dependency(%q<git>, [">= 0"])
|
120
|
+
s.add_dependency(%q<coffee-script>, ["~> 2"])
|
94
121
|
s.add_dependency(%q<rspec>, ["~> 2.4.0"])
|
95
122
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
96
123
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
97
124
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
98
125
|
s.add_dependency(%q<rcov>, [">= 0"])
|
126
|
+
s.add_dependency(%q<rack>, ["~> 1"])
|
127
|
+
s.add_dependency(%q<thor>, ["~> 0"])
|
128
|
+
s.add_dependency(%q<json>, [">= 1.4"])
|
129
|
+
s.add_dependency(%q<haml>, ["~> 3"])
|
130
|
+
s.add_dependency(%q<coffee-script>, ["~> 2"])
|
99
131
|
s.add_dependency(%q<mime-types>, [">= 1.16"])
|
100
132
|
end
|
101
133
|
else
|
102
|
-
s.add_dependency(%q<
|
103
|
-
s.add_dependency(%q<
|
134
|
+
s.add_dependency(%q<rack>, ["~> 1"])
|
135
|
+
s.add_dependency(%q<thor>, ["~> 0"])
|
136
|
+
s.add_dependency(%q<json>, [">= 1.4"])
|
137
|
+
s.add_dependency(%q<haml>, ["~> 3"])
|
104
138
|
s.add_dependency(%q<mime-types>, [">= 1.16"])
|
139
|
+
s.add_dependency(%q<git>, [">= 0"])
|
140
|
+
s.add_dependency(%q<coffee-script>, ["~> 2"])
|
105
141
|
s.add_dependency(%q<rspec>, ["~> 2.4.0"])
|
106
142
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
107
143
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
108
144
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
109
145
|
s.add_dependency(%q<rcov>, [">= 0"])
|
146
|
+
s.add_dependency(%q<rack>, ["~> 1"])
|
147
|
+
s.add_dependency(%q<thor>, ["~> 0"])
|
148
|
+
s.add_dependency(%q<json>, [">= 1.4"])
|
149
|
+
s.add_dependency(%q<haml>, ["~> 3"])
|
150
|
+
s.add_dependency(%q<coffee-script>, ["~> 2"])
|
110
151
|
s.add_dependency(%q<mime-types>, [">= 1.16"])
|
111
152
|
end
|
112
153
|
end
|
data/bin/assette
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
file_path 'public'
|
2
|
+
file_path 'foo'
|
3
|
+
|
4
|
+
asset_host 'http://cdn.gilt.com'
|
5
|
+
asset_hosts 'http://cdn1.gilt.com', 'http://cdn2.gilt.com'
|
6
|
+
|
7
|
+
asset_dir 'myassets'
|
8
|
+
templates_path 'myapp/templates'
|
9
|
+
|
10
|
+
template_preloader 'javascripts/handlebars.js'
|
11
|
+
template_partial 'Handlebars.registerPartial({*path*},{*template*});'
|
12
|
+
|
13
|
+
template_format 'GC.foo.t[{*path*}] = Handlebars.compile({*template*});'
|
14
|
+
|
15
|
+
|
16
|
+
after_compile do
|
17
|
+
a = 1
|
18
|
+
a + 2
|
19
|
+
end
|
File without changes
|
data/lib/assette/cli.rb
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'rack'
|
3
|
+
require 'rack/showexceptions'
|
4
|
+
require 'assette/server'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'git'
|
9
|
+
rescue LoadError
|
10
|
+
end
|
11
|
+
|
12
|
+
# Remove the chdir, not sure why he put that there.
|
13
|
+
# Bad hack, gotta figure out another way to fix this
|
14
|
+
class Rack::Server
|
15
|
+
def daemonize_app
|
16
|
+
if RUBY_VERSION < "1.9"
|
17
|
+
exit if fork
|
18
|
+
Process.setsid
|
19
|
+
exit if fork
|
20
|
+
# Dir.chdir "/"
|
21
|
+
STDIN.reopen "/dev/null"
|
22
|
+
STDOUT.reopen "/dev/null", "a"
|
23
|
+
STDERR.reopen "/dev/null", "a"
|
24
|
+
else
|
25
|
+
Process.daemon
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
module Assette
|
31
|
+
|
32
|
+
class CLI < Thor
|
33
|
+
ASSET_PREFIX_MATCHER = /^([a-f0-9]{9}|\d{6}_\d{6})\//
|
34
|
+
|
35
|
+
|
36
|
+
include Thor::Actions
|
37
|
+
DEFAULT_PID_FILE = '.assette_pid'
|
38
|
+
class_option :'config-file', :desc => 'config file to use', :type => :string
|
39
|
+
|
40
|
+
map "-v" => :version
|
41
|
+
|
42
|
+
desc 'version', 'displays current gem version'
|
43
|
+
def version
|
44
|
+
say Assette::VERSION
|
45
|
+
end
|
46
|
+
|
47
|
+
desc 'server', 'Launches the assette server (should only be used for dev or behind a cdn)'
|
48
|
+
method_option :port, :aliases => '-p', :type => :numeric
|
49
|
+
method_option :'dont-daemonize', :aliases => '-D', :type => :boolean
|
50
|
+
method_option :pid, :type => :string, :default => DEFAULT_PID_FILE, :description => 'file to store pid in'
|
51
|
+
def server(cmd = nil)
|
52
|
+
if cmd.nil? || cmd == 'start'
|
53
|
+
|
54
|
+
opts = {}
|
55
|
+
opts[:Port] = options[:port] || 4747
|
56
|
+
opts[:config] = File.join(File.dirname(__FILE__),'run.ru')
|
57
|
+
|
58
|
+
unless options['dont-daemonize']
|
59
|
+
|
60
|
+
if File.exist?(pid_file)
|
61
|
+
pid = File.open(pid_file).read.chomp.to_i
|
62
|
+
say "Server already running with PID #{pid}, killing before restart"
|
63
|
+
Process.kill("INT",pid)
|
64
|
+
end
|
65
|
+
|
66
|
+
opts[:daemonize] = true
|
67
|
+
opts[:pid] = pid_file
|
68
|
+
end
|
69
|
+
|
70
|
+
say "Starting Assette server on port #{opts[:Port]}"
|
71
|
+
ret = Rack::Server.start(opts)
|
72
|
+
elsif cmd == 'stop'
|
73
|
+
if File.exist?(pid_file)
|
74
|
+
pid = File.open(pid_file).read.chomp.to_i
|
75
|
+
say "Killing server with PID #{pid}"
|
76
|
+
Process.kill("INT",pid)
|
77
|
+
else
|
78
|
+
say "No pid file found at #{pid_file}"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
desc "compile", "Compile all the assettes in a folder for static serving"
|
84
|
+
def compile
|
85
|
+
files = []
|
86
|
+
all_files = []
|
87
|
+
Assette.config.compiling = true
|
88
|
+
|
89
|
+
unless File.exist?('assets')
|
90
|
+
Dir.mkdir('assets')
|
91
|
+
end
|
92
|
+
|
93
|
+
sha = Git.open('.').log.first.sha[0...8] rescue Time.now.strftime("%y%m%d_%H%M%S")
|
94
|
+
Assette.config.sha = sha
|
95
|
+
|
96
|
+
Assette.config.file_paths.each do |path|
|
97
|
+
all_files |= Dir[File.join(path,'**',"*")]
|
98
|
+
Assette::Reader::ALL.keys.each do |extension|
|
99
|
+
files |= Dir[File.join(path,'**',"*.#{extension}")]
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
not_compiled = all_files - files
|
104
|
+
|
105
|
+
files.delete_if {|f| f =~ /\/_/} # remove any mixins to speed up process
|
106
|
+
|
107
|
+
files = files.collect {|f| Assette::File.open(f)}
|
108
|
+
|
109
|
+
File.open("assets/version","w") {|f| f.write(sha)}
|
110
|
+
|
111
|
+
container = if Assette.config.cache_method.to_s == 'path'
|
112
|
+
File.join(Assette.config.build_target,sha)
|
113
|
+
else
|
114
|
+
Assette.config.build_target
|
115
|
+
end
|
116
|
+
|
117
|
+
made_dirs = []
|
118
|
+
|
119
|
+
say "Compiling all asset files to #{container}"
|
120
|
+
|
121
|
+
files.each do |file|
|
122
|
+
target_path = file.target_path
|
123
|
+
|
124
|
+
Assette.config.file_paths.each do |p|
|
125
|
+
target_path.gsub!(p,'')
|
126
|
+
end
|
127
|
+
|
128
|
+
new_path = File.join(container,target_path)
|
129
|
+
|
130
|
+
create_file(new_path, file.all_code)
|
131
|
+
end
|
132
|
+
|
133
|
+
say "\nCopying all non-compiled assets to #{container}"
|
134
|
+
not_compiled.each do |file|
|
135
|
+
target_path = file.dup
|
136
|
+
Assette.config.file_paths.each do |p|
|
137
|
+
target_path.gsub!(p,'')
|
138
|
+
end
|
139
|
+
|
140
|
+
new_path = File.join(container,target_path)
|
141
|
+
|
142
|
+
copy_file(new_path, file)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def initialize(*)
|
147
|
+
super
|
148
|
+
get_services
|
149
|
+
end
|
150
|
+
|
151
|
+
private
|
152
|
+
def set_color *args
|
153
|
+
@shell.set_color(*args)
|
154
|
+
end
|
155
|
+
|
156
|
+
def get_services
|
157
|
+
Assette.config(options['config-file'])
|
158
|
+
end
|
159
|
+
|
160
|
+
def pid_file
|
161
|
+
@pid ||= begin
|
162
|
+
pid = options.pid
|
163
|
+
unless pid =~ /^\//
|
164
|
+
pid = File.expand_path(File.join(Dir.pwd,pid))
|
165
|
+
end
|
166
|
+
|
167
|
+
pid
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module Assette
|
2
2
|
class CompiledFile < Array
|
3
|
+
|
3
4
|
attr_reader :file
|
4
5
|
|
5
6
|
def initialize(file)
|
@@ -10,10 +11,24 @@ module Assette
|
|
10
11
|
c = []
|
11
12
|
c << "\n"
|
12
13
|
c << file.comment_str % "Start: #{d.path}"
|
13
|
-
c << d
|
14
|
+
c << code_for_dependency(d)
|
14
15
|
c << file.comment_str % "End: #{d.path}"
|
16
|
+
|
15
17
|
self << c.join("\n")
|
16
18
|
end
|
19
|
+
|
20
|
+
def post_process str
|
21
|
+
PostProcessor::POST_PROCESSORS[target_class.outputs].each do |processor|
|
22
|
+
p = processor.new(str)
|
23
|
+
str.replace(p.process)
|
24
|
+
end
|
25
|
+
|
26
|
+
str
|
27
|
+
end
|
28
|
+
|
29
|
+
def code_for_dependency d
|
30
|
+
post_process(d.code)
|
31
|
+
end
|
17
32
|
|
18
33
|
def content_type
|
19
34
|
return mime_type.content_type if mime_type
|
@@ -29,7 +44,11 @@ module Assette
|
|
29
44
|
end
|
30
45
|
|
31
46
|
def mime_type
|
32
|
-
|
47
|
+
target_class.mime_type
|
48
|
+
end
|
49
|
+
|
50
|
+
def target_class
|
51
|
+
file.target_class
|
33
52
|
end
|
34
53
|
|
35
54
|
end
|