jammit 0.4.1 → 0.4.2
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/jammit.gemspec +2 -2
- data/lib/jammit.rb +13 -5
- data/lib/jammit/packager.rb +12 -6
- metadata +2 -2
data/jammit.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'jammit'
|
3
|
-
s.version = '0.4.
|
4
|
-
s.date = '2009-1-
|
3
|
+
s.version = '0.4.2' # Keep version in sync with jammit.rb
|
4
|
+
s.date = '2009-1-27'
|
5
5
|
|
6
6
|
s.homepage = "http://documentcloud.github.com/jammit/"
|
7
7
|
s.summary = "Industrial Strength Asset Packaging for Rails"
|
data/lib/jammit.rb
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path(File.dirname(__FILE__))
|
|
4
4
|
# to all of the configuration options.
|
5
5
|
module Jammit
|
6
6
|
|
7
|
-
VERSION = "0.4.
|
7
|
+
VERSION = "0.4.2"
|
8
8
|
|
9
9
|
ROOT = File.expand_path(File.dirname(__FILE__) + '/..')
|
10
10
|
|
@@ -39,8 +39,9 @@ module Jammit
|
|
39
39
|
class OutputNotWritable < StandardError; end
|
40
40
|
|
41
41
|
class << self
|
42
|
-
attr_reader :configuration, :template_function, :template_namespace,
|
43
|
-
:
|
42
|
+
attr_reader :configuration, :template_function, :template_namespace,
|
43
|
+
:embed_assets, :package_assets, :compress_assets, :gzip_assets,
|
44
|
+
:package_path, :mhtml_enabled, :include_jst_script,
|
44
45
|
:javascript_compressor, :compressor_options, :css_compressor_options
|
45
46
|
end
|
46
47
|
|
@@ -58,6 +59,7 @@ module Jammit
|
|
58
59
|
@package_path = conf[:package_path] || DEFAULT_PACKAGE_PATH
|
59
60
|
@embed_assets = conf[:embed_assets] || conf[:embed_images]
|
60
61
|
@compress_assets = !(conf[:compress_assets] == false)
|
62
|
+
@gzip_assets = !(conf[:gzip_assets] == false)
|
61
63
|
@mhtml_enabled = @embed_assets && @embed_assets != "datauri"
|
62
64
|
@compressor_options = (conf[:compressor_options] || {}).symbolize_keys
|
63
65
|
@css_compressor_options = (conf[:css_compressor_options] || {}).symbolize_keys
|
@@ -136,8 +138,14 @@ module Jammit
|
|
136
138
|
# complain loudly.
|
137
139
|
def self.disable_compression
|
138
140
|
@compress_assets = false
|
139
|
-
|
140
|
-
|
141
|
+
warn("Asset compression disabled -- Java unavailable.")
|
142
|
+
end
|
143
|
+
|
144
|
+
def self.warn(message)
|
145
|
+
message = "Jammit Warning: #{message}"
|
146
|
+
@logger ||= (defined?(Rails) && Rails.logger ? Rails.logger :
|
147
|
+
defined?(RAILS_DEFAULT_LOGGER) ? RAILS_DEFAULT_LOGGER : nil)
|
148
|
+
@logger ? @logger.warn(message) : STDERR.puts(message)
|
141
149
|
end
|
142
150
|
|
143
151
|
end
|
data/lib/jammit/packager.rb
CHANGED
@@ -59,11 +59,14 @@ module Jammit
|
|
59
59
|
def cache(package, extension, contents, output_dir, suffix=nil, mtime=Time.now)
|
60
60
|
FileUtils.mkdir_p(output_dir) unless File.exists?(output_dir)
|
61
61
|
raise OutputNotWritable, "Jammit doesn't have permission to write to \"#{output_dir}\"" unless File.writable?(output_dir)
|
62
|
-
|
63
|
-
|
64
|
-
File.open(
|
65
|
-
|
66
|
-
|
62
|
+
files = []
|
63
|
+
files << file_name = File.join(output_dir, Jammit.filename(package, extension, suffix))
|
64
|
+
File.open(file_name, 'wb+') {|f| f.write(contents) }
|
65
|
+
if Jammit.gzip_assets
|
66
|
+
files << zip_name = "#{file_name}.gz"
|
67
|
+
Zlib::GzipWriter.open(zip_name, Zlib::BEST_COMPRESSION) {|f| f.write(contents) }
|
68
|
+
end
|
69
|
+
File.utime(mtime, mtime, *files)
|
67
70
|
end
|
68
71
|
|
69
72
|
# Get the list of individual assets for a package.
|
@@ -97,9 +100,12 @@ module Jammit
|
|
97
100
|
end
|
98
101
|
|
99
102
|
# Absolute globs are absolute -- relative globs are relative to ASSET_ROOT.
|
103
|
+
# Print a warning if no files were found that match the glob.
|
100
104
|
def glob_files(glob)
|
101
105
|
absolute = Pathname.new(glob).absolute?
|
102
|
-
Dir[absolute ? glob : File.join(ASSET_ROOT, glob)].sort
|
106
|
+
paths = Dir[absolute ? glob : File.join(ASSET_ROOT, glob)].sort
|
107
|
+
Jammit.warn("No assets match '#{glob}'") if paths.empty?
|
108
|
+
paths
|
103
109
|
end
|
104
110
|
|
105
111
|
# Return a list of all of the packages that should be cached. If "force" is
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jammit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Ashkenas
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-27 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|