Class: Array

Inherits:
Object
  • Object
show all
Defined in:
lib/ordered_hash.rb

Overview

array extension

Instance Method Summary collapse

Instance Method Details

#can_be_a_hash?Boolean

Returns:

  • (Boolean)


205
206
207
# File 'lib/ordered_hash.rb', line 205

def can_be_a_hash?
  self.select {|e| e.class == Array and e.length == 2}.length == self.length
end

#to_hash(depth = false) ⇒ Object



209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
# File 'lib/ordered_hash.rb', line 209

def to_hash(depth = false)
  # array must have the form [[key, value], [key, value]]
  raise "Dont know how to convert array to hash (not all elements ar 2-dim arrays)" unless
    can_be_a_hash?

  new_hash = OrderedHash.new
  order = []
  self.each {|key,value|
    order << key
    if depth and value.class == Array and value.can_be_a_hash? then 
	new_hash.store(key, value.to_hash(true),false)
    else
	new_hash.store(key, value,false)
    end
  }
  new_hash.order = order
  new_hash
end