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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mini-heroku.rb +21 -4
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94bcfa6aecf60d189067ea284422e600f25df6ef
4
- data.tar.gz: c3b250df77eb780ee78f357d13524fc90e356986
3
+ metadata.gz: e8f6345fa963060bdc97308a806ee8339e13ab33
4
+ data.tar.gz: 3b7d7b7738061829c5a941f165c29b2db78f99b5
5
5
  SHA512:
6
- metadata.gz: 77fc7a72e64a72a035f02a52e1278b1cf212e678e973c73aa6a6dbbaf374840c47c5358d907ad9803483b3ee002528b9084e52d153dc497a35a56cbff93efdd6
7
- data.tar.gz: e2b47fd067415336d3a1c6b9df50d4f152b9c03418bea1d00c478278469812341b54b824107d1f22ff5df5339ff16b5d48e9f65172244e17dfe962c978ba9cab
6
+ metadata.gz: d162ca0a9f7167e9e87952c9e12e27f2ea4ca1ea265df45220f0eb4f419dfc8f54a6e326786bf7fd4dd931e9616192ab5013f49c6047dc13955eb8b0ce82f7f2
7
+ data.tar.gz: dd4b7f10dc3e3ca9adcb8bda330505399e008bc17d4b2c4fb21c3092d4648d225137bd953ff43438a14e2dd0b9b252dd591e8a843be83ccfb91c3dcc8594e15d
@@ -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.merge!(old)
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
- return ENV[key].gsub("\\n", "\n")
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.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-07-20 00:00:00.000000000 Z
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.1
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