Class: Array

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

Instance Method Summary collapse

Instance Method Details

#deep_mergeObject



41
42
43
44
45
# File 'lib/puppet_library/util.rb', line 41

def deep_merge
    inject({}) do |merged, map|
        merged.deep_merge(map)
    end
end

#unique_byObject

Like ‘uniq’ with a block, but also works on Ruby < 1.9



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/puppet_library/util.rb', line 22

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_byObject



34
35
36
37
38
39
# File 'lib/puppet_library/util.rb', line 34

def version_sort_by
    sort_by do |element|
        version = yield(element)
        Gem::Version.new(version)
    end
end