mini-heroku 0.2.2 → 0.2.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 +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
|