Module: Bytemapper::Flattenable
Instance Method Summary collapse
Instance Method Details
#flatten(flattened = {}, prefix = nil) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# 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 ⇒ Object
33 34 35 |
# File 'lib/bytemapper/flattenable.rb', line 33 def size flatten.values.map(&:first).reduce(:+) >> 3 end |