assette 0.0.0 → 0.0.1
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/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
|