capistrano-base_helper 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "capistrano-base_helper"
8
- s.version = "0.0.5"
8
+ s.version = "0.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Leif Ringstad"]
12
- s.date = "2013-07-05"
12
+ s.date = "2013-07-08"
13
13
  s.description = "Helpers for capistrano recipes using runit/monit. Currently: capistrano-puma and capistrano-delayed_job"
14
14
  s.email = "leifcr@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -25,7 +25,11 @@ module Capistrano
25
25
  end
26
26
 
27
27
  def user_app_env_underscore
28
- "#{get_capistrano_instance.fetch(:user)}_#{get_capistrano_instance.fetch(:application)}_#{environment}"
28
+ "#{@@capistrano_instance.fetch(:user)}_#{@@capistrano_instance.fetch(:application)}_#{environment}"
29
+ end
30
+
31
+ def user_app_env_underscore_short
32
+ "#{@@capistrano_instance.fetch(:user)[0...1]}_#{environment[0...1]}_#{@@capistrano_instance.fetch(:application)}"
29
33
  end
30
34
 
31
35
  def user_app_env_path
@@ -93,7 +97,7 @@ module Capistrano
93
97
  @@capistrano_instance.upload temp_file, temp_file, :via => :scp
94
98
  # create any folders required,
95
99
  # move temporary file to remote file
96
- @@capistrano_instance.run "#{use_sudo ? "sudo" : ""} mkdir -p #{Pathname.new(remote_file).dirname}; #{use_sudo ? "sudo" : ""} mv #{temp_file} #{remote_file}"
100
+ @@capistrano_instance.run "#{use_sudo ? @@capistrano_instance.sudo : ""} mkdir -p #{Pathname.new(remote_file).dirname}; #{use_sudo ? "sudo" : ""} mv #{temp_file} #{remote_file}"
97
101
  # remove temp file
98
102
  `rm #{temp_file}`
99
103
  end
@@ -115,9 +119,9 @@ module Capistrano
115
119
 
116
120
  def prepare_path(path, user, group, use_sudo = false)
117
121
  commands = []
118
- commands << "#{use_sudo ? "sudo" : ""} mkdir -p #{path}"
119
- commands << "#{use_sudo ? "sudo" : ""} chown #{user}:#{group} #{path} -R"
120
- commands << "#{use_sudo ? "sudo" : ""} chmod +rw #{path}"
122
+ commands << "#{use_sudo ? @@capistrano_instance.sudo : ""} mkdir -p #{path}"
123
+ commands << "#{use_sudo ? @@capistrano_instance.sudo : ""} chown #{user}:#{group} #{path} -R"
124
+ commands << "#{use_sudo ? @@capistrano_instance.sudo : ""} chmod +rw #{path}"
121
125
  @@capistrano_instance.run commands.join(" &&")
122
126
  end
123
127
 
@@ -1,8 +1,13 @@
1
- # TODO: PLACE monit files like this
2
- # shared_path/monit/available
3
- # shared_path/monit/enabled
4
- # shared_path/monit/application.conf <-- in this: include shared_path/monit/enabled
5
- # files can then belong to user instead of root, and sudo is avoided for some apps
1
+ # Monit Base config
2
+ # Shared config for all apps that use monit
3
+ #
4
+ # Monit service config locations:
5
+ # Available services: shared_path/monit/available
6
+ # Enabled services: shared_path/monit/enabled
7
+ # Application "global" config: shared_path/monit/application.conf <-- in this: include shared_path/monit/enabled
8
+ #
9
+ # For control of monit, sudo is required, as it always runs as root. (Unfortunately.)
10
+ #
6
11
 
7
12
  Capistrano::Configuration.instance(true).load do
8
13
  _cset :monit_dir, defer { File.join(shared_path, "monit") }
@@ -70,15 +75,15 @@ Capistrano::Configuration.instance(true).load do
70
75
  Capistrano::BaseHelper::generate_and_upload_config(fetch(:monit_local_monitrc), fetch(:monit_remote_monitrc), true)
71
76
 
72
77
  commands = []
73
- commands << "sudo chmod 700 /etc/monit/monitrc"
74
- commands << "sudo chown root:root /etc/monit/monitrc"
78
+ commands << "#{sudo} chmod 700 /etc/monit/monitrc"
79
+ commands << "#{sudo} chown root:root /etc/monit/monitrc"
75
80
  run commands.join(" && ")
76
81
  # restart monit, as main config is now updated
