A
Ara.T.Howard
check out the following:
jib:~ > cat a.rb
require 'yaml'
# yaml can load inline hashes
inline_hash = YAML::load "--- { jid: 121, metric: started, time: 2005-05-10 08:18:22.523016 }"
puts '=' * 8
y inline_hash
puts
# attempt to bludgeon to object into emitting in an inline fashion
class << inline_hash
def to_yaml(*a, &b)
'{ ' << map{|kv| kv.join(': ')}.join(', ') << ' }'
end
end
# looks good at first
puts '=' * 8
y inline_hash
puts
# but doesn't really work after all when part of another object
puts '=' * 8
y({'running' => inline_hash})
puts
jib:~ > ruby a.rb
========
---
time: 2005-05-10 08:18:22.523016
jid: 121
metric: started
========
{ time: 2005-05-10 08:18:22.523016, jid: 121, metric: started }
========
---
running:
notice the second block is alright but the third is not. i know i need to do
something like
def to_yaml(*a, &b)
YAML::quick_emit(*a, &b) do |out|
# now what?
end
end
but can't seem to find anything in the docs or samples.
cheers.
-a
--
===============================================================================
| email :: ara [dot] t [dot] howard [at] noaa [dot] gov
| phone :: 303.497.6469
| renunciation is not getting rid of the things of this world, but accepting
| that they pass away. --aitken roshi
===============================================================================
jib:~ > cat a.rb
require 'yaml'
# yaml can load inline hashes
inline_hash = YAML::load "--- { jid: 121, metric: started, time: 2005-05-10 08:18:22.523016 }"
puts '=' * 8
y inline_hash
puts
# attempt to bludgeon to object into emitting in an inline fashion
class << inline_hash
def to_yaml(*a, &b)
'{ ' << map{|kv| kv.join(': ')}.join(', ') << ' }'
end
end
# looks good at first
puts '=' * 8
y inline_hash
puts
# but doesn't really work after all when part of another object
puts '=' * 8
y({'running' => inline_hash})
puts
jib:~ > ruby a.rb
========
---
time: 2005-05-10 08:18:22.523016
jid: 121
metric: started
========
{ time: 2005-05-10 08:18:22.523016, jid: 121, metric: started }
========
---
running:
notice the second block is alright but the third is not. i know i need to do
something like
def to_yaml(*a, &b)
YAML::quick_emit(*a, &b) do |out|
# now what?
end
end
but can't seem to find anything in the docs or samples.
cheers.
-a
--
===============================================================================
| email :: ara [dot] t [dot] howard [at] noaa [dot] gov
| phone :: 303.497.6469
| renunciation is not getting rid of the things of this world, but accepting
| that they pass away. --aitken roshi
===============================================================================