vm_shepherd 3.0.0 → 3.0.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
  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