ufo 3.2.0 → 3.2.1

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 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
  - - ">="