Sha256: ba2753abaa38c9116c65487aba74f631e1538f2453d0cdbf3b2293e4a843c417
Contents?: true
Size: 1.19 KB
Versions: 104
Compression:
Stored size: 1.19 KB
Contents
module Hike # `NormalizedArray` is an internal abstract wrapper class that calls # a callback `normalize_element` anytime an element is added to the # Array. # # `Extensions` and `Paths` are subclasses of `NormalizedArray`. class NormalizedArray < Array def initialize super() end def []=(*args) value = args.pop if value.respond_to?(:to_ary) value = normalize_elements(value) else value = normalize_element(value) end super(*args.concat([value])) end def <<(element) super normalize_element(element) end def collect! super do |element| result = yield element normalize_element(result) end end alias_method :map!, :collect! def insert(index, *elements) super index, *normalize_elements(elements) end def push(*elements) super(*normalize_elements(elements)) end def replace(elements) super normalize_elements(elements) end def unshift(*elements) super(*normalize_elements(elements)) end def normalize_elements(elements) elements.map do |element| normalize_element(element) end end end end
Version data entries
104 entries across 82 versions & 21 rubygems