How to access something within an array

I have this array...

[#<Yahoo::GeoPlanet::Place:0x1031d3fb8 @bounding_box=[[42.554428,
1.52747], [42.536251, 1.50279]], @name="La Massana", @woe_id="472580",
@longitude=1.5153, @latitude=42.545052>]

How do I access the thing called @woe_id within it!

Whatever I try I can't seem to get at it?

···

--
Posted via http://www.ruby-forum.com/.

bingo bob wrote:

I have this array...

[#<Yahoo::GeoPlanet::Place:0x1031d3fb8 @bounding_box=[[42.554428,
1.52747], [42.536251, 1.50279]], @name="La Massana", @woe_id="472580",
@longitude=1.5153, @latitude=42.545052>]

That array contains one entry, a Yahoo::GeoPlanet::Place object.

How do I access the thing called @woe_id within it!

Whatever I try I can't seem to get at it?

Right. The @ at the beginning of the name tells you that it's an
instance variable (of the Place object). You can't directly get at an
object's instance variables from outside (except by using dangerous
tricks that I don't recommend), so check the rdoc for the Place class to
see if there's an accessor method or something that will give you the
woe_id.

Best,

···

--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/.

bingo bob wrote:

I have this array...

[#<Yahoo::GeoPlanet::Place:0x1031d3fb8 @bounding_box=[[42.554428,
1.52747], [42.536251, 1.50279]], @name="La Massana", @woe_id="472580",
@longitude=1.5153, @latitude=42.545052>]

How do I access the thing called @woe_id within it!

Whatever I try I can't seem to get at it?

You may get a hint from this:

thing = arr.first
p thing.methods - Object.methods

···

--
Posted via http://www.ruby-forum.com/.

It appears the object has a reader for woe_id (based on
http://github.com/mattt/yahoo-geoplanet/blob/6c073d969191e1f03e7d5523713f742849443d11/lib/yahoo-geoplanet/place.rb)
which would mean you could do array.first.woe_id

Of course, you'll need to consider whether the array will always have one
object, and whether you want to always pull it from that object (ie can the
array return nil? or what if it returns five of these objects, do you still
only want the woe_id of the first?)

···

On Sat, Jan 2, 2010 at 1:15 AM, bingo bob <rupert@peaklocation.com> wrote:

I have this array...

[#<Yahoo::GeoPlanet::Place:0x1031d3fb8 @bounding_box=[[42.554428,
1.52747], [42.536251, 1.50279]], @name="La Massana", @woe_id="472580",
@longitude=1.5153, @latitude=42.545052>]

How do I access the thing called @woe_id within it!

Whatever I try I can't seem to get at it?
--
Posted via http://www.ruby-forum.com/.

You should have an accessor , try : geo_planet_object.woe_id .

You can use introspection with :
geo_planet_object.instance_variable_get(:woe_id) ....

···

--
Posted via http://www.ruby-forum.com/.

Brian Candler wrote:

bingo bob wrote:

I have this array...

[#<Yahoo::GeoPlanet::Place:0x1031d3fb8 @bounding_box=[[42.554428,
1.52747], [42.536251, 1.50279]], @name="La Massana", @woe_id="472580",
@longitude=1.5153, @latitude=42.545052>]

How do I access the thing called @woe_id within it!

Whatever I try I can't seem to get at it?

You may get a hint from this:

thing = arr.first
p thing.methods - Object.methods

Good point, although that's not terribly reliable if method_missing
fakery is involved.

Best,

···

--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/.

Philippe Cantin wrote:

You should have an accessor , try : geo_planet_object.woe_id .

You can use introspection with :
geo_planet_object.instance_variable_get(:woe_id) ....

But don't. Introspection is dangerous in this case, and should not be
necessary. Just use the object's interface.

Best,

···

--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/.