rubber 2.16.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +0 -34
- data/CHANGELOG +33 -0
- data/lib/rubber/cloud/digital_ocean.rb +11 -1
- data/lib/rubber/commands/cron.rb +9 -11
- data/lib/rubber/instance.rb +5 -13
- data/lib/rubber/recipes/rubber.rb +2 -0
- data/lib/rubber/version.rb +1 -1
- data/rubber.gemspec +1 -3
- data/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +1 -1
- data/templates/base/config/rubber/rubber-ruby.yml +2 -2
- data/templates/base/config/rubber/rubber.yml +3 -3
- data/templates/cassandra/config/rubber/deploy-cassandra.rb +0 -10
- data/templates/graphite/config/rubber/deploy-graphite.rb +1 -1
- data/templates/graphite/config/rubber/role/graphite_server/carbon.conf +1 -1
- data/templates/graphite/config/rubber/role/graphite_server/graphite-carbon-default.conf +1 -1
- data/templates/graphite/config/rubber/role/graphite_server/graphite_server-upstart.conf +1 -1
- data/templates/graphite/config/rubber/role/graphite_server/storage-schemas.conf +1 -1
- data/templates/graphite/config/rubber/role/graphite_web/graphite.wsgi +1 -1
- data/templates/graphite/config/rubber/role/graphite_web/local_settings.py +1 -1
- data/templates/graphite/config/rubber/role/graphite_web/uwsgi.ini +1 -1
- data/templates/graphite/config/rubber/rubber-graphite.yml +0 -1
- data/templates/jenkins/config/rubber/role/jenkins/jenkins-apache-vhost.conf +1 -1
- data/templates/passenger/config/rubber/role/passenger/passenger-apache-vhost.conf +1 -1
- data/templates/passenger/config/rubber/rubber-passenger.yml +1 -1
- data/templates/passenger_nginx/config/rubber/rubber-passenger_nginx.yml +1 -1
- data/templates/torquebox/config/rubber/role/app/torquebox-apache-vhost.conf +1 -1
- data/test/test-rails-template.rb +1 -1
- metadata +5 -26
- data/rails/init.rb +0 -6
- data/templates/base/templates.rb +0 -11
data/.travis.yml
CHANGED
@@ -2,53 +2,19 @@ language: ruby
|
|
2
2
|
sudo: false
|
3
3
|
cache: bundler
|
4
4
|
|
5
|
-
gemfile:
|
6
|
-
- Gemfile
|
7
|
-
- Gemfile.1.8.7
|
8
|
-
|
9
5
|
rvm:
|
10
|
-
- 1.8.7
|
11
|
-
- 1.9.2
|
12
6
|
- 1.9.3
|
13
7
|
- 2.0.0
|
14
8
|
- 2.1
|
15
9
|
- 2.2
|
16
10
|
- ruby-head
|
17
|
-
- jruby-18mode
|
18
11
|
- jruby-19mode
|
19
12
|
- jruby-head
|
20
13
|
- rbx-2
|
21
14
|
|
22
15
|
matrix:
|
23
|
-
exclude:
|
24
|
-
- rvm: 1.8.7
|
25
|
-
gemfile: Gemfile
|
26
|
-
- rvm: 1.9.2
|
27
|
-
gemfile: Gemfile.1.8.7
|
28
|
-
- rvm: 1.9.3
|
29
|
-
gemfile: Gemfile.1.8.7
|
30
|
-
- rvm: 2.0.0
|
31
|
-
gemfile: Gemfile.1.8.7
|
32
|
-
- rvm: 2.1
|
33
|
-
gemfile: Gemfile.1.8.7
|
34
|
-
- rvm: 2.2
|
35
|
-
gemfile: Gemfile.1.8.7
|
36
|
-
- rvm: ruby-head
|
37
|
-
gemfile: Gemfile.1.8.7
|
38
|
-
- rvm: jruby-18mode
|
39
|
-
gemfile: Gemfile
|
40
|
-
- rvm: jruby-19mode
|
41
|
-
gemfile: Gemfile.1.8.7
|
42
|
-
- rvm: jruby-head
|
43
|
-
gemfile: Gemfile.1.8.7
|
44
|
-
- rvm: rbx-2
|
45
|
-
gemfile: Gemfile.1.8.7
|
46
|
-
|
47
16
|
allow_failures:
|
48
17
|
- rvm: rbx-2
|
49
|
-
- rvm: 1.8.7
|
50
|
-
- rvm: 1.9.2
|
51
|
-
- rvm: jruby-18mode
|
52
18
|
- rvm: ruby-head
|
53
19
|
|
54
20
|
# script: bundle exec rspec spec
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,36 @@
|
|
1
|
+
3.0.0 (04/24/2015)
|
2
|
+
|
3
|
+
This is a major Rubber release in 3 years. Most of the Rubber internals haven't changed from the 2.x series. However,
|
4
|
+
we have removed support for Ruby versions < 1.9.3 and Rails < 3. Dropping older versions of Ruby meant we were able
|
5
|
+
to also drop the open4 dependency -- if you relied on that, you'll need to add it to your Gemfile. We also dropped
|
6
|
+
support for Ubuntu 10.04. While it's tied to this major version release, dropping Ubuntu 10.04 is a consequence of
|
7
|
+
it no longer being supported by Canonical.
|
8
|
+
|
9
|
+
Breaking Changes:
|
10
|
+
================
|
11
|
+
|
12
|
+
[core] Force Ruby 1.9.3+ for Rubber 3.0. <a5f4259>
|
13
|
+
[core] Removed open4 dependency in favor of standard lib open3. <e7f6d8e>
|
14
|
+
[core] Dropped support for Rails 2.3. <cf8d6c2>
|
15
|
+
[core] Dropped support for Ubuntu 10.04. <8e0753e>
|
16
|
+
|
17
|
+
Improvements:
|
18
|
+
============
|
19
|
+
|
20
|
+
[base] Bump ruby-build from 20150116 to 20150413 and default Ruby from 2.2.0 to 2.2.2. <48357a3, 2854426>
|
21
|
+
[base] Removed obsoleted gems from default install list. <cfe3433>
|
22
|
+
[core] Improved SSH key validation. <000c309>
|
23
|
+
[core] Worked around DigitalOcean's eventual consistencyness with regards to creating SSH keys. <b6dc6c5>
|
24
|
+
[core] Don't modify the Gemfile when vulcanizing 'base'. <422feda>
|
25
|
+
[passenger] Upgraded from Passenger from 4.0.57 to 5.0.6. <ca8a7d1>
|
26
|
+
[passenger_nginx] Upgraded from Passenger from 4.0.57 to 5.0.6. <ca8a7d1>
|
27
|
+
|
28
|
+
Bug Fixes:
|
29
|
+
=========
|
30
|
+
|
31
|
+
[base] Fixed bad default DigitalOcean image. <000c309>
|
32
|
+
|
33
|
+
|
1
34
|
2.16.0 (02/23/2015)
|
2
35
|
|
3
36
|
New Features:
|
@@ -58,7 +58,17 @@ module Rubber
|
|
58
58
|
ssh_key = compute_provider.list_ssh_keys.body['ssh_keys'].find { |key| key['name'] == env.key_name }
|
59
59
|
if ssh_key.nil?
|
60
60
|
if env.key_file
|
61
|
-
|
61
|
+
compute_provider.create_ssh_key(env.key_name, File.read("#{env.key_file}.pub"))
|
62
|
+
|
63
|
+
# Although not documented, DigitalOcean is eventually consistent. Receiving a 200 response with the key
|
64
|
+
# body does not mean the key has propagated through their systems yet. Thus we need to query to see if
|
65
|
+
# the key is yet available. Otherwise our request will end up creating a droplet without an attached key.
|
66
|
+
|
67
|
+
begin
|
68
|
+
sleep(0.5)
|
69
|
+
ssh_key = compute_provider.list_ssh_keys.body['ssh_keys'].find { |key| key['name'] == env.key_name }
|
70
|
+
end while ssh_key.nil?
|
71
|
+
|
62
72
|
else
|
63
73
|
raise 'Missing key_file for DigitalOcean'
|
64
74
|
end
|
data/lib/rubber/commands/cron.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'open3'
|
2
2
|
require 'fileutils'
|
3
3
|
|
4
4
|
module Rubber
|
@@ -93,26 +93,24 @@ module Rubber
|
|
93
93
|
# set current directory to rootdir
|
94
94
|
Dir.chdir(rootdir)
|
95
95
|
|
96
|
-
|
97
|
-
# so we can use that instead.
|
98
|
-
status = (defined?(JRUBY_VERSION) ? IO : Open4).popen4(*cmd) do |pid, stdin, stdout, stderr|
|
96
|
+
status = Open3.popen3(*cmd) do |stdin, stdout, stderr, wait_thread|
|
99
97
|
File.open(log, "a") do | fh |
|
100
98
|
fh.puts "\nrubber:cron running #{cmd.inspect} at #{Time.now}\n"
|
101
99
|
threads = []
|
100
|
+
|
102
101
|
threads << Thread.new(stdout) do |stdout|
|
103
|
-
|
102
|
+
stdout.each { |line| $stdout.puts line if echoout?; fh.print line; fh.flush }
|
104
103
|
end
|
104
|
+
|
105
105
|
threads << Thread.new(stderr) do |stderr|
|
106
|
-
|
106
|
+
stderr.each { |line| $stderr.puts line if echoerr?; fh.print line; fh.flush }
|
107
107
|
end
|
108
|
+
|
108
109
|
threads.each { |t| t.join }
|
109
110
|
end
|
110
|
-
end
|
111
111
|
|
112
|
-
|
113
|
-
|
114
|
-
# object if on JRuby.
|
115
|
-
status = $? if defined?(JRUBY_VERSION)
|
112
|
+
wait_thread.value
|
113
|
+
end
|
116
114
|
|
117
115
|
result = status.exitstatus
|
118
116
|
if result != 0
|
data/lib/rubber/instance.rb
CHANGED
@@ -293,20 +293,12 @@ module Rubber
|
|
293
293
|
end
|
294
294
|
end
|
295
295
|
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
vars - VARIABLES_TO_OMIT_IN_SERIALIZATION
|
300
|
-
end
|
301
|
-
|
302
|
-
else
|
303
|
-
def encode_with(coder)
|
304
|
-
vars = instance_variables.map { |x| x.to_s }
|
305
|
-
vars = vars - VARIABLES_TO_OMIT_IN_SERIALIZATION
|
296
|
+
def encode_with(coder)
|
297
|
+
vars = instance_variables.map { |x| x.to_s }
|
298
|
+
vars = vars - VARIABLES_TO_OMIT_IN_SERIALIZATION
|
306
299
|
|
307
|
-
|
308
|
-
|
309
|
-
end
|
300
|
+
vars.each do |var|
|
301
|
+
coder[var.gsub('@', '')] = eval(var)
|
310
302
|
end
|
311
303
|
end
|
312
304
|
end
|
@@ -92,6 +92,8 @@ namespace :rubber do
|
|
92
92
|
else
|
93
93
|
if cloud.env.key_file.nil?
|
94
94
|
fatal "Missing required cloud provider configuration item 'key_file'."
|
95
|
+
elsif cloud.env.key_file.strip.empty?
|
96
|
+
fatal "Empty path supplied for required cloud provider configuration item 'key_file'."
|
95
97
|
else
|
96
98
|
cloud.env.key_file
|
97
99
|
end
|
data/lib/rubber/version.rb
CHANGED
data/rubber.gemspec
CHANGED
@@ -8,6 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.name = "rubber"
|
9
9
|
s.version = Rubber::VERSION.dup
|
10
10
|
s.platform = Gem::Platform::RUBY
|
11
|
+
s.required_ruby_version = '>= 1.9.3'
|
11
12
|
s.authors = ["Matt Conway", "Kevin Menard"]
|
12
13
|
s.email = ["matt@conwaysplace.com", "nirvdrum@gmail.com"]
|
13
14
|
s.homepage = "https://github.com/rubber/rubber"
|
@@ -21,8 +22,6 @@ Gem::Specification.new do |s|
|
|
21
22
|
deployment, e.g. adding in instances that serve only as an 'app' role to handle increased app server load.
|
22
23
|
DESC
|
23
24
|
|
24
|
-
s.rubyforge_project = 'rubber'
|
25
|
-
|
26
25
|
s.files = `git ls-files`.split("\n")
|
27
26
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
28
27
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
@@ -32,7 +31,6 @@ Gem::Specification.new do |s|
|
|
32
31
|
s.add_dependency 'net-ssh', '~> 2.6'
|
33
32
|
s.add_dependency 'thor'
|
34
33
|
s.add_dependency 'clamp'
|
35
|
-
s.add_dependency 'open4'
|
36
34
|
s.add_dependency 'fog', '~> 1.6'
|
37
35
|
s.add_dependency 'json'
|
38
36
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%
|
2
|
-
is_old_ubuntu =
|
2
|
+
is_old_ubuntu = rubber_instance.os_version == '12.04'
|
3
3
|
|
4
4
|
# Apache 2.2 requires no extension while Apache 2.4 requires the '.conf' extension.
|
5
5
|
@path = "/etc/apache2/sites-available/#{rubber_env.app_name}-tools"
|
@@ -12,12 +12,12 @@ packages: [autoconf, bison, build-essential, libssl-dev, libyaml-dev, libreadlin
|
|
12
12
|
|
13
13
|
# REQUIRED: The version of ruby-build to use for building ruby.
|
14
14
|
# It must be one of the versions from https://github.com/sstephenson/ruby-build/releases.
|
15
|
-
ruby_build_version:
|
15
|
+
ruby_build_version: 20150413
|
16
16
|
|
17
17
|
# REQUIRED: Set to the version string for the ruby version you wish to use
|
18
18
|
# Run "ruby-build --definitions" to see the list of possible options or look through the list of
|
19
19
|
# recipes online at https://github.com/sstephenson/ruby-build/tree/master/share/ruby-build
|
20
|
-
ruby_version: 2.2.
|
20
|
+
ruby_version: 2.2.2
|
21
21
|
|
22
22
|
# REQUIRED: Installation path for ruby.
|
23
23
|
ruby_path: "/usr/local/rubies/#{ruby_version}"
|
@@ -129,7 +129,7 @@ cloud_providers:
|
|
129
129
|
region: New York 2
|
130
130
|
|
131
131
|
# REQUIRED: The image name and type for creating instances.
|
132
|
-
image_id:
|
132
|
+
image_id: 14.04 x64
|
133
133
|
image_type: 512MB
|
134
134
|
|
135
135
|
# Optionally enable private networking for your instances.
|
@@ -286,8 +286,8 @@ os_version_cmd: 'lsb_release -sr'
|
|
286
286
|
|
287
287
|
# OPTIONAL: The gems to install on all instances
|
288
288
|
# You can install a specific version of a gem by using a sub-array of gem, version
|
289
|
-
# For example, gem: [[rails,
|
290
|
-
gems: [
|
289
|
+
# For example, gem: [[rails, 4.2.1], bundler]
|
290
|
+
gems: [bundler, [rubber, "#{Rubber.version}"]]
|
291
291
|
|
292
292
|
# OPTIONAL: A string prepended to shell command strings that cause multi
|
293
293
|
# statement shell commands to fail fast. You may need to comment this out
|
@@ -35,16 +35,6 @@ namespace :rubber do
|
|
35
35
|
|
36
36
|
end
|
37
37
|
|
38
|
-
task :oldjdk_install, :roles => [:cassandra, :opscenter] do
|
39
|
-
rubber.sudo_script 'install_cassandra', <<-ENDSCRIPT
|
40
|
-
mkdir /tmp/jdk
|
41
|
-
wget -qNP /tmp/jdk http://archive.canonical.com/pool/partner/s/sun-java6/sun-java6-jre_6.22-0ubuntu1~10.04_all.deb
|
42
|
-
wget -qNP /tmp/jdk http://archive.canonical.com/pool/partner/s/sun-java6/sun-java6-bin_6.22-0ubuntu1~10.04_amd64.deb
|
43
|
-
wget -qNP /tmp/jdk http://archive.canonical.com/pool/partner/s/sun-java6/sun-java6-jdk_6.22-0ubuntu1~10.04_amd64.deb
|
44
|
-
dpkg -i /tmp/jdk/*.deb
|
45
|
-
ENDSCRIPT
|
46
|
-
end
|
47
|
-
|
48
38
|
after "rubber:bootstrap", "rubber:cassandra:bootstrap"
|
49
39
|
|
50
40
|
task :bootstrap, :roles => :cassandra do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%
|
2
2
|
@path = "#{rubber_env.graphite_dir}/conf/uwsgi.ini"
|
3
3
|
|
4
|
-
is_old_ubuntu =
|
4
|
+
is_old_ubuntu = rubber_instance.os_version == '12.04'
|
5
5
|
log_dir = is_old_ubuntu ? "#{rubber_env.graphite_storage_dir}/log/webapp" : '/var/log/graphite'
|
6
6
|
%>
|
7
7
|
|
@@ -21,7 +21,6 @@ web_tools_proxies:
|
|
21
21
|
roles:
|
22
22
|
graphite_web:
|
23
23
|
os_packages:
|
24
|
-
'10.04': [python-django, python-django-tagging, python-cairo, python-memcache, memcached, uwsgi, uwsgi-plugin-python, uwsgi-plugin-http, sqlite3, bzr, zip]
|
25
24
|
'12.04': [python-django, python-django-tagging, python-cairo, python-memcache, memcached, uwsgi, uwsgi-plugin-python, uwsgi-plugin-http, sqlite3, bzr, zip]
|
26
25
|
'14.04': [uwsgi, uwsgi-plugin-python, graphite-web]
|
27
26
|
graphite_server:
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%
|
2
|
-
is_old_ubuntu =
|
2
|
+
is_old_ubuntu = rubber_instance.os_version == '12.04'
|
3
3
|
|
4
4
|
# Apache 2.2 requires no extension while Apache 2.4 requires the '.conf' extension.
|
5
5
|
@path = "/etc/apache2/sites-available/#{rubber_env.app_name}-jenkins"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%
|
2
|
-
is_old_ubuntu =
|
2
|
+
is_old_ubuntu = rubber_instance.os_version == '12.04'
|
3
3
|
|
4
4
|
# Apache 2.2 requires no extension while Apache 2.4 requires the '.conf' extension.
|
5
5
|
@path = "/etc/apache2/sites-available/#{rubber_env.app_name}-passenger"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%
|
2
|
-
is_old_ubuntu =
|
2
|
+
is_old_ubuntu = rubber_instance.os_version == '12.04'
|
3
3
|
|
4
4
|
# Apache 2.2 requires no extension while Apache 2.4 requires the '.conf' extension.
|
5
5
|
@path = "/etc/apache2/sites-available/#{rubber_env.app_name}-torquebox"
|
data/test/test-rails-template.rb
CHANGED
@@ -53,7 +53,7 @@ run "cp -f #{secret} config/rubber/rubber-secret.yml"
|
|
53
53
|
chmod 'config/rubber/rubber-secret.yml', 0644
|
54
54
|
gsub_file 'config/rubber/rubber-secret.yml', /dns_provider: .*/, ''
|
55
55
|
|
56
|
-
run "vagrant init
|
56
|
+
run "vagrant init ubuntu/trusty64"
|
57
57
|
vagrantfile = <<-EOS
|
58
58
|
config.vm.define :vagrant do |vagrant|
|
59
59
|
vagrant.vm.network :private_network, ip: "192.168.70.10"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-04-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: capistrano
|
@@ -76,22 +76,6 @@ dependencies:
|
|
76
76
|
- - ! '>='
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: '0'
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: open4
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
|
-
requirements:
|
84
|
-
- - ! '>='
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: '0'
|
87
|
-
type: :runtime
|
88
|
-
prerelease: false
|
89
|
-
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
|
-
requirements:
|
92
|
-
- - ! '>='
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '0'
|
95
79
|
- !ruby/object:Gem::Dependency
|
96
80
|
name: fog
|
97
81
|
requirement: !ruby/object:Gem::Requirement
|
@@ -283,7 +267,6 @@ files:
|
|
283
267
|
- lib/rubber/vagrant/plugin.rb
|
284
268
|
- lib/rubber/vagrant/provisioner.rb
|
285
269
|
- lib/rubber/version.rb
|
286
|
-
- rails/init.rb
|
287
270
|
- rubber.gemspec
|
288
271
|
- templates/apache/config/rubber/deploy-apache.rb
|
289
272
|
- templates/apache/config/rubber/role/apache/deflate.conf
|
@@ -312,7 +295,6 @@ files:
|
|
312
295
|
- templates/base/config/rubber/rubber-vagrant-env.yml
|
313
296
|
- templates/base/config/rubber/rubber.yml
|
314
297
|
- templates/base/script/rubber
|
315
|
-
- templates/base/templates.rb
|
316
298
|
- templates/base/templates.yml
|
317
299
|
- templates/browsermob_proxy/config/rubber/deploy-browsermob_proxy.rb
|
318
300
|
- templates/browsermob_proxy/config/rubber/role/browsermob_proxy/crontab
|
@@ -729,10 +711,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
729
711
|
requirements:
|
730
712
|
- - ! '>='
|
731
713
|
- !ruby/object:Gem::Version
|
732
|
-
version:
|
733
|
-
segments:
|
734
|
-
- 0
|
735
|
-
hash: 3842651331565498107
|
714
|
+
version: 1.9.3
|
736
715
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
737
716
|
none: false
|
738
717
|
requirements:
|
@@ -741,9 +720,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
741
720
|
version: '0'
|
742
721
|
segments:
|
743
722
|
- 0
|
744
|
-
hash:
|
723
|
+
hash: -1209637678339755634
|
745
724
|
requirements: []
|
746
|
-
rubyforge_project:
|
725
|
+
rubyforge_project:
|
747
726
|
rubygems_version: 1.8.23.2
|
748
727
|
signing_key:
|
749
728
|
specification_version: 3
|
data/rails/init.rb
DELETED
data/templates/base/templates.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
if Rubber::Util::is_bundler?
|
2
|
-
append_to_file "Gemfile", "gem 'rubber'\n"
|
3
|
-
|
4
|
-
# for cron-sh
|
5
|
-
append_to_file 'Gemfile', "gem 'open4'\n"
|
6
|
-
|
7
|
-
# TODO: remove this once 12.04 is fixed
|
8
|
-
# temp workaround for https://github.com/rubygems/rubygems/issues/319
|
9
|
-
gsub_file 'Gemfile', /source (["'])https/, 'source \1http'
|
10
|
-
|
11
|
-
end
|