capistrano-local-precompile 0.0.2 → 0.0.3

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bb00e3f26e972e7a92b1748a756d8fa961ceee88
4
+ data.tar.gz: 68ef492a99d2ec000658da3f5a288a200c5a0a5a
5
+ SHA512:
6
+ metadata.gz: 888b8745174aeceea149dc1378b2210f1985fb627e90f626e36bb2dfb5276cef6f8ed2fa03ac9c273e279427b96151828df4cd4b645930ecd330b228da10eee8
7
+ data.tar.gz: f6ed52b5d61f3835d0fc1468dd13d1b9a448e190302d60c515f880b7ffeec4cf26ec5a0f3f7496c802c67a16253b0fab6dd2b12d9bcfd5a8b5fe7ac673d78c44
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  If your Rails apps are anything like mine, one of the slowest parts of your deployment is waiting for asset pipeline precompilation. It's sometimes so slow, it's painful. So I went searching for some solutions. [turbo-sprockets](https://github.com/ndbroadbent/turbo-sprockets-rails3) helped, but it's not a silver bullet. This gem isn't a silver bullet either, but it can help. Capistrano Local Precompile takes a different approach. It builds your assets locally and rsync's them to your web server(s).
4
4
 
5
+ *Note: This gem is not yet compatible with Capistrano 3.*
6
+
5
7
  ## Usage
6
8
 
7
9
  Add capistrano-local-precompile to your Gemfile:
@@ -13,11 +13,15 @@ Gem::Specification.new do |gem|
13
13
  gem.description = 'Local asset-pipeline precompilation for Capstrano'
14
14
  gem.summary = gem.description
15
15
 
16
- gem.add_dependency 'capistrano'
16
+ gem.license = 'MIT'
17
17
 
18
- gem.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
19
- gem.files = `git ls-files`.split("\n")
20
- gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ gem.add_dependency 'capistrano', '~> 2'
19
+
20
+ gem.files = %w(.yardopts LICENSE.md README.md Rakefile capistrano-local-precompile.gemspec)
21
+ gem.files += Dir.glob("lib/**/*.rb")
22
+ gem.files += Dir.glob("spec/**/*")
23
+
24
+ gem.test_files = Dir.glob("spec/**/*")
21
25
 
22
26
  gem.require_paths = ['lib']
23
27
  end
@@ -1,3 +1,3 @@
1
1
  module CapistranoLocalPrecompile
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -6,8 +6,8 @@ module Capistrano
6
6
  def self.load_into(configuration)
7
7
  configuration.load do
8
8
 
9
- set(:precompile_cmd) { "#{fetch(:bundle_cmd, "bundle")} exec rake assets:precompile" }
10
- set(:cleanexpired_cmd) { "#{fetch(:bundle_cmd, "bundle")} exec rake assets:clean_expired" }
9
+ set(:precompile_cmd) { "RAILS_ENV=#{rails_env.to_s.shellescape} #{asset_env} #{rake} assets:precompile" }
10
+ set(:cleanexpired_cmd) { "RAILS_ENV=#{rails_env.to_s.shellescape} #{asset_env} #{rake} assets:clean_expired" }
11
11
  set(:assets_dir) { "public/assets" }
12
12
 
13
13
  set(:turbosprockets_enabled) { false }
@@ -39,12 +39,16 @@ module Capistrano
39
39
 
40
40
  desc "Precompile assets locally and then rsync to app servers"
41
41
  task :precompile, :only => { :primary => true }, :on_no_matching_servers => :continue do
42
+
43
+ local_manifest_path = run_locally "ls #{assets_dir}/manifest*"
44
+ local_manifest_path.strip!
45
+
42
46
  servers = find_servers :roles => assets_role, :except => { :no_release => true }
43
47
  servers.each do |srvr|
44
48
  run_locally "#{fetch(:rsync_cmd)} ./#{fetch(:assets_dir)}/ #{user}@#{srvr}:#{release_path}/#{fetch(:assets_dir)}/"
49
+ run_locally "#{fetch(:rsync_cmd)} ./#{local_manifest_path} #{user}@#{srvr}:#{release_path}/assets_manifest#{File.extname(local_manifest_path)}"
45
50
  end
46
51
  end
47
-
48
52
  end
49
53
  end
50
54
  end
@@ -3,16 +3,21 @@ require 'spec_helper'
3
3
  describe Capistrano::LocalPrecompile, "configuration" do
4
4
  before do
5
5
  @configuration = Capistrano::Configuration.new
6
+ @configuration.load do
7
+ def rails_env; 'production'; end
8
+ def rake; 'rake'; end
9
+ def asset_env; "RAILS_GROUPS=assets"; end
10
+ end
6
11
  Capistrano::LocalPrecompile.load_into(@configuration)
7
12
  end
8
13
 
9
14
  it "defines precompile_cmd" do
10
- cmd = 'bundle exec rake assets:precompile'
15
+ cmd = 'RAILS_ENV=production RAILS_GROUPS=assets rake assets:precompile'
11
16
  expect(@configuration.fetch(:precompile_cmd)).to eq(cmd)
12
17
  end
13
18
 
14
19
  it "defines cleanexpired_cmd" do
15
- cmd = 'bundle exec rake assets:clean_expired'
20
+ cmd = 'RAILS_ENV=production RAILS_GROUPS=assets rake assets:clean_expired'
16
21
  expect(@configuration.fetch(:cleanexpired_cmd)).to eq(cmd)
17
22
  end
18
23
 
@@ -3,6 +3,11 @@ require 'spec_helper'
3
3
  describe Capistrano::LocalPrecompile, "integration" do
4
4
  before do
5
5
  @configuration = Capistrano::Configuration.new
6
+ @configuration.load do
7
+ def rails_env; 'production'; end
8
+ def rake; 'rake'; end
9
+ def asset_env; "RAILS_GROUPS=assets"; end
10
+ end
6
11
  Capistrano::LocalPrecompile.load_into(@configuration)
7
12
  end
8
13
 
@@ -18,7 +23,7 @@ describe Capistrano::LocalPrecompile, "integration" do
18
23
  describe 'prepare task' do
19
24
  it 'invokes the precompile command' do
20
25
  expect(@configuration).to receive(:run_locally).
21
- with('bundle exec rake assets:precompile').once
26
+ with('RAILS_ENV=production RAILS_GROUPS=assets rake assets:precompile').once
22
27
 
23
28
  @configuration.find_and_execute_task('deploy:assets:prepare')
24
29
  end
@@ -29,7 +34,9 @@ describe Capistrano::LocalPrecompile, "integration" do
29
34
 
30
35
  before do
31
36
  allow(@configuration).to receive(:run_locally).
32
- with('bundle exec rake assets:precompile').once
37
+ with("ls public/assets/manifest*").and_return("public/assets/manifest.yml").once
38
+ allow(@configuration).to receive(:run_locally).
39
+ with('RAILS_ENV=production RAILS_GROUPS=assets rake assets:precompile').once
33
40
  allow(@configuration).to receive(:run_locally).
34
41
  with('rm -rf public/assets').once
35
42
 
@@ -41,7 +48,7 @@ describe Capistrano::LocalPrecompile, "integration" do
41
48
  end
42
49
 
43
50
  it 'rsyncs the local asset files to the server' do
44
- expect(@configuration).to receive(:run_locally).with(/rsync -av/).twice
51
+ expect(@configuration).to receive(:run_locally).with(/rsync -av/).exactly(4).times
45
52
 
46
53
  @configuration.find_and_execute_task('deploy:assets:precompile')
47
54
  end
@@ -68,9 +75,9 @@ describe Capistrano::LocalPrecompile, "integration" do
68
75
  expect(@configuration).to receive(:run_locally).
69
76
  with('mv public/.assets public/assets').once
70
77
  expect(@configuration).to receive(:run_locally).
71
- with('bundle exec rake assets:clean_expired').once
78
+ with('RAILS_ENV=production RAILS_GROUPS=assets rake assets:clean_expired').once
72
79
  expect(@configuration).to receive(:run_locally).
73
- with('bundle exec rake assets:precompile').once
80
+ with('RAILS_ENV=production RAILS_GROUPS=assets rake assets:precompile').once
74
81
 
75
82
  @configuration.find_and_execute_task('deploy:assets:prepare')
76
83
  end
metadata CHANGED
@@ -1,84 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-local-precompile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Steve Agalloco
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-04 00:00:00.000000000 Z
11
+ date: 2014-03-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: capistrano
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: '2'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: '2'
30
27
  description: Local asset-pipeline precompilation for Capstrano
31
28
  email: steve.agalloco@gmail.com
32
29
  executables: []
33
30
  extensions: []
34
31
  extra_rdoc_files: []
35
32
  files:
36
- - .gemtest
37
- - .gitignore
38
- - .rspec
39
- - .travis.yml
40
33
  - .yardopts
41
- - Gemfile
42
- - Guardfile
43
34
  - LICENSE.md
44
35
  - README.md
45
36
  - Rakefile
46
37
  - capistrano-local-precompile.gemspec
47
- - lib/capistrano-local-precompile.rb
48
- - lib/capistrano-local-precompile/version.rb
49
38
  - lib/capistrano/local_precompile.rb
39
+ - lib/capistrano-local-precompile/version.rb
40
+ - lib/capistrano-local-precompile.rb
50
41
  - spec/configuration_spec.rb
51
42
  - spec/integration_spec.rb
52
43
  - spec/spec_helper.rb
53
44
  homepage: https://github.com/spagalloco/capistrano-local-precompile
54
- licenses: []
45
+ licenses:
46
+ - MIT
47
+ metadata: {}
55
48
  post_install_message:
56
49
  rdoc_options: []
57
50
  require_paths:
58
51
  - lib
59
52
  required_ruby_version: !ruby/object:Gem::Requirement
60
- none: false
61
53
  requirements:
62
- - - ! '>='
54
+ - - '>='
63
55
  - !ruby/object:Gem::Version
64
56
  version: '0'
65
- segments:
66
- - 0
67
- hash: -4036955457369989334
68
57
  required_rubygems_version: !ruby/object:Gem::Requirement
69
- none: false
70
58
  requirements:
71
- - - ! '>='
59
+ - - '>='
72
60
  - !ruby/object:Gem::Version
73
61
  version: '0'
74
- segments:
75
- - 0
76
- hash: -4036955457369989334
77
62
  requirements: []
78
63
  rubyforge_project:
79
- rubygems_version: 1.8.23
64
+ rubygems_version: 2.0.14
80
65
  signing_key:
81
- specification_version: 3
66
+ specification_version: 4
82
67
  summary: Local asset-pipeline precompilation for Capstrano
83
68
  test_files:
84
69
  - spec/configuration_spec.rb
data/.gemtest DELETED
File without changes
data/.gitignore DELETED
@@ -1,40 +0,0 @@
1
- *.gem
2
- *.rbc
3
- *.sw[a-p]
4
- *.tmproj
5
- *.tmproject
6
- *.un~
7
- *~
8
- .DS_Store
9
- .Spotlight-V100
10
- .Trashes
11
- ._*
12
- .bundle
13
- .config
14
- .directory
15
- .elc
16
- .emacs.desktop
17
- .emacs.desktop.lock
18
- .redcar
19
- .yardoc
20
- Desktop.ini
21
- Gemfile.lock
22
- Icon?
23
- InstalledFiles
24
- Session.vim
25
- Thumbs.db
26
- \#*\#
27
- _yardoc
28
- auto-save-list
29
- coverage
30
- doc
31
- lib/bundler/man
32
- pkg
33
- pkg/*
34
- rdoc
35
- spec/reports
36
- test/tmp
37
- test/version_tmp
38
- tmp
39
- tmtags
40
- tramp
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --color
2
- --format=nested
3
- --backtrace
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- bundler_args: --without development
2
- language: ruby
3
- rvm:
4
- - jruby-19mode
5
- - rbx-19mode
6
- - 1.9.2
7
- - 1.9.3
8
- - 2.0.0
data/Gemfile DELETED
@@ -1,17 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rake'
4
- gem 'yard'
5
-
6
- group :development do
7
- gem 'kramdown'
8
- gem 'guard-rspec'
9
- end
10
-
11
- group :test do
12
- gem 'rspec'
13
- gem 'capistrano-spec'
14
- gem 'simplecov', :require => false
15
- end
16
-
17
- gemspec
data/Guardfile DELETED
@@ -1,6 +0,0 @@
1
- guard 'rspec', :version => 2 do
2
- watch(%r{^spec/.+_spec\.rb$})
3
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
- watch('spec/spec_helper.rb') { "spec" }
5
- end
6
-