I've run into the same problem. My conclusion is that 'id' is effectively a reserved method name in Ruby, and you simply need to avoid creating your own 'id' method. I just don't see how a custom 'id' method could possibly avoid interfering with Object#id.
Tom
···
On Jan 29, 2007, at 12:28 PM, Alex Amat wrote:
I have a web service with a method called {}id however when i call this
method project.id it returns the Object id instead of calling the method
id.
I have a web service with a method called {}id however when i call this
method project.id it returns the Object id instead of calling the method
id.
Any ideas on how to call the method id
I've run into the same problem. My conclusion is that 'id' is effectively a reserved method name in Ruby, and you simply need to avoid creating your own 'id' method. I just don't see how a custom 'id' method could possibly avoid interfering with Object#id.
Tom
Use __id__ instead of just id.
C:\temp>irb
irb(main):001:0> class Foo
irb(main):002:1> def id
irb(main):003:2> return "HELLO"
irb(main):004:2> end
irb(main):005:1> end
=> nil
irb(main):006:0> f = Foo.new
=> #<Foo:0x2939490>
irb(main):007:0> f.id
=> "HELLO"
irb(main):008:0> f.__id__
=> 21613128
irb(main):009:0>
@projects = soap_client.getProjects()
for project in @projects
puts project.id
end
and that gives me the Object#id not the 'project id' which is what I
need, if I could i would rewrite the method and call it getId but I did
not write it and I don't have access to it anyway.
My concern was that other parts of the Ruby infrastructure would depend on the 'id' method to be Object#id. Is Object#id really just an alias for Object#__id__ , and so it's safe to redefine it?
Thanks,
Tom
···
On Jan 29, 2007, at 1:50 PM, Tim Hunter wrote:
Tom Pollard wrote:
On Jan 29, 2007, at 12:28 PM, Alex Amat wrote:
I have a web service with a method called {}id however when i call this
method project.id it returns the Object id instead of calling the method
id.
Any ideas on how to call the method id
I've run into the same problem. My conclusion is that 'id' is effectively a reserved method name in Ruby, and you simply need to avoid creating your own 'id' method. I just don't see how a custom 'id' method could possibly avoid interfering with Object#id.
Tom