class Array

Array Patches

Public Instance Methods

*(second) click to toggle source
# File lib/rest_connection/patches.rb, line 115
def *(second)
  if second.is_a?(Integer)
    ret = []
    second.times { |i| ret += dup }
    return ret
  elsif second.is_a?(Array)
    ret = []
    each { |x| second.each { |y| ret << [x,y].flatten } }
    return ret
  else
    old_multiply(second)
  end
end
Also aliased as: old_multiply
**(second) click to toggle source
# File lib/rest_connection/patches.rb, line 129
def **(second)
  if second.is_a?(Integer)
    ret = dup
    (second - 1).times {
      temp = []
      ret.each { |x| each { |y| temp << [x,y].flatten } }
      ret = temp
    }
    return ret
  else
    raise TypeError.new("can't convert #{second.class} into Integer")
  end
end
deep_merge(second) click to toggle source
# File lib/rest_connection/patches.rb, line 79
def deep_merge(second)
  target = dup
  return target unless second
  unless Array === second
    raise TypeError.new("can't convert #{second.class} into #{self.class}")
  end
  second.each_index do |k|
    if second[k].is_a? Array and self[k].is_a? Array
      target[k] = target[k].deep_merge(second[k])
      next
    elsif second[k].is_a? Hash and self[k].is_a? Hash
      target[k] = target[k].deep_merge(second[k])
      next
    end
    target << second[k] unless target.include?(second[k])
  end
  target
end
deep_merge!(second) click to toggle source
# File lib/rest_connection/patches.rb, line 98
def deep_merge!(second)
  return nil unless second
  unless Array === second
    raise TypeError.new("can't convert #{second.class} into #{self.class}")
  end
  second.each_index do |k|
    if self[k].is_a?(Array) and second[k].is_a?(Array)
      self[k].deep_merge!(second[k])
    elsif self[k].is_a?(Hash) and second[k].is_a?(Hash)
      self[k].deep_merge!(second[k])
    else
      self << second[k] unless self.include?(second[k])
    end
  end
end
old_multiply(second)
Alias for: *