77
- run "sudo service monit restart"
82
+ run "#{sudo} service monit restart"
78
83
  puts "----------------------------------------"
79
- puts "Sleeping for #{(fetch(:monit_daemon_time).to_i + fetch(:monit_start_delay).to_i + 2)} seconds to wait for monit to be ready"
84
+ puts "Sleeping for #{(fetch(:monit_daemon_time).to_i + fetch(:monit_start_delay).to_i + 10)} seconds to wait for monit to be ready"
80
85
  puts "----------------------------------------"
81
- sleep (fetch(:monit_daemon_time).to_i + fetch(:monit_start_delay).to_i + 2)
86
+ sleep (fetch(:monit_start_delay).to_i + 2)
82
87
  end
83
88
  end
84
89
 
@@ -87,20 +92,20 @@ Capistrano::Configuration.instance(true).load do
87
92
  real_conf = File.join(fetch(:monit_dir), "monit.conf")
88
93
  symlink = File.join(fetch(:monit_etc_conf_d_path), "#{Capistrano::BaseHelper.user_app_env_underscore}.conf")
89
94
  # symlink to include file
90
- run("[ -h #{symlink} ] || sudo ln -sf #{real_conf} #{symlink}")
95
+ run("[ -h #{symlink} ] || #{sudo} ln -sf #{real_conf} #{symlink}")
91
96
  end
92
97
 
93
98
  desc "Disable monit services for application"
94
99
  task :disable, :roles => [:app, :db, :web] do
95
100
  symlink = File.join(fetch(:monit_etc_conf_d_path), "#{Capistrano::BaseHelper.user_app_env_underscore}.conf")
96
- run("[ ! -h #{symlink} ] || sudo rm -f #{symlink}")
101
+ run("[ ! -h #{symlink} ] || #{sudo} rm -f #{symlink}")
97
102
  end
98
103
 
99
104
  desc "Purge/remove all monit configurations for the application"
100
105
  task :purge, :roles => [:app, :db, :web] do
101
106
  symlink = File.join(fetch(:monit_etc_conf_d_path), "#{Capistrano::BaseHelper.user_app_env_underscore}.conf")
102
- run("[ ! -h #{symlink} ] || sudo rm -f #{symlink}")
103
- run("[ ! -d #{fetch(:monit_dir)} ] || sudo rm -f #{fetch(:monit_dir)}")
107
+ run("[ ! -h #{symlink} ] || #{sudo} rm -f #{symlink}")
108
+ run("[ ! -d #{fetch(:monit_dir)} ] || #{sudo} rm -f #{fetch(:monit_dir)}")
104
109
  end
105
110
 
106
111
  desc "Monitor the application"
@@ -167,7 +172,8 @@ module Capistrano
167
172
  ##
168
173
  # Control / Command monit with given arguments
169
174
  def command_monit(command, arguments="")
170
- Capistrano::BaseHelper.get_capistrano_instance.run("sudo monit #{arguments} #{command}")
175
+ c = Capistrano::BaseHelper.get_capistrano_instance
176
+ c.run("#{c.sudo} monit #{arguments} #{command}")
171
177
  end
172
178
 
173
179
  end
@@ -184,7 +190,7 @@ module Capistrano
184
190
  def command_monit(command, service_name="", arguments="")
185
191
  c = Capistrano::BaseHelper.get_capistrano_instance
186
192
  service_name = "#{c.fetch(:user)}_#{c.fetch(:application)}_#{c.fetch(:environment)}_#{c.fetch(:service)}" if service_name == ""
187
- c.run("sudo monit #{arguments} #{command} #{service_name}")
193
+ c.run("#{c.sudo} monit #{arguments} #{command} #{service_name}")
188
194
  end
189
195
 
190
196
  ##
@@ -1,3 +1,9 @@
1
+ # Runit
2
+ #
3
+ # Application config and tasks that apply to all services setup with runit for the application
4
+ #
5
+ # Recommendation: Everything that should run as either a service or deamon, use runit!
6
+
1
7
  Capistrano::Configuration.instance(true).load do
2
8
  _cset :runit_dir, defer { "#{shared_path}/runit" }
3
9
  _cset :runit_local_run, File.join(File.expand_path(File.join(File.dirname(__FILE__),"../../../templates")), "runit", "run.erb")
