mini-heroku 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mini-heroku.rb +21 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8f6345fa963060bdc97308a806ee8339e13ab33
|
4
|
+
data.tar.gz: 3b7d7b7738061829c5a941f165c29b2db78f99b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d162ca0a9f7167e9e87952c9e12e27f2ea4ca1ea265df45220f0eb4f419dfc8f54a6e326786bf7fd4dd931e9616192ab5013f49c6047dc13955eb8b0ce82f7f2
|
7
|
+
data.tar.gz: dd4b7f10dc3e3ca9adcb8bda330505399e008bc17d4b2c4fb21c3092d4648d225137bd953ff43438a14e2dd0b9b252dd591e8a843be83ccfb91c3dcc8594e15d
|
data/lib/mini-heroku.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
require "json"
|
3
3
|
|
4
|
+
class ::Hash
|
5
|
+
def deep_merge(second)
|
6
|
+
merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : Array === v1 && Array === v2 ? v1 | v2 : [:undefined, nil, :nil].include?(v2) ? v1 : v2 }
|
7
|
+
self.merge(second.to_h, &merger)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
4
11
|
module MiniHeroku
|
5
12
|
DEFAULT_PROCFILE = "web: bundle exec ruby server.rb -p $PORT"
|
6
13
|
DEFAULT_GITIGNORE = ["mhenvironment.json"].join("\n")
|
@@ -33,6 +40,9 @@ module MiniHeroku
|
|
33
40
|
environment = readJSON("mhconfig.json")[:devUsesProdEnviromnent] ? :production : :development
|
34
41
|
environment = readJSON("mhenvironment.json")[environment]
|
35
42
|
environment.each do |key, val|
|
43
|
+
if val.is_a?(Hash)
|
44
|
+
val = "JSON:" + val.to_json
|
45
|
+
end
|
36
46
|
ENV[key.to_s] = val.gsub("\n", "\\n")
|
37
47
|
end
|
38
48
|
puts "MH: Starting server"
|
@@ -81,7 +91,7 @@ module MiniHeroku
|
|
81
91
|
if File.file?("mhenvironment.json")
|
82
92
|
puts "MH: Found environment"
|
83
93
|
old = readJSON("mhenvironment.json")
|
84
|
-
environment.
|
94
|
+
environment = environment.deep_merge(old)
|
85
95
|
else
|
86
96
|
puts "MH: Creating default environment"
|
87
97
|
end
|
@@ -134,7 +144,6 @@ module MiniHeroku
|
|
134
144
|
end
|
135
145
|
end
|
136
146
|
config[:customGems].each do |key, val|
|
137
|
-
puts val
|
138
147
|
if gems.include?(key.to_s)
|
139
148
|
gems.delete(key.to_s)
|
140
149
|
gems << val.to_s if val
|
@@ -170,7 +179,10 @@ module MiniHeroku
|
|
170
179
|
def self.setProductionEnvironment()
|
171
180
|
environment = readJSON("mhenvironment.json")[:production]
|
172
181
|
out = "heroku config:set"
|
173
|
-
environment.each do |key, val|
|
182
|
+
environment.each do |key, val|
|
183
|
+
if val.is_a?(Hash)
|
184
|
+
val = "JSON:" + val.to_json
|
185
|
+
end
|
174
186
|
out += " #{key}=\"#{val.gsub("\n", "\\n")}\""
|
175
187
|
end
|
176
188
|
puts out
|
@@ -187,7 +199,12 @@ module MiniHeroku
|
|
187
199
|
end
|
188
200
|
|
189
201
|
def self.env(key)
|
190
|
-
|
202
|
+
val = ENV[key].gsub("\\n", "\n")
|
203
|
+
if val[0..4] == "JSON:"
|
204
|
+
val.gsub!("JSON:", "")
|
205
|
+
val = JSON.parse(val)
|
206
|
+
end
|
207
|
+
return val
|
191
208
|
end
|
192
209
|
end
|
193
210
|
MH = MiniHeroku
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini-heroku
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Larsson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Makes it easy to create, update and deploy a sinatra webserver to heroku.
|
14
14
|
Be warned, this gem might run over your files if something goes worng. see 'mh help'
|
@@ -41,7 +41,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
41
41
|
version: '0'
|
42
42
|
requirements: []
|
43
43
|
rubyforge_project:
|
44
|
-
rubygems_version: 2.6.14
|
44
|
+
rubygems_version: 2.6.14
|
45
45
|
signing_key:
|
46
46
|
specification_version: 4
|
47
47
|
summary: Small gem for heroku and sinatra based webservers
|