capistrano-rails 0.0.4 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2dab9c74ee9e73d562975a08239802c3df5d7ba7
4
- data.tar.gz: 3d44b57e3f957402d731db8e9262ea4b42366258
3
+ metadata.gz: 0b73bab2e74f6f071803eeba93732b9ba81f1620
4
+ data.tar.gz: 2eec5040ac19c770e3d231e8c87760c0844c75d7
5
5
  SHA512:
6
- metadata.gz: a223b384e43dbd892327e99af54c645084bc8594c919c03682eb3ad60197a82f7bd6c05c427c48da20c52e892d0b6f1a7a755225ed815c3f3b4c6a0dfc0a21b1
7
- data.tar.gz: 02d602152b4a080658411337ebebcf8e691f688f7430bac44022b271ed550df6d34b94a56f29115ad16b8dc0ec83fcd6cf974fc597a0119ccd78200024f90194
6
+ metadata.gz: 9aecf9d52b77a174ccd107b1d12484e5f8639e2387b217878db826011bbf61eb27da1841a8817ab41f22c4ee264d5704f2277b37e5e66ba154e8f297bc00a203
7
+ data.tar.gz: 3340b64eb2e37a1231650b184621a13c5d9c59002d13a6a6ab5e57ef07d9134c9bb8fca0f9c7ec457d752548ec0bcc0af4a5453f43a221eb0e45f5b74fd3f3d5
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "capistrano-rails"
7
- gem.version = '0.0.4'
7
+ gem.version = '0.0.5'
8
8
  gem.authors = ["Tom Clements", "Lee Hambley"]
9
9
  gem.email = ["seenmyfate@gmail.com", "lee.hambley@gmail.com"]
10
10
  gem.description = %q{Rails specific Capistrano tasks}
@@ -1,3 +1,8 @@
1
+ module Capistrano
2
+ class FileNotFound < StandardError
3
+ end
4
+ end
5
+
1
6
  namespace :deploy do
2
7
  desc 'Normalise asset timestamps'
3
8
  task :normalise_assets do
@@ -9,5 +14,71 @@ namespace :deploy do
9
14
  end
10
15
  end
11
16
 
12
- after :finalize, 'deploy:normalise_assets'
17
+ desc 'Compile assets'
18
+ task :compile_assets do
19
+ invoke 'deploy:assets:precompile'
20
+ invoke 'deploy:assets:backup_manifest'
21
+ end
22
+
23
+ desc 'Cleanup expired assets'
24
+ task :cleanup_assets do
25
+ on roles :web do
26
+ within release_path do
27
+ execute :rake, "assets:clean RAILS_ENV=#{fetch(:stage)}"
28
+ end
29
+ end
30
+ end
31
+
32
+ desc 'Rollback assets'
33
+ task :rollback_assets do
34
+ begin
35
+ invoke 'deploy:assets:restore_manifest'
36
+ rescue Capistrano::FileNotFound
37
+ invoke 'deploy:compile_assets'
38
+ end
39
+ end
40
+
41
+ after 'deploy:updated', 'deploy:compile_assets'
42
+ after 'deploy:updated', 'deploy:cleanup_assets'
43
+ after 'deploy:updated', 'deploy:normalise_assets'
44
+ after 'deploy:reverted', 'deploy:rollback_assets'
45
+
46
+ namespace :assets do
47
+ task :precompile do
48
+ on roles :web do
49
+ within release_path do
50
+ execute :rake, "assets:precompile RAILS_ENV=#{fetch(:stage)}"
51
+ end
52
+ end
53
+ end
54
+
55
+ task :backup_manifest do
56
+ on roles :web do
57
+ within release_path do
58
+ execute :cp,
59
+ release_path.join('public', 'assets', 'manifest*.json'),
60
+ release_path.join('assets_manifest_backup.json')
61
+ end
62
+ end
63
+ end
64
+
65
+ task :restore_manifest do
66
+ on roles :web do
67
+ within release_path do
68
+ source = release_path.join('assets_manifest_backup.json')
69
+ target = capture(:ls, release_path.join('public', 'assets',
70
+ 'manifest*')).strip
71
+ if test "[[ -f #{source} && -f #{target} ]]"
72
+ execute :cp, source, target
73
+ else
74
+ msg = 'Rails assets manifest file (or backup file) not found.'
75
+ warn msg
76
+ fail Capistrano::FileNotFound, msg
77
+ end
78
+ end
79
+ end
80
+ end
81
+
82
+ end
83
+
13
84
  end
@@ -9,6 +9,6 @@ namespace :deploy do
9
9
  end
10
10
  end
11
11
 
12
- before 'deploy:finalize', 'deploy:migrate'
12
+ after 'deploy:updated', 'deploy:migrate'
13
13
  end
14
14
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Clements
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-04 00:00:00.000000000 Z
12
+ date: 2013-07-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano