class Hash

Public Instance Methods

shrink() click to toggle source
# File lib/rantly/shrinks.rb, line 174
def shrink
  if self.any?{|_,v| v.respond_to?(:shrinkable?) && v.shrinkable? }
    key,_ = self.detect{|_,v| v.respond_to?(:shrinkable?) && v.shrinkable? }
    clone = self.dup
    clone[key] = clone[key].shrink
    return clone
  elsif !self.empty?
    key = self.keys.first
    h2 = self.dup
    h2.delete(key)
    return h2
  else
    return self
  end
end
shrinkable?() click to toggle source
# File lib/rantly/shrinks.rb, line 190
def shrinkable?
  self.any?{|_,v| v.respond_to?(:shrinkable?) && v.shrinkable? } ||
    !self.empty?
end