I want to iterate ?nodes? and ?leafs? for a yaml document:
thufir@ARRAKIS:~/projects/rss$
thufir@ARRAKIS:~/projects/rss$ ruby user.rb
user.rb:6: undefined method `[]'' for nil:NilClass (NoMethodError)
from user.rb:5:in `each_key''
from user.rb:5
thufir@ARRAKIS:~/projects/rss$
thufir@ARRAKIS:~/projects/rss$ ruby user2.rb
user2.rb:5: undefined method `[]'' for nil:NilClass (NoMethodError)
thufir@ARRAKIS:~/projects/rss$
thufir@ARRAKIS:~/projects/rss$ nl user.rb
1 require ''yaml''
2 yml = YAML::load(File.open(''user.yml''))
3 yml.each_key { |key|
4 username = yml[key][''user'']
5 password = yml[key][''pass'']
6 puts "#{username} => #{password}"
7 }
thufir@ARRAKIS:~/projects/rss$
thufir@ARRAKIS:~/projects/rss$ nl user2.rb
1 require ''yaml''
2 yml = YAML::load(File.open(''user.yml''))
3 username = yml[''juixe''][''user'']
4 puts username
thufir@ARRAKIS:~/projects/rss$
thufir@ARRAKIS:~/projects/rss$ nl user.yml
1 juixe:
2 user: juixe-user
3 pass: juixe-pass
4 techknow:
5 user: techknow-user
6 pass: techknow-pass
thufir@ARRAKIS:~/projects/rss$
thufir@ARRAKIS:~/projects/rss$
http://yaml.kwiki.org/index.cgi?YamlInFiveMinutesMinuteThree refers to
this structure as a nested map, FWIW. In either event, how would you
either iterate through the entire structure, or specify the "juixe"
map
(or node)?
thanks,
Thufir
On Oct 12, 2:03 am, Thufir <hawat.thu...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I want to iterate ?nodes? and ?leafs? for a yaml document: > thufir@ARRAKIS:~/projects/rss$ nl user.yml > 1 juixe: > 2 user: juixe-user > 3 pass: juixe-pass > > 4 techknow: > 5 user: techknow-user > 6 pass: techknow-passNot sure if Groups has eaten the formatting or not - are lines 2, 3, 5 and 6 indented? The YAML won''t work otherwise... script/console (or irb if you''re not in Rails) is helpful here; try doing a YAML.load_file(filename) there and see what you get back. --Matt Jones
On Mon, 12 Oct 2009 07:36:19 -0700, Matt Jones wrote:> Not sure if Groups has eaten the formatting or not - are lines 2, 3, 5 > and 6 indented? The YAML won''t work otherwise...I use Gmane for this list, but, yeah, things somehow get mangled. No, they weren''t indented. Works now: thufir@ARRAKIS:~/projects/rss$ thufir@ARRAKIS:~/projects/rss$ thufir@ARRAKIS:~/projects/rss$ ruby user.rb techknow-user => techknow-pass juixe-user => juixe-pass thufir@ARRAKIS:~/projects/rss$ thufir@ARRAKIS:~/projects/rss$ nl user.yml 1 juixe: 2 user: juixe-user 3 pass: juixe-pass 4 techknow: 5 user: techknow-user 6 pass: techknow-pass thufir@ARRAKIS:~/projects/rss$ thanks, Thufir