Class: Array

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet_library/util/patches.rb

Instance Method Summary collapse

Instance Method Details

#deep_mergeObject



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_parallelObject



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_byObject

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_sortObject



53
54
55
# File 'lib/puppet_library/util/patches.rb', line 53

def version_sort
    version_sort_by { |e| e }
end

#version_sort_byObject



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