How to serialize hash to a file?

i have an xml file that goes like;

at some point i need the look up the data type for different
attributes.
I can get the data type using a Xpath query in the form using REXML

node = $fom_file.elements["//attribute [@name = ‘#{attribute_name}’]"]

it works okay, the thing is ,it takes ages (which is about ten
seconds)

so I have a mind to cache the attribute-datatype pairs in a hash for
faster lookup.
So can you guys tell me a simple and elegant way to do serialize
deserialize that hash to a file?
TIA
Hurcan Solter

hurcan solter wrote:

Hurcan Solter
Pretty easy…

h = {1=>2, 3=>4}
File.open(“foo”, “wb”) {|f| Marshal.dump(h, f)}
p File.open(“foo”, “rb”) {|f| Marshal.load(f)} # ==> {1=>2, 3=>4}

On 20.05.2008 07:46, hurcan solter wrote:

Hurcan Solter
irb(main):012:0> hash={1=>2}
=> {1=>2}
irb(main):013:0> hash.object_id
=> 1073423700
irb(main):014:0> File.open(“foo”, “wb”) {|io| Marshal.dump(hash, io)}
=> #<File:foo (closed)>
irb(main):015:0> hash = File.open(“foo”, “rb”) {|io| Marshal.load(io)}
=> {1=>2}
irb(main):016:0> hash.object_id
=> 134268870

Kind regards

robert

2008/5/20 Joel VanderWerf [email protected]:

attributes.
deserialize that hash to a file?
TIA
Hurcan Solter

Pretty easy…

h = {1=>2, 3=>4}
File.open(“foo”, “wb”) {|f| Marshal.dump(h, f)}
p File.open(“foo”, “rb”) {|f| Marshal.load(f)} # ==> {1=>2, 3=>4}

Amazing how we nearly picked the same solution - even the file name is
identical. :slight_smile:

Cheers

robert

Robert K. wrote:

2008/5/20 Joel VanderWerf [email protected]:

h = {1=>2, 3=>4}
File.open(“foo”, “wb”) {|f| Marshal.dump(h, f)}
p File.open(“foo”, “rb”) {|f| Marshal.load(f)} # ==> {1=>2, 3=>4}

Amazing how we nearly picked the same solution - even the file name is
identical. :slight_smile:

Heh. Maybe we’ve just been here too long, and our brains have been
saturated :wink:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs