vm_shepherd 3.0.0 → 3.0.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
  SHA1:
3
- metadata.gz: 814de0b26db41e7d5677418858a6e9e8dff77c64
4
- data.tar.gz: 617d7d62de5616c771aa607737ce364107e80bee
3
+ metadata.gz: 394514726a5ce70ec01aa0db45305865f9b542c7
4
+ data.tar.gz: 30ded8fab4a49b9f6565ccac637ec5754a457a1d
5
5
  SHA512:
6
- metadata.gz: 2cc13a3aa6c5dfe1a4f1c32ff585eb5c632ffcee770806887a07ecfab58fd3151dba16e3bdab8f8e93ef559506405eb8d34c7b6f85ff234aa05009db840427c6
7
- data.tar.gz: aad5dd70687e4aadd47a1148df0170b25d1103d3d15e19bdabc1e9830071ccfc8720b765cdcf280e05d2a5f76de8799abe4bc950f7d7209aac5ae9fd03f827f5
6
+ metadata.gz: a2f55bbdc5b6071e8ac9557abb39614cb0a97cc5770dd02b3edaa442d745b62f5220c18fcbb32c4300890ad14056b17092c79b3f546cf275eba4934551a090d2
7
+ data.tar.gz: 8dc42e6b512d1f068c673c805ae872d8b94a38335ed8ef6708fda7969871372116d7a02ff605ef742cb4a5b2768159909264b69592caf3f8df45a61c81a040b6
@@ -1,3 +1,5 @@
1
+ # rubocop:disable all
2
+
1
3
  module VmShepherd
2
4
  module BackportRefinements
3
5
  def self.should_refine?
@@ -17,6 +19,25 @@ module VmShepherd
17
19
  end
18
20
  end
19
21
 
22
+ def self.ported_dig_for_recursive_open_struct(obj, indices)
23
+ head = indices.first
24
+
25
+ if head.is_a?(Integer)
26
+ new_obj = obj[head]
27
+ elsif
28
+ new_obj = obj[head] || obj[head.to_sym]
29
+ end
30
+
31
+ if indices.count == 1
32
+ new_obj
33
+ elsif new_obj == nil
34
+ return nil
35
+ else
36
+ tail = indices[1..-1]
37
+ ported_dig(new_obj, tail)
38
+ end
39
+ end
40
+
20
41
  refine Array do
21
42
  next unless BackportRefinements.should_refine?
22
43
 
@@ -32,5 +53,28 @@ module VmShepherd
32
53
  BackportRefinements.ported_dig(self, indices)
33
54
  end
34
55
  end
56
+
57
+ begin
58
+ # This little piece of awful-ness is needed because we back-ported
59
+ # this gem to 1.6 version of OpsManager, which still uses RecursiveOpenStruct
60
+ # because of ops_manager_ui_drivers
61
+
62
+ # Therefore, we need this to function in contexts where recursive open struct is
63
+ # a dependency, without leaking into other contexts.
64
+
65
+ # Delete this once we stop supporting 1.6
66
+
67
+ require 'recursive_open_struct'
68
+
69
+ refine RecursiveOpenStruct do
70
+ def dig(*indices)
71
+ BackportRefinements.ported_dig_for_recursive_open_struct(to_h, indices)
72
+ end
73
+ end
74
+
75
+ rescue LoadError
76
+ end
77
+
35
78
  end
36
79
  end
80
+ # rubocop:enable all
@@ -1,3 +1,3 @@
1
1
  module VmShepherd
2
- VERSION = '3.0.0'.freeze
2
+ VERSION = '3.0.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vm_shepherd
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ops Manager Team