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 +4 -4
- data/lib/vm_shepherd/backport_refinements.rb +44 -0
- data/lib/vm_shepherd/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 394514726a5ce70ec01aa0db45305865f9b542c7
|
4
|
+
data.tar.gz: 30ded8fab4a49b9f6565ccac637ec5754a457a1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/vm_shepherd/version.rb
CHANGED