fingerjam 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/fingerjam/base.rb +32 -15
- data/lib/fingerjam/capistrano/strategy.rb +15 -6
- data/lib/fingerjam/version.rb +2 -2
- metadata +20 -20
data/lib/fingerjam/base.rb
CHANGED
@@ -127,26 +127,43 @@ module Fingerjam
|
|
127
127
|
|
128
128
|
def symlink
|
129
129
|
cached_paths.each_pair do |relative_path, cached_path|
|
130
|
-
#
|
131
|
-
|
132
|
-
|
130
|
+
# Create relative symlink from RAILS_ROOT/public/cache/$MD5SUM.$EXT to original file
|
131
|
+
begin
|
132
|
+
# Strip leading / from relative path to determine absolute path
|
133
|
+
src_u_path = File.join(public_path, relative_path[1..relative_path.length])
|
134
|
+
dst_u_path = File.join(public_path, cached_path[1..cached_path.length])
|
133
135
|
|
134
|
-
|
135
|
-
|
136
|
-
dst_c_path = File.join(public_path, (cached_path[1..cached_path.length] + ".gz"))
|
136
|
+
# Create root directory
|
137
|
+
FileUtils.mkdir_p(File.dirname(dst_u_path))
|
137
138
|
|
138
|
-
|
139
|
-
|
139
|
+
old_path = ".." + relative_path
|
140
|
+
new_path = dst_u_path.to_s
|
140
141
|
|
141
|
-
|
142
|
-
|
143
|
-
File.
|
144
|
-
|
142
|
+
# puts "symlink #{old_path} to #{new_path}"
|
143
|
+
|
144
|
+
if !File.exists?(new_path) && File.exists?(src_u_path)
|
145
|
+
File.symlink(old_path, new_path)
|
146
|
+
end
|
147
|
+
rescue Errno::EEXIST => error
|
148
|
+
# puts error.message
|
145
149
|
end
|
146
150
|
|
151
|
+
# Create relative symlink from RAILS_ROOT/public/cache/$MD5SUM.$EXT.gz to original file
|
147
152
|
begin
|
148
|
-
|
149
|
-
|
153
|
+
# Gzip version of asset
|
154
|
+
src_c_path = File.join(public_path, (relative_path[1..relative_path.length] + ".gz"))
|
155
|
+
dst_c_path = File.join(public_path, (cached_path[1..cached_path.length] + ".gz"))
|
156
|
+
|
157
|
+
old_path = ".." + relative_path + ".gz"
|
158
|
+
new_path = dst_c_path.to_s
|
159
|
+
|
160
|
+
# puts "symlink #{old_path} to #{new_path}"
|
161
|
+
|
162
|
+
if !File.exists?(new_path) && File.exists?(src_c_path)
|
163
|
+
File.symlink(old_path, new_path)
|
164
|
+
end
|
165
|
+
rescue Errno::EEXIST => error
|
166
|
+
# puts error.message
|
150
167
|
end
|
151
168
|
|
152
169
|
cached_urls[relative_path] = generate_cached_url(relative_path)
|
@@ -154,7 +171,7 @@ module Fingerjam
|
|
154
171
|
end
|
155
172
|
|
156
173
|
def write_lockfile
|
157
|
-
puts "writing lockfile #{lock_yml_path}"
|
174
|
+
# puts "writing lockfile #{lock_yml_path}"
|
158
175
|
|
159
176
|
File.open(lock_yml_path, "w") do |lockfile|
|
160
177
|
lockfile.puts cached_urls.to_yaml
|
@@ -22,6 +22,8 @@ module Capistrano
|
|
22
22
|
raise Capistrano::Error, "shell command failed with return code #{$?}"
|
23
23
|
end
|
24
24
|
|
25
|
+
setup_fingerjam
|
26
|
+
|
25
27
|
logger.debug "copying cache to deployment staging area #{destination}"
|
26
28
|
Dir.chdir(copy_cache) do
|
27
29
|
FileUtils.mkdir_p(destination)
|
@@ -34,7 +36,12 @@ module Capistrano
|
|
34
36
|
next if copy_exclude.any? { |pattern| File.fnmatch(pattern, item) }
|
35
37
|
|
36
38
|
if File.symlink?(item)
|
37
|
-
|
39
|
+
old_name = File.readlink(File.join(copy_cache, item))
|
40
|
+
new_name = File.join(destination, item)
|
41
|
+
|
42
|
+
if File.exists?(old_name)
|
43
|
+
FileUtils.ln_s(old_name, new_name)
|
44
|
+
end
|
38
45
|
elsif File.directory?(item)
|
39
46
|
queue += Dir.glob("#{item}/*", File::FNM_DOTMATCH)
|
40
47
|
FileUtils.mkdir(File.join(destination, item))
|
@@ -46,7 +53,7 @@ module Capistrano
|
|
46
53
|
|
47
54
|
File.open(File.join(destination, "REVISION"), "w") { |f| f.puts(revision) }
|
48
55
|
|
49
|
-
|
56
|
+
process_fingerjam
|
50
57
|
|
51
58
|
logger.trace "compressing #{destination} to #{filename}"
|
52
59
|
Dir.chdir(copy_dir) { system(compress(File.basename(destination), File.basename(filename)).join(" ")) }
|
@@ -58,14 +65,16 @@ module Capistrano
|
|
58
65
|
FileUtils.rm_rf destination rescue nil
|
59
66
|
end
|
60
67
|
|
61
|
-
def
|
62
|
-
logger.trace "packaging assets with fingerjam for #{cache_host} to #{destination}"
|
63
|
-
|
68
|
+
def setup_fingerjam
|
64
69
|
::Fingerjam::Base.configure(
|
65
70
|
:host => cache_host,
|
66
71
|
:protocol => cache_protocol,
|
67
72
|
:root_path => destination
|
68
73
|
)
|
74
|
+
end
|
75
|
+
|
76
|
+
def process_fingerjam
|
77
|
+
logger.trace "packaging assets with fingerjam for #{cache_host} to #{destination}"
|
69
78
|
|
70
79
|
::Fingerjam::Base.package_and_lock!
|
71
80
|
end
|
@@ -73,4 +82,4 @@ module Capistrano
|
|
73
82
|
end
|
74
83
|
end
|
75
84
|
end
|
76
|
-
end
|
85
|
+
end
|
data/lib/fingerjam/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Fingerjam
|
2
|
-
VERSION = "0.8.
|
3
|
-
end
|
2
|
+
VERSION = "0.8.2"
|
3
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fingerjam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70363221433020 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70363221433020
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: capistrano
|
27
|
-
requirement: &
|
27
|
+
requirement: &70363221432500 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.6'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70363221432500
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jammit
|
38
|
-
requirement: &
|
38
|
+
requirement: &70363221432000 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0.6'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70363221432000
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activesupport
|
49
|
-
requirement: &
|
49
|
+
requirement: &70363221431420 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '3.0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70363221431420
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: actionpack
|
60
|
-
requirement: &
|
60
|
+
requirement: &70363221430880 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '3.0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70363221430880
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yui-compressor
|
71
|
-
requirement: &
|
71
|
+
requirement: &70363221430160 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0.9'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70363221430160
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rspec
|
82
|
-
requirement: &
|
82
|
+
requirement: &70363221429240 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '2.5'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70363221429240
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: bundler
|
93
|
-
requirement: &
|
93
|
+
requirement: &70363221428780 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '1.0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70363221428780
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: rcov
|
104
|
-
requirement: &
|
104
|
+
requirement: &70363221428260 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70363221428260
|
113
113
|
description: Fingerjam uploads your Jammit-compressed assets with fingerprinted filenames
|
114
114
|
so they can be cached indefinitely
|
115
115
|
email:
|