Skip to content

Instantly share code, notes, and snippets.

@mwunsch
Created April 1, 2010 14:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mwunsch/351862 to your computer and use it in GitHub Desktop.
Save mwunsch/351862 to your computer and use it in GitHub Desktop.
irb(main):005:0> m = mark.to_h
=> {:fn=>"Mark Wunsch", :title=>["Front End Engineer at Scripps Networks"], :n=>{:family_name=>["Wunsch"], :given_name=>["Mark"]}, :adr=>[{:locality=>["Greater New York City Area"]}]}
irb(main):006:0> m.to_yaml
ArgumentError: wrong number of arguments (1 for 0)
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:41:in `node_export'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:41:in `add'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:40:in `each'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
from /usr/local/lib/ruby/1.8/yaml.rb:391:in `call'
from /usr/local/lib/ruby/1.8/yaml.rb:391:in `emit'
from /usr/local/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
from (irb):6
irb(main):007:0> {:fn=>"Mark Wunsch", :title=>["Front End Engineer at Scripps Networks"], :n=>{:family_name=>["Wunsch"], :given_name=>["Mark"]}, :adr=>[{:locality=>["Greater New York City Area"]}]}.to_yaml
=> "--- \n:n: \n :family_name: \n - Wunsch\n :given_name: \n - Mark\n:title: \n- Front End Engineer at Scripps Networks\n:fn: Mark Wunsch\n:adr: \n- :locality: \n - Greater New York City Area\n"
irb -rubygems -I lib -r prism
irb(main):001:0> mark = Prism.find('http://www.linkedin.com/in/mwunsch',:hcard).first
=> {:fn=>"Mark Wunsch", :title=>["Front End Engineer at Scripps Networks"], :n=>{:family_name=>["Wunsch"], :given_name=>["Mark"]}, :adr=>[{:locality=>["Greater New York City Area"]}]}
irb(main):002:0> mark.class
=> Prism::Microformat::HCard
irb(main):003:0> m = mark.to_h
=> {:fn=>"Mark Wunsch", :title=>["Front End Engineer at Scripps Networks"], :n=>{:family_name=>["Wunsch"], :given_name=>["Mark"]}, :adr=>[{:locality=>["Greater New York City Area"]}]}
irb(main):004:0> m.class
=> Hash
irb(main):005:0> m.to_yaml
ArgumentError: wrong number of arguments (1 for 0)
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:41:in `node_export'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:41:in `add'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:41:in `to_yaml'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:40:in `each'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:40:in `to_yaml'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:39:in `map'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:39:in `to_yaml'
from /usr/local/lib/ruby/1.8/yaml.rb:391:in `call'
from /usr/local/lib/ruby/1.8/yaml.rb:391:in `emit'
from /usr/local/lib/ruby/1.8/yaml.rb:391:in `quick_emit'
from /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:38:in `to_yaml'
from (irb):5
irb(main):006:0> test_hash = {:fn=>"Mark Wunsch", :title=>["Front End Engineer at Scripps Networks"], :n=>{:family_name=>["Wunsch"], :given_name=>["Mark"]}, :adr=>[{:locality=>["Greater New York City Area"]}]}
=> {:n=>{:family_name=>["Wunsch"], :given_name=>["Mark"]}, :title=>["Front End Engineer at Scripps Networks"], :fn=>"Mark Wunsch", :adr=>[{:locality=>["Greater New York City Area"]}]}
irb(main):007:0> test_hash.to_yaml
=> "--- \n:n: \n :family_name: \n - Wunsch\n :given_name: \n - Mark\n:title: \n- Front End Engineer at Scripps Networks\n:fn: Mark Wunsch\n:adr: \n- :locality: \n - Greater New York City Area\n"
irb(main):008:0>
@jacqui
Copy link

jacqui commented Apr 1, 2010

@pengwynn
Copy link

pengwynn commented Apr 1, 2010

m.values.map(&:class)
=> [#Class:0x1023122b8, Array, String, Array]

looks like to_h isn't converting to a hash recursively down the tree. You might look at http://github.com/intridea/hashie for ideas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment