module Bytemapper::Flattenable

Public Instance Methods

flatten(flattened = {}, prefix = nil) click to toggle source
# File lib/bytemapper/flattenable.rb, line 19
def flatten(flattened = {}, prefix = nil)
  each do |k,v|
    k = prefix.nil? ?  k : "#{prefix}_#{k}".to_sym
    if v.is_a?(Hash)
      v.flatten(flattened, k)
    elsif v.is_a?(Bytemapper::Table)
      v.each_with_index { |e,i| e.flatten(flattened, i) }
    else
      flattened[k] = v
    end
  end
  flattened
end
size() click to toggle source
# File lib/bytemapper/flattenable.rb, line 33
def size
  flatten.values.map(&:first).reduce(:+) >> 3
end