class Hash

Public Instance Methods

remove_references!(obj) click to toggle source
# File lib/plumbus/helpers/remove_references.rb, line 2
def remove_references! obj
  self.select{|k, v| [Array, Hash].include? v.class}.each do |k, v|
    v.remove_references! obj
  end
  self.select{|k, v| not [Array, Hash].include? v.class}.each do |k, v|
    if v == obj
      self.delete(k)
    end
  end

  self
end
trim!() click to toggle source

Removes all sub-hashes & arrays that have no objects in them.

# File lib/plumbus/helpers/trim.rb, line 3
def trim!
  self.each do |k, v|
    if v.class == Array

      v.trim!

      #Blank array, dump it
      if v.count == 0
        self.delete k
      end
    elsif v.class == Hash
      v.trim!

      if v.keys.count == 0
        self.delete k
      end
    end
  end

  return self
end