Class: Array
- Inherits:
-
Object
show all
- Defined in:
- lib/puppet_library/util/patches.rb
Instance Method Summary
collapse
Instance Method Details
#deep_merge ⇒ Object
64
65
66
67
68
|
# File 'lib/puppet_library/util/patches.rb', line 64
def deep_merge
inject({}) do |merged, map|
merged.deep_merge(map)
end
end
|
#each_in_parallel ⇒ Object
70
71
72
73
74
75
76
77
|
# File 'lib/puppet_library/util/patches.rb', line 70
def each_in_parallel
threads = map do |element|
Thread.new do
yield(element)
end
end
threads.each &:join
end
|
#unique_by ⇒ Object
Like ‘uniq’ with a block, but also works on Ruby < 1.9
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/puppet_library/util/patches.rb', line 41
def unique_by
attr_to_element = {}
select do |element|
attribute = yield(element)
is_duplicate = attr_to_element.include? attribute
unless is_duplicate
attr_to_element[attribute] = element
end
!is_duplicate
end
end
|
#version_sort ⇒ Object
53
54
55
|
# File 'lib/puppet_library/util/patches.rb', line 53
def version_sort
version_sort_by { |e| e }
end
|
#version_sort_by ⇒ Object
57
58
59
60
61
62
|
# File 'lib/puppet_library/util/patches.rb', line 57
def version_sort_by
sort_by do |element|
version = yield(element)
Gem::Version.new(version)
end
end
|