@@ -8,6 +14,9 @@ Capistrano::Configuration.instance(true).load do
8
14
  _cset :runit_remote_log_run, defer {File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log", "run")}
9
15
  _cset :runit_log_user, "syslog"
10
16
  _cset :runit_log_group, "syslog"
17
+ _cset :runit_restart_interval, 10
18
+ _cset :runit_restart_count, 7
19
+ _cset :runit_autorestart_clear_interval, 90
11
20
 
12
21
  after "deploy:update", "runit:enable"
13
22
  after "deploy:setup", "runit:setup"
@@ -23,7 +32,7 @@ Capistrano::Configuration.instance(true).load do
23
32
 
24
33
  desc "Disable runit services for application"
25
34
  task :disable, :roles => [:app, :db, :web] do
26
- Capistrano::BaseHelper.get_capistrano_instance.run("sudo sv force-stop #{user}_#{application}; true")
35
+ Capistrano::BaseHelper.get_capistrano_instance.run("#{sudo} sv force-stop #{user}_#{application}; true")
27
36
  Capistrano::RunitBase.app_services_disable(fetch(:application), fetch(:user))
28
37
  end
29
38
 
@@ -34,7 +43,7 @@ Capistrano::Configuration.instance(true).load do
34
43
 
35
44
  desc "Purge/remove all runit configurations for the application"
36
45
  task :purge, :roles => [:app, :db, :web] do
37
- Capistrano::BaseHelper.get_capistrano_instance.run("sudo sv force-stop #{user}_#{application}; true")
46
+ Capistrano::BaseHelper.get_capistrano_instance.run("#{sudo} sv force-stop #{user}_#{application}; true")
38
47
  Capistrano::RunitBase.app_services_purge(fetch(:application), fetch(:user))
39
48
  end
40
49
 
@@ -77,17 +86,17 @@ module Capistrano
77
86
  def app_services_create_log_service
78
87
  c = Capistrano::BaseHelper.get_capistrano_instance
79
88
  commands = []
80
- commands << "sudo mkdir -p #{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log")}"
81
- commands << "sudo chown #{c.fetch(:user)}:root #{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log")}"
82
- commands << "sudo mkdir -p '#{File.join("/var", "log", "service", Capistrano::BaseHelper.user_app_env_path, "runit")}'"
83
- commands << "sudo chown -R #{c.fetch(:runit_log_user)}:#{c.fetch(:runit_log_group)} '#{File.join("/var", "log", "service", Capistrano::BaseHelper.user_app_env_path, "runit")}'"
89
+ commands << "#{c.sudo} mkdir -p #{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log")}"
90
+ commands << "#{c.sudo} chown #{c.fetch(:user)}:root #{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log")}"
91
+ commands << "#{c.sudo} mkdir -p '#{File.join("/var", "log", "service", Capistrano::BaseHelper.user_app_env_path, "runit")}'"
92
+ commands << "#{c.sudo} chown -R #{c.fetch(:runit_log_user)}:#{c.fetch(:runit_log_group)} '#{File.join("/var", "log", "service", Capistrano::BaseHelper.user_app_env_path, "runit")}'"
84
93
 
85
94
  c.run(commands.join(" && "))
86
95
  Capistrano::BaseHelper.generate_and_upload_config( c.fetch(:runit_local_log_run), c.fetch(:runit_remote_log_run), true )
87
96
  commands = []
88
- commands << "sudo chmod u+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log", "run")}'"
89
- commands << "sudo chmod g+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log", "run")}'"
90
- commands << "sudo chown #{c.fetch(:user)}:root '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log", "run")}'"
97
+ commands << "#{c.sudo} chmod u+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log", "run")}'"
98
+ commands << "#{c.sudo} chmod g+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log", "run")}'"
99
+ commands << "#{c.sudo} chown #{c.fetch(:user)}:root '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "log", "run")}'"
91
100
  c.run(commands.join(" && "))
92
101
  end
93
102
 
@@ -96,41 +105,44 @@ module Capistrano
96
105
  def app_services_create
97
106
  # SEE http://off-the-stack.moorman.nu/posts/5-user-services-with-runit/ for info on scripts
98
107
  c = Capistrano::BaseHelper.get_capistrano_instance
99
- c.run("sudo mkdir -p '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path)}'")
108
+ c.run("#{c.sudo} mkdir -p '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path)}'")
100
109
 
101
110
  commands = []
102
- commands << "sudo chown #{c.fetch(:user)}:root /etc/sv/#{c.fetch(:user)}"
103
- commands << "sudo chown #{c.fetch(:user)}:root /etc/sv/#{Capistrano::BaseHelper.user_app_env_path}"
111
+ commands << "#{c.sudo} chown #{c.fetch(:user)}:root /etc/sv/#{c.fetch(:user)}"
112
+ commands << "#{c.sudo} chown #{c.fetch(:user)}:root /etc/sv/#{Capistrano::BaseHelper.user_app_env_path}"
104
113
  c.run(commands.join(" && "))
105
114
  Capistrano::BaseHelper.generate_and_upload_config( Capistrano::BaseHelper::get_capistrano_instance.fetch(:runit_local_run), Capistrano::BaseHelper::get_capistrano_instance.fetch(:runit_remote_run), true )
106
115
  Capistrano::BaseHelper.generate_and_upload_config( Capistrano::BaseHelper::get_capistrano_instance.fetch(:runit_local_finish), Capistrano::BaseHelper::get_capistrano_instance.fetch(:runit_remote_finish), true )
107
116
 
108
117
  commands = []
109
- commands << "sudo chmod u+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "run")}'"
110
- commands << "sudo chmod u+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "finish")}'"
111
- commands << "sudo chmod g+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "run")}'"
112
- commands << "sudo chmod g+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "finish")}'"
113
- commands << "sudo chown #{c.fetch(:user)}:root '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "run")}'"
114
- commands << "sudo chown #{c.fetch(:user)}:root '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "finish")}'"
118
+ commands << "#{c.sudo} chmod u+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "run")}'"
119
+ commands << "#{c.sudo} chmod u+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "finish")}'"
120
+ commands << "#{c.sudo} chmod g+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "run")}'"
121
+ commands << "#{c.sudo} chmod g+x '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "finish")}'"
122
+ commands << "#{c.sudo} chown #{c.fetch(:user)}:root '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "run")}'"
123
+ commands << "#{c.sudo} chown #{c.fetch(:user)}:root '#{File.join("/etc", "sv", Capistrano::BaseHelper.user_app_env_path, "finish")}'"
115
124
  c.run(commands.join(" && "))
116
125
 
117
126
  Capistrano::RunitBase.app_services_create_log_service
118
127
  end
119
128
 
120
129
  def app_services_enable(application, user)
121
- Capistrano::BaseHelper.get_capistrano_instance.run("[ -h /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment} ] || sudo ln -sf /etc/sv/#{Capistrano::BaseHelper.user_app_env_path} /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment}")
130
+ c = Capistrano::BaseHelper.get_capistrano_instance
131
+ Capistrano::BaseHelper.get_capistrano_instance.run("[ -h /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment} ] || #{c.sudo} ln -sf /etc/sv/#{Capistrano::BaseHelper.user_app_env_path} /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment}")
122
132
  end
123
133
 
124
134
  def app_services_disable(application, user)
125
- Capistrano::BaseHelper.get_capistrano_instance.run("[ ! -h /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment} ] || sudo rm -f /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment}")
135
+ c = Capistrano::BaseHelper.get_capistrano_instance
136
+ Capistrano::BaseHelper.get_capistrano_instance.run("[ ! -h /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment} ] || #{c.sudo} rm -f /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment}")
126
137
  end
127
138
 
128
139
  def app_services_purge(application, user)
129
140
  # this should stop ALL services running for the given application
130
141
  # true is appended to ignore any errors failing to stop the services
142
+ c = Capistrano::BaseHelper.get_capistrano_instance
131
143
  commands = []
132
- commands << "sudo rm -f /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment}"
133
- commands << "sudo rm -rf /etc/sv/#{Capistrano::BaseHelper.user_app_env_path}"
144
+ commands << "#{c.sudo} rm -f /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment}"
145
+ commands << "#{c.sudo} rm -rf /etc/sv/#{Capistrano::BaseHelper.user_app_env_path}"
134
146
  Capistrano::BaseHelper.get_capistrano_instance.run(commands.join(" && "))
135
147
  end
136
148
 
@@ -147,7 +159,8 @@ module Capistrano
147
159
  end
148
160
 
149
161
  def app_services_control(application, user, command, ignore_error = false)
150
- Capistrano::BaseHelper.get_capistrano_instance.run("[ ! -h /etc/service/#{user}_#{application} ] || sudo sv #{command} #{user}_#{application}; #{"true" if ignore_error != false}")
162
+ c = Capistrano::BaseHelper.get_capistrano_instance
163
+ Capistrano::BaseHelper.get_capistrano_instance.run("[ ! -h /etc/service/#{user}_#{application}_#{Capistrano::BaseHelper.environment} ] || #{c.sudo} sv #{command} #{user}_#{application}_#{Capistrano::BaseHelper.environment}; #{"true" if ignore_error != false}")
151
164
  end
