Nested hash / openstruct question

Hello,
I am a newbie to Ruby. I am having trouble reading the entries from
nested yaml configuration file. Any help would be highly appreciated.

YAML configuration file:

AppName: Record Center
DEV:

  • user: test
    webServers:
    webserver1: wserver1
    webserver2: wserver2
    appServers:
    appserver1: aserver3
    appserver2: aserver4
    password: blah
    QA:
  • user: test
    webServers:
    webserver1: wserver11
    webserver2: wserver22
    appServers:
    appserver1: aserver33
    appserver2: aserver44
    password: blah

My code uses hash to openstruct code
(http://www.dribin.org/dave/blog/archives/2006/11/17/hashes_to_ostruct/).
Things work fine when I read the AppName. When I try to read the user /
password or webServers or appServers entry… I am getting the following
exception.

Sorry…I hit the submit button before pasting the actual error message.
recordcentercrawler/rccrawler.rb:30: undefined method `webServers’ for
#<Array:0
x2dbc868> (NoMethodError)

Any help would be highly appreciated.

Thanks
Pugal

Pugal P wrote:

Hello,
I am a newbie to Ruby. I am having trouble reading the entries from
nested yaml configuration file. Any help would be highly appreciated.

YAML configuration file:

AppName: Record Center
DEV:

  • user: test
    webServers:
    webserver1: wserver1
    webserver2: wserver2
    appServers:
    appserver1: aserver3
    appserver2: aserver4
    password: blah
    QA:
  • user: test
    webServers:
    webserver1: wserver11
    webserver2: wserver22
    appServers:
    appserver1: aserver33
    appserver2: aserver44
    password: blah

My code uses hash to openstruct code
(Hashes to OpenStruct | Dave Dribin’s Blog).
Things work fine when I read the AppName. When I try to read the user /
password or webServers or appServers entry… I am getting the following
exception.

Hi,

At Mon, 2 Apr 2007 09:58:45 +0900,
Pugal Panneerselvam wrote in [ruby-talk:246323]:

Sorry…I hit the submit button before pasting the actual error message.
recordcentercrawler/rccrawler.rb:30: undefined method `webServers’ for
#<Array:0 x2dbc868> (NoMethodError)

Your YAML has arrays under DEV and QA.

DEV:

  • user: test

Try replacing “-” with " ".