kuber_kit 1.2.4 → 1.2.5

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: 9ff76b8cf852a2ab0155ebd06f03d6e7fe49a984f296434acab9de8d02953eff
4
- data.tar.gz: a5e9665951d91594fef05494b2a11ee5c216dc301591849334da72f959f68d4a
3
+ metadata.gz: bf57924285ae666f588c17e429237e45bf7fc1666683354a4b55de25592a994f
4
+ data.tar.gz: f8b7bcf9bcc1d82f9f3489d1d2b6763f281ca0398ef494b78ae11054c4c35019
5
5
  SHA512:
6
- metadata.gz: 7678e2dced05a8ab9b95c847e3e88ffa6c0a3f1eb97e9aab129e5f54bf376d900c88ad5b825989204fa36f201f169d94858d13711203882e6299c37e8dfc676d
7
- data.tar.gz: 2658ad03f603621a9becb59b7dc07e7b5bfbc6cb54f0c8bf6a9dec54ce44447c50c8488c497f8904b29373b8bf5e684bcfda667ce0e761b899c190f5e04b47ab
6
+ metadata.gz: ed268c5ca27198e9b9842d6f706f83cf83506e9abf8bb95bb23ed97a439b7ae8e9c867c6f88a2ad3a35a9cc2b8e969adbdd88363257e55f02b445f4075df933c
7
+ data.tar.gz: d2480528964184aadd99b9697898dcbc0da94cb7e8deac75496ea0bf7b47e7013c6c1824f897b4eb46b56b9ba954075b1740bc7ac3bc9ae9bb3d62b60dd2ce64
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ **1.2.5**
2
+ - Improve handling ContextVars, ability to convert context var to OpenStruct
3
+
1
4
  **1.2.4**
2
5
  - Fix a mistake in setting env variables
3
6
  - Added an option to set "use local deployment" variable
@@ -90,6 +90,10 @@ class KuberKit::Actions::ConfigurationLoader
90
90
  configuration_name = first_configurations.configuration_name
91
91
  end
92
92
 
93
+ if configuration_store.count > 1 && configuration_name
94
+ ui.print_info("Configuration", "Using configuration: #{configuration_name.to_s.cyan}")
95
+ end
96
+
93
97
  if configuration_store.count > 1 && configuration_name.nil?
94
98
  options = all_configurations.map(&:configuration_name).map(&:to_s)
95
99
  configuration_name = ui.prompt("Please select configuration name (or set it using -C option)", options)
@@ -1,15 +1,21 @@
1
+ require 'ostruct'
1
2
  class KuberKit::Core::ContextHelper::ContextVars
2
3
  attr_reader :parent, :parent_name
3
4
 
4
5
  BuildArgUndefined = Class.new(KuberKit::Error)
5
6
 
6
- def initialize(context_vars, parent_name = nil, parent = nil)
7
+ def initialize(context_vars, parent_name = nil)
7
8
  @context_vars = context_vars
8
9
  @parent_name = parent_name
9
- @parent = parent
10
10
  end
11
11
 
12
- def read(*variable_names)
12
+ def read(*variable_names, default: nil)
13
+ dig(*variable_names)
14
+ rescue BuildArgUndefined
15
+ return default
16
+ end
17
+
18
+ def dig(*variable_names)
13
19
  result = self
14
20
  variable_names.each do |var|
15
21
  result = result.get_variable_value(var)
@@ -18,7 +24,7 @@ class KuberKit::Core::ContextHelper::ContextVars
18
24
  end
19
25
 
20
26
  def variable_defined?(*variable_names)
21
- read(*variable_names)
27
+ dig(*variable_names)
22
28
  return true
23
29
  rescue BuildArgUndefined
24
30
  return false
@@ -29,15 +35,30 @@ class KuberKit::Core::ContextHelper::ContextVars
29
35
  raise ArgumentError.new("context args does not accept any arguments")
30
36
  end
31
37
 
32
- read(name)
38
+ dig(name)
39
+ end
40
+
41
+ def keys
42
+ @context_vars.keys
33
43
  end
34
44
 
35
45
  def to_h
36
- if @context_vars.is_a?(Hash)
37
- return @context_vars
38
- else
39
- return {value: @context_vars}
46
+ values = keys.map do |key|
47
+ value = get_variable_value(key)
48
+ hash_value = value.respond_to?(:to_h) ? value.to_h : value
49
+ [key, hash_value]
40
50
  end
51
+ Hash[values]
52
+ end
53
+
54
+ def to_struct
55
+ values = keys.map do |key|
56
+ value = get_variable_value(key)
57
+ hash_value = value.respond_to?(:to_struct) ? value.to_struct : value
58
+ [key, hash_value]
59
+ end
60
+ hash = Hash[values]
61
+ OpenStruct.new(hash)
41
62
  end
42
63
 
43
64
  def get_variable_value(variable_name)
@@ -46,23 +67,16 @@ class KuberKit::Core::ContextHelper::ContextVars
46
67
  end
47
68
 
48
69
  if value.is_a?(Hash)
49
- return self.class.new(value, variable_name, self)
70
+ return self.class.new(value, format_arg(variable_name))
50
71
  end
51
72
 
52
73
  value
53
74
  end
54
75
 
55
76
  private
77
+
56
78
 
57
79
  def format_arg(name)
58
- string = [@parent_name, name].compact.join(".")
59
- parent = @parent
60
-
61
- while parent do
62
- string = [parent.parent_name, string].compact.join(".")
63
- parent = parent.parent
64
- end
65
-
66
- string
80
+ [@parent_name, name].compact.join(".")
67
81
  end
68
82
  end
@@ -1,3 +1,3 @@
1
1
  module KuberKit
2
- VERSION = "1.2.4"
2
+ VERSION = "1.2.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kuber_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Iskander Khaziev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-17 00:00:00.000000000 Z
11
+ date: 2023-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: contracts