152
165
 
153
166
  # END - ALL services functions (functions that affects all services for the app)
@@ -185,9 +198,9 @@ module Capistrano
185
198
  Capistrano::BaseHelper.get_capistrano_instance.run("[ ! -h #{service_path(service_name)}/run ] || rm -f #{service_path(service_name)}/run && rm -f #{service_path(service_name)}/finish")
186
199
  end
187
200
 
188
- def enable_service(service_name, symlink_finish = nil)
201
+ def enable_service(service_name)
189
202
  Capistrano::BaseHelper.get_capistrano_instance.run("cd #{service_path(service_name)} && [ -h ./run ] || ln -sf #{remote_run_config_path(service_name)} ./run")
190
- Capistrano::BaseHelper.get_capistrano_instance.run("cd #{service_path(service_name)} && [ -h ./finish ] || ln -sf #{remote_finish_config_path(service_name)} ./finish") unless symlink_finish.nil?
203
+ Capistrano::BaseHelper.get_capistrano_instance.run("cd #{service_path(service_name)} && [ -h ./finish ] || ln -sf #{remote_finish_config_path(service_name)} ./finish")
191
204
  end
192
205
 
193
206
  def purge_service(service_name)
@@ -220,6 +233,10 @@ module Capistrano
220
233
  commands << "chmod u+x #{Capistrano::RunitBase.remote_run_config_path(service_name)}"
221
234
  commands << "chmod g+x #{Capistrano::RunitBase.remote_run_config_path(service_name)}"
222
235
  end
236
+ if Capistrano::BaseHelper::remote_file_exists?(Capistrano::RunitBase.remote_finish_config_path(service_name))
237
+ commands << "chmod u+x #{Capistrano::RunitBase.remote_finish_config_path(service_name)}"
238
+ commands << "chmod g+x #{Capistrano::RunitBase.remote_finish_config_path(service_name)}"
239
+ end
223
240
  if Capistrano::BaseHelper::remote_file_exists?(Capistrano::RunitBase.remote_service_log_run_path(service_name))
224
241
  commands << "chmod u+x #{Capistrano::RunitBase.remote_service_log_run_path(service_name)}"
225
242
  commands << "chmod g+x #{Capistrano::RunitBase.remote_service_log_run_path(service_name)}"
@@ -236,12 +253,13 @@ module Capistrano
236
253
  def create_and_permissions_on_path(log_path, user = nil, group = nil)
237
254
  user = Capistrano::BaseHelper.get_capistrano_instance.fetch(:user) if user.nil?
238
255
  group = "syslog" if group.nil?
256
+ c = Capistrano::BaseHelper.get_capistrano_instance
239
257
  # will use sudo
240
258
  commands = []
241
- commands << "sudo mkdir -p #{log_path}"
242
- commands << "sudo chown -R #{user}:#{group} #{log_path}"
243
- commands << "sudo chmod u+w #{log_path}"
244
- commands << "sudo chmod g+w #{log_path}"
259
+ commands << "#{c.sudo} mkdir -p #{log_path}"
260
+ commands << "#{c.sudo} chown -R #{user}:#{group} #{log_path}"
261
+ commands << "#{c.sudo} chmod u+w #{log_path}"
262
+ commands << "#{c.sudo} chmod g+w #{log_path}"
245
263
  Capistrano::BaseHelper.get_capistrano_instance.run commands.join(" && ")
246
264
  end
247
265
 
@@ -2,5 +2,12 @@
2
2
  # <% c = Capistrano::BaseHelper::get_capistrano_instance %>
3
3
  # Finish/quit services for <%= c.fetch(:application) %> as <%= c.fetch(:user) %> in env <%= Capistrano::BaseHelper.environment %>
4
4
  #
5
+ # Announce termination
6
+ #
7
+ echo "Stopping all services for <%= c.fetch(:application) %> running as <%= c.fetch(:user) %>"
8
+
9
+ # Force all services to stop
5
10
  sv -w600 force-stop '<%= c.fetch(:runit_dir) %>/*'
11
+
12
+ # "Exit" all services
6
13
  sv exit '<%= c.fetch(:runit_dir) %>/*'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-base_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
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: 2013-07-05 00:00:00.000000000 Z
12
+ date: 2013-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
@@ -99,7 +99,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  segments:
101
101
  - 0
102
- hash: -2866187985074734245
102
+ hash: 1132387968025362262
103
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  none: false
105
105
  requirements: