ufo 3.2.0 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c1894588cde21064b0558cbe90861eddc03879b7ff874906f39a6375998d5667
4
- data.tar.gz: b613a20c65a8d7c8e9bb7b436c923fcf19f3a0514d054dc5e5a4919d03c4890d
3
+ metadata.gz: 2cd2207a0617cee46aeb0459643f5fcd3fa2605ea7e0052020bd310e987dc38b
4
+ data.tar.gz: f3bf371e109599f6ea57418abbd3b87dba06400144c97028af46d32ad7a2fd0c
5
5
  SHA512:
6
- metadata.gz: 36c17e42e5a9f317058565338bde9e0c5cfd249152df58271554e8303378fd559687f348c1a5134e027d29842d9473489e7b45db937950f23a5e455578637c3c
7
- data.tar.gz: 9e57675fbf2129208255cefeecc94849968d56aa1c868a30837fc813a710d7a0d2c7c0d7f5d85bf8e067662fd6c03e90e2cc9729ee70717ba5d47a227e079fe6
6
+ metadata.gz: 0d391674506d0f5b68cd4e403a6a6d14141c52069244f991a4b280e69d013c0d7ce6be8a8a66b6a05bedb4600d2b28b171ec9aab6820113e2c00aaf1208368d5
7
+ data.tar.gz: 3c857cfabc2c40297f40271c75fc728fe4a556f35534b4b9451b650c81d7216b6e6bf87ac1861e210322e06c4a179e0114fbde4ef158a120838033a5254c6a0d
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
5
5
 
6
+ ## [3.2.1]
7
+ - ensure settings is always a hash even when settings.yml has nil
8
+ - move cli_markdown as development dependency
9
+
6
10
  ## [3.2.0]
7
11
  - pr #23 from tongueroo/cli_markdown: http://ufoships.com/reference/ section now available
8
12
  - pr #24 from tongueroo/circleci
@@ -20,8 +20,8 @@ Prints words for TAB auto-completion.
20
20
  ## Examples
21
21
 
22
22
  ufo completion
23
- ufo completion hello
24
- ufo completion hello name
23
+ ufo completion ship
24
+ ufo completion docker
25
25
 
26
26
  To enable, TAB auto-completion add the following to your profile:
27
27
 
@@ -30,9 +30,9 @@ To enable, TAB auto-completion add the following to your profile:
30
30
  Auto-completion example usage:
31
31
 
32
32
  ufo [TAB]
33
- ufo hello [TAB]
34
- ufo hello name [TAB]
35
- ufo hello name --[TAB]
33
+ ufo ship [TAB]
34
+ ufo docker build [TAB]
35
+ ufo docker build --[TAB]
36
36
 
37
37
 
38
38
  ## Options
@@ -7,8 +7,8 @@ Prints words for TAB auto-completion.
7
7
  ## Examples
8
8
 
9
9
  ufo completion
10
- ufo completion hello
11
- ufo completion hello name
10
+ ufo completion ship
11
+ ufo completion docker
12
12
 
13
13
  To enable, TAB auto-completion add the following to your profile:
14
14
 
@@ -17,6 +17,6 @@ To enable, TAB auto-completion add the following to your profile:
17
17
  Auto-completion example usage:
18
18
 
19
19
  ufo [TAB]
20
- ufo hello [TAB]
21
- ufo hello name [TAB]
22
- ufo hello name --[TAB]
20
+ ufo ship [TAB]
21
+ ufo docker build [TAB]
22
+ ufo docker build --[TAB]
@@ -9,7 +9,7 @@ module Ufo
9
9
  # data contains the settings.yml config. The order or precedence for settings
10
10
  # is the project ufo/settings.yml and then the ~/.ufo/settings.yml.
11
11
  def data
12
- return @settings_yaml if @settings_yaml
12
+ return @data if @data
13
13
 
14
14
  if @check_ufo_project && !File.exist?(project_settings_path)
15
15
  puts "ERROR: No settings file at #{project_settings_path}. Are you sure you are in a project with ufo setup?"
@@ -24,24 +24,36 @@ module Ufo
24
24
  user = File.exist?(user_file) ? YAML.load_file(user_file) : {}
25
25
 
26
26
  default_file = File.expand_path("../default/settings.yml", __FILE__)
27
- default = YAML.load_file(default_file)
27
+ default = load_file(default_file)
28
28
 
29
- @settings_yaml = default.deep_merge(user.deep_merge(project))[Ufo.env]
29
+ all_envs = default.deep_merge(user.deep_merge(project))
30
+ all_envs = merge_base(all_envs)
31
+ @@data = all_envs[Ufo.env] || all_envs["base"] || {}
30
32
  end
31
33
 
32
34
  private
33
35
  def load_file(path)
36
+ return Hash.new({}) unless File.exist?(path)
37
+
34
38
  content = RenderMePretty.result(path)
35
- data = File.exist?(path) ? YAML.load(content) : {}
36
- # automatically add base settings to the rest of the environments
39
+ data = YAML.load(content)
40
+ # If key is is accidentally set to nil it screws up the merge_base later.
41
+ # So ensure that all keys with nil value are set to {}
37
42
  data.each do |ufo_env, _setting|
38
- base = data["base"] || {}
39
- env = data[ufo_env] || {}
40
- data[ufo_env] = base.merge(env) unless ufo_env == "base"
43
+ data[ufo_env] ||= {}
41
44
  end
42
45
  data
43
46
  end
44
47
 
48
+ # automatically add base settings to the rest of the environments
49
+ def merge_base(all_envs)
50
+ base = all_envs["base"]
51
+ all_envs.each do |ufo_env, env_settings|
52
+ all_envs[ufo_env] = base.merge(env_settings) unless ufo_env == "base"
53
+ end
54
+ all_envs
55
+ end
56
+
45
57
  def project_settings_path
46
58
  "#{Ufo.root}/.ufo/settings.yml"
47
59
  end
@@ -1,3 +1,3 @@
1
1
  module Ufo
2
- VERSION = "3.2.0"
2
+ VERSION = "3.2.1"
3
3
  end
@@ -23,7 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "aws-sdk-ecr"
24
24
  spec.add_dependency "aws-sdk-ecs"
25
25
  spec.add_dependency "aws-sdk-elasticloadbalancingv2"
26
- spec.add_dependency "cli_markdown"
27
26
  spec.add_dependency "colorize"
28
27
  spec.add_dependency "deep_merge"
29
28
  spec.add_dependency "plissken"
@@ -32,6 +31,7 @@ Gem::Specification.new do |spec|
32
31
 
33
32
  spec.add_development_dependency "bundler"
34
33
  spec.add_development_dependency "byebug"
34
+ spec.add_development_dependency "cli_markdown"
35
35
  spec.add_development_dependency "rake"
36
36
  spec.add_development_dependency "rspec"
37
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ufo
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-26 00:00:00.000000000 Z
11
+ date: 2018-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-cloudwatchlogs
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: cli_markdown
84
+ name: colorize
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: colorize
98
+ name: deep_merge
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: deep_merge
112
+ name: plissken
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: plissken
126
+ name: render_me_pretty
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: render_me_pretty
140
+ name: thor
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -151,13 +151,13 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: thor
154
+ name: bundler
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
- type: :runtime
160
+ type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
@@ -165,7 +165,7 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: bundler
168
+ name: byebug
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="
@@ -179,7 +179,7 @@ dependencies:
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
- name: byebug
182
+ name: cli_markdown
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - ">="