class NeptuneCoffee::Util

Public Class Methods

deep_length(data) click to toggle source

returns number of hash and array elements recursively

# File lib/neptune_coffee/util.rb, line 15
def deep_length data
  case data
  when Hash  then data.length + data.inject(0) {|sum,v| sum + deep_length(v[1])}
  when Array then data.length + data.inject(0) {|sum,v| sum + deep_length(v)}
  else 0
  end
end
subdir_hash(path) click to toggle source

returns a hash of path’s subdirectories mapped to recursive calls on subdir_hash on those subdirs

# File lib/neptune_coffee/util.rb, line 6
def subdir_hash path
  result = {}
  path.children.each do |c|
    result[c] = subdir_hash c if c.directory?
  end
  result
end