yaml and ip addresses

79 views
Skip to first unread message

John Merlino

unread,
May 21, 2013, 12:27:19 PM5/21/13
to Ruby on Rails: Talk
I was using this code

url = "http://#{agent_host}:#{agent_port}/home/create_unit?"


And it worked fine in development but for my config.yml, I was
specifying localhost for agent_host. However in production, agent_host
is an actual ip address and it just wouldn't work. So I had to
explicitly put the ip address in production:

url = "http://xxx.xxx.xx.xxx/home/create_unit?"

This is what that config file had:

agent_development:
host: localhost
port: 3001
agent_production:
host: xxx.xxx.xx.xxx
port: 80
agent_staging:
host: xxx.xxx.xx.xxx
port: 80

where the x's are replaced with actual numeric values that represent
ip address.

How does the yaml interpret that ip address? As a decimal value? I'm
not sure why when I substitute it into the string interpolation, that
it doesn't in production.

Norbert Melzer

unread,
May 21, 2013, 2:06:41 PM5/21/13
to Rails Mailinglist

Use " for strings if they are ambitious, "127.0.0.1" for example.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/a2164b5e-4180-4f74-aa06-0f6ecd8ffef8%40w15g2000vbn.googlegroups.com?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Abinoam Jr.

unread,
May 21, 2013, 1:06:00 PM5/21/13
to rubyonra...@googlegroups.com
Intepreted as String. Look at my irb session (I've put 200.200.200.200
for testing purposes).

Try logging what the string looks like after interpolation.

1.9.3p429 :020 > y = <<EOF
1.9.3p429 :021"> agent_development:
1.9.3p429 :022"> host: localhost
1.9.3p429 :023"> port: 3001
1.9.3p429 :024"> agent_production:
1.9.3p429 :025"> host: 200.200.20.200
1.9.3p429 :026"> port: 80
1.9.3p429 :027"> agent_staging:
1.9.3p429 :028"> host: 200.200.200.200
1.9.3p429 :029"> port: 80
1.9.3p429 :030"> EOF
=> "agent_development:\n host: localhost\n port:
3001\nagent_production:\n host: 200.200.20.200\n port:
80\nagent_staging:\n host: 200.200.200.200\n port: 80\n"

1.9.3p429 :031 > YAML.load y
=> {"agent_development"=>{"host"=>"localhost", "port"=>3001},
"agent_production"=>{"host"=>"200.200.20.200", "port"=>80},
"agent_staging"=>{"host"=>"200.200.200.200", "port"=>80}}

tamouse mailing lists

unread,
May 22, 2013, 10:35:01 PM5/22/13
to rubyonra...@googlegroups.com
I don't think it's a YAML problem. Show us the code where you go from
your YAML configuration to instantiating agent_host and agent_port in
the url assignment:

> url = "http://#{agent_host}:#{agent_port}/home/create_unit?"

BTW, I think you'd might be better off constructing the url via the
URI library. It makes things a bit less error prone and can do nice
things like check the validity of the url syntax and such.
Reply all
Reply to author
Forward
0 new messages