Class: Array

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

Instance Method Summary collapse

Instance Method Details

#deep_mergeObject



61
62
63
64
65
# File 'lib/puppet_library/util.rb', line 61

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



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/puppet_library/util.rb', line 38

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



50
51
52
# File 'lib/puppet_library/util.rb', line 50

def version_sort
    version_sort_by { |e| e }
end

#version_sort_byObject



54
55
56
57
58
59
# File 'lib/puppet_library/util.rb', line 54

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