Object.id problem

Hi yet another Soap problem

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 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

project.send(:id)

Alex A. wrote:

Hi yet another Soap problem

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

Hi Alex,

Can you tell us please, how do you make the call ? (maybe an example
will be helpful).

Thanks.

Alin.

On Jan 29, 2007, at 12:28 PM, Alex A. 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

Alin P. wrote:

Alex A. wrote:

Hi yet another Soap problem

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

Hi Alex,

Can you tell us please, how do you make the call ? (maybe an example
will be helpful).

Thanks.

Alin.

I’ve tried in 2 ways and it’s working:

1:

#!/usr/bin/ruby
require ‘soap/rpc/driver’
drv=SOAP::RPC::Driver.new(‘http://localhost:8080/axis/Ids.jws’)
drv.add_method(“id”)
puts drv.id

2:

#!/usr/bin/ruby
require ‘soap/wsdlDriver’
wsdl = “http://localhost:8080/axis/Ids.jws?wsdl
driver = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
puts driver.id

Hi guys sorry for taking so long to answer I been away form the computer
for a bit.

The following is the code that i use to call the method id:

soap_client = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
soap_client.options[“protocol.http.basic_auth”] << ['wsdl, user,
password]

@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.

Thanks for all your help

On Jan 29, 2007, at 1:50 PM, Tim H. wrote:

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.

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 2:15 PM, Dan M. wrote:

It’s safe to define your own ‘id’ method - using .id to get the object
id is deprecated.

irb(main):001:0> Object.new.id
(irb):1: warning: Object#id will be deprecated; use Object#object_id
=> 24272204
irb(main):002:0> RUBY_VERSION
=> “1.8.4”
irb(main):003:0>

Thanks!

Tom

It’s safe to define your own ‘id’ method - using .id to get the object
id is deprecated.

irb(main):001:0> Object.new.id
(irb):1: warning: Object#id will be deprecated; use Object#object_id
=> 24272204
irb(main):002:0> RUBY_VERSION
=> “1.8.4”
irb(main):003:0>

Dan M.

Tom P. wrote:

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>