[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Newbie problem of Class attributes

Dipesh Batheja

10/10/2006 9:18:00 PM

I am trying to create a class level attribute which can read and write.
I am doing something like this:

def self.selected_client
-- my code --
end

def self.selected_client=(value)
-- my code --
end

but its seems that the Ruby interpreter is not liking this. Can someone
tell me how to create class level attributes that can read and write.

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

7 Answers

Tim Pease

10/10/2006 9:24:00 PM

0

On 10/10/06, Dipesh Batheja <dipesh_batheja@yahoo.com> wrote:
> I am trying to create a class level attribute which can read and write.
> I am doing something like this:
>
> def self.selected_client
> -- my code --
> end
>
> def self.selected_client=(value)
> -- my code --
> end
>
> but its seems that the Ruby interpreter is not liking this. Can someone
> tell me how to create class level attributes that can read and write.
>
> --
> Posted via http://www.ruby-....
>
>

class A
def self.var() @@var end
defl self.var=(v) @@var = v end
end

A.var = 1
A.var


If you try to access a class variable before it is set, the
interpreter will throw a NameError at you.

Blessings,
TwP

Morton Goldberg

10/10/2006 9:56:00 PM

0

On Oct 10, 2006, at 5:18 PM, Dipesh Batheja wrote:

> I am trying to create a class level attribute which can read and
> write.
> I am doing something like this:
>
> def self.selected_client
> -- my code --
> end
>
> def self.selected_client=(value)
> -- my code --
> end
>
> but its seems that the Ruby interpreter is not liking this. Can
> someone
> tell me how to create class level attributes that can read and write.

<code>
#! /usr/bin/env ruby -w

class A
class << self
attr_accessor :foo
end
end

A.foo = 'bar'
A.foo # => "bar"
</code>

Regards, Morton



Mait

10/10/2006 10:18:00 PM

0



On Oct 11, 6:56 am, Morton Goldberg <m_goldb...@ameritech.net> wrote:
> On Oct 10, 2006, at 5:18 PM, Dipesh Batheja wrote:
>
> > I am trying to create a class level attribute which can read and
> > write.
> > I am doing something like this:
>
> > def self.selected_client
> > -- my code --
> > end
>
> > def self.selected_client=(value)
> > -- my code --
> > end
>
> > but its seems that the Ruby interpreter is not liking this. Can
> > someone
> > tell me how to create class level attributes that can read and write.<code>
> #! /usr/bin/env ruby -w
>
> class A
> class << self
> attr_accessor :foo
> end
> end
>
> A.foo = 'bar'
> A.foo # => "bar"
> </code>
>
> Regards, Morton

What means 'class << self' ? I don't understand...

Plz anyone let me know secret ; )

Thanks.

Tim Pease

10/10/2006 10:29:00 PM

0

On 10/10/06, Mait <mattengi@gmail.com> wrote:
>
> What means 'class << self' ? I don't understand...
>
> Plz anyone let me know secret ; )
>
> Thanks.
>

The 'class << self' notation gives you access to the Singleton class
for the object 'self'.

There is a great explanation on the RubyGarden wiki page ...

http://wiki.rubygarden.org/Ruby/page/show/Singlet...

It is much better than my on line explanation.

Blessings,
TwP

Mait

10/10/2006 10:55:00 PM

0



On Oct 11, 7:28 am, "Tim Pease" <tim.pe...@gmail.com> wrote:
> On 10/10/06, Mait <matte...@gmail.com> wrote:
>
>
>
> > What means 'class << self' ? I don't understand...
>
> > Plz anyone let me know secret ; )
>
> > Thanks.The 'class << self' notation gives you access to the Singleton class
> for the object 'self'.
>
> There is a great explanation on the RubyGarden wiki page ...
>
> http://wiki.rubygarden.org/Ruby/page/show/Singlet...
>
> It is much better than my on line explanation.
>
> Blessings,
> TwP

Thanks Tim,

Justin Chan

10/11/2006 12:13:00 AM

0

I've been trying to programmatically issue MSN Searches and processing
the results. I'm having a hell of a time doing it and was wondering
whether anyone had some coding or debugging advice.

First, I tried wsdl2ruby to generate some classes to work with, but it
pukes:

C:\temp>wsdl2ruby.rb --wsdl
http://soap.search.msn.com/webservices... --type client --force
ignored element: {http://www.w3.org/2001...}list
ignored attr: {}default
ignored attr: {http://schemas.xmlsoap.org/ws/2004/08/...}Action
I, [2006-10-10T16:36:52.259000 #2608] INFO -- app: Creating class
definition.
W, [2006-10-10T16:36:52.259000 #2608] WARN -- app: File 'default.rb'
exists but overrides it.
F, [2006-10-10T16:36:52.275000 #2608] FATAL -- app: Detected an
exception. Stopping ... incomplete simpleType (ArgumentError)
C:/program files/ruby/lib/ruby/1.8/wsdl/xmlSchema/simpleType.rb:33:in
`base'
C:/program files/ruby/lib/ruby/1.8/wsdl/soap/classDefCreator.rb:217:in
[snip]

(BTW, wsdl2ruby works with http://api.google.com/GoogleS....)

Second, I tried this code:

require 'soap/wsdlDriver'
wsdl_url = 'http://soap.search.msn.com/webservices...'
soap = SOAP::WSDLDriverFactory.new( wsdl_url ).create_rpc_driver

msn_params = { 'AppID' => '1064081Cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'Query' => 'ruby programming language',
'CultureInfo' => 'en-US',
'SafeSearch' => 'Strict',
'Flags' => 'None',
'Requests' => {
'SourceRequest' => {
'Source' => 'Web',
'Offset' => 0,
'Count' => 10,
'ResultFields' => 'All'
}
}
}

soap.search(:Request => msn_params)

And got this:

irb(main):020:0* soap.search(:Request => msn_params)
ArgumentError: incomplete simpleType from c:/Program F
iles/ruby/lib/ruby/1.8/wsdl/xmlSchema/simpleType.rb:25:in
`check_lexical_fo
rmat'
from c:/Program
Files/ruby/lib/ruby/1.8/soap/mapping/wsdlliteralregistry.rb:113:in
`simpleob
j2soap'
[snip]

Note: the Python equivalent of this code works just fine, so I think it
has something to do with the way Ruby is processing SOAP.

Third, I tried to do it without SOAP:

require 'rubygems'
require 'open-uri'
require 'rubyful_soup'
url =
"http://search.live.com/results.aspx?q=ruby+programming+language&a...
us&FORM=LVSP&go.x=0&go.y=0&go=Search"
page = open(url)
page_content = page.read
soup = BeautifulSoup.new(page_content)

and I get this:

irb(main):007:0> soup = BeautifulSoup.new(page_content)
ArgumentError: invalid value for Integer: "0183"
from c:/Program
Files/ruby/lib/ruby/gems/1.8/gems/htmltools-1.10/lib/html/sgml-parser.rb
:335
:in `Integer'
from c:/Program
Files/ruby/lib/ruby/gems/1.8/gems/htmltools-1.10/lib/html/sgml-parser.rb
:335
:in `handle_charref'
from c:/Program
Files/ruby/lib/ruby/gems/1.8/gems/htmltools-1.10/lib/html/sgml-parser.rb
:159
:in `goahead'

My next step is do to HTree/REXML, but I'd much rather use SOAP or
BeautifulSoup to do this. Anyone got ideas?

dblack

10/11/2006 1:16:00 AM

0