underglow 0.0.6 → 0.0.7

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/README.md CHANGED
@@ -1,12 +1,22 @@
1
1
  Underglow
2
2
  =========
3
- Provides some luxury methods and extensions. I personally use this on all my projects to make my life easier.
3
+ Provides some luxury methods and extensions. I personally use this on all my projects to make my life easier. This isn't my car, but it's what I'm hoping to achieve with this gem.
4
+
5
+ ![Sicc](http://i.imgur.com/RwBtG.jpg)
4
6
 
5
7
  Installation
6
8
  ============
7
-
9
+
8
10
  gem install underglow
9
11
 
12
+ Usage
13
+ =====
14
+ Some capistrano tasks are provided. To use them, require them within your `deploy.rb` file.
15
+
16
+ ```ruby
17
+ require 'underglow/capistrano'
18
+ ```
19
+
10
20
  Testing
11
21
  =======
12
22
 
@@ -0,0 +1,33 @@
1
+ Capistrano::Configuration.instance.load do
2
+ # this task gets called last by capistrano when required to restart stuff
3
+ namespace :deploy do
4
+ # Custom web enable/disable tasks by simply added active suffix to maintenance page
5
+ namespace :web do
6
+ desc "Present a maintenance page to visitors."
7
+ task :disable do
8
+ require 'haml'
9
+ on_rollback { run "rm #{shared_path}/system/maintenance.html" }
10
+
11
+ reason = ENV['REASON']
12
+ deadline = ENV['UNTIL']
13
+ template = File.read('app/views/layouts/maintenance.html.haml')
14
+ html = Haml::Engine.new(template).render(binding)
15
+
16
+ put html, "#{shared_path}/system/maintenance.html", mode: 0644
17
+ end
18
+ end
19
+
20
+ namespace :assets do
21
+ desc "Precompile assets only if they haven't changed"
22
+ task :precompile, roles: :web, except: { no_release: true } do
23
+ # if there's no current revision, then this is the first deploy, then we must precompile regardless
24
+ # otherwise, only precompile if assets have changed
25
+ if !remote_file_exists?("#{current_path}/REVISION") or capture("cd #{release_path} && #{source.local.log(source.next_revision(current_revision))} vendor/assets/ app/assets/ | wc -l").to_i > 0
26
+ run %Q{cd #{release_path} && #{rake_command} RAILS_ENV=#{stage} #{asset_env} assets:precompile}
27
+ else
28
+ logger.info "Skipping asset pre-compilation because there were no asset changes"
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,25 @@
1
+ Capistrano::Configuration.instance.load do
2
+ # Make sure gem 'capistrano-ext' is installed for this
3
+ after "multistage:ensure" do
4
+ set :rails_env, stage
5
+ end
6
+
7
+ # Can't use File.exists? because it'll check the local filesystem, not remote
8
+ def remote_file_exists?(path)
9
+ 'true' == capture("if [ -e #{path} ]; then echo 'true'; fi").strip
10
+ end
11
+
12
+ def read_remote_file(path)
13
+ capture("cat #{path}").strip
14
+ end
15
+
16
+ # Sends kill signal if process is running
17
+ def kill(process, signal)
18
+ pidfile_path = "#{shared_path}/pids/#{process}.pid"
19
+
20
+ if remote_file_exists?(pidfile_path)
21
+ pid = read_remote_file(pidfile_path).to_i
22
+ run "kill -#{signal} #{pid} > /dev/null 2>&1" # suppress errors
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,20 @@
1
+ Capistrano::Configuration.instance.load do
2
+ # So we can use rake within commands
3
+ after "multistage:ensure" do
4
+ set :rake_command, "RAILS_ENV=#{stage} #{current_path}/bin/rake -f #{current_path}/Rakefile"
5
+ end
6
+
7
+ before "deploy:update_code" do
8
+ # We are about to update code, so we need to use release path because the current path will be the old code
9
+ set :rake_command, "RAILS_ENV=#{stage} #{release_path}/bin/rake -f #{release_path}/Rakefile"
10
+ end
11
+
12
+ namespace :rake do
13
+ # Note: do not name this task to "run"
14
+ desc "Invoke a rake task, ex: cap production rake:invoke TASK=db:migrate TRACE=true"
15
+ task :invoke do
16
+ trace = ENV['TRACE'] ? "--trace" : ""
17
+ run "#{rake_command} #{ENV['TASK']} #{trace}"
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ require 'underglow/capistrano/helpers'
2
+ require 'underglow/capistrano/deploy'
3
+ require 'underglow/capistrano/rake'
@@ -1,3 +1,3 @@
1
1
  module Underglow
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
data/lib/underglow.rb CHANGED
@@ -9,7 +9,7 @@ module Underglow
9
9
  class Railtie < ::Rails::Railtie
10
10
  rake_tasks do
11
11
  # load all rake tasks, need to load them by full path so they don't get confused with any tasks of the same name in Rails app
12
- Dir[File.join(File.dirname(__FILE__), 'tasks/*.rake')].each { |f| load f }
12
+ Dir[File.join(File.dirname(__FILE__), 'underglow/tasks/*.rake')].each { |f| load f }
13
13
  end
14
14
  end
15
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: underglow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-10 00:00:00.000000000 Z
12
+ date: 2012-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -55,13 +55,17 @@ files:
55
55
  - Gemfile
56
56
  - README.md
57
57
  - Rakefile
58
- - lib/tasks/db.rake
59
- - lib/tasks/system.rake
60
- - lib/tasks/thin.rake
61
58
  - lib/underglow.rb
59
+ - lib/underglow/capistrano.rb
60
+ - lib/underglow/capistrano/deploy.rb
61
+ - lib/underglow/capistrano/helpers.rb
62
+ - lib/underglow/capistrano/rake.rb
62
63
  - lib/underglow/config.rb
63
64
  - lib/underglow/extensions/string.rb
64
65
  - lib/underglow/extensions/symbol.rb
66
+ - lib/underglow/tasks/db.rake
67
+ - lib/underglow/tasks/system.rake
68
+ - lib/underglow/tasks/thin.rake
65
69
  - lib/underglow/version.rb
66
70
  - spec/extensions/string_spec.rb
67
71
  - spec/extensions/symbol_spec.rb
File without changes
File without changes
File without changes