class Hash

Public Instance Methods

indent(t=0, n=2) click to toggle source
# File lib/flumtter/app/core/hash.rb, line 18
def indent(t=0, n=2)
  self.map do |k,v|
    if self.nest_level == 1 || !v.is_a?(Hash)
      between = ": "
      char_len = self.keys.max_by{|key|key.size}.size + (n * t)
      k.to_s.shift(t*n).ljust(char_len) + ": " + v.to_s.nshift(char_len + between.size)
    else
      [k.to_s.shift(t*n), *v.is_a?(Hash) ? v.indent(t+1, n) : [v.to_s.shift(n*2)]].join("\n")
    end
  end.join("\n")
end
nest_level(level=0) click to toggle source
# File lib/flumtter/app/core/hash.rb, line 8
def nest_level(level=0)
  self.map do |k,v|
    if v.is_a?(Hash)
      v.nest_level(level+1)
    else
      level+1
    end
  end.max
end
requires(*args) click to toggle source
# File lib/flumtter/app/core/hash.rb, line 2
def requires(*args)
  args.each do |arg|
    raise ArgumentError, "Parameter is missing a value(#{arg})" if self[arg].nil?
  end
end