Skip to content

Instantly share code, notes, and snippets.

@forforf
Created May 6, 2009 20:42
Show Gist options
  • Save forforf/107729 to your computer and use it in GitHub Desktop.
Save forforf/107729 to your computer and use it in GitHub Desktop.
Ostruct
require 'ostruct'
class MyOpenStruct < OpenStruct
def _to_hash
h = @table
#handles nested structures
h.each do |k,v|
if v.class == MyOpenStruct
h[k] = v._to_hash
end
end
return h
end
def _table
@table #table is the hash structure used in OpenStruct
end
def _manual_set(hash)
if hash && (hash.class == Hash)
for k,v in hash
@table[k.to_sym] = v
new_ostruct_member(k)
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment