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.
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