[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Verify if a class exists

Bernd

7/4/2007 12:06:00 PM

Hello everybody,

is there a way to check, if a class exists? I create classes dynamically
and would like to know before, if a class with that name already exists.

Thanks for your help
Bernd

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

3 Answers

Simen

7/4/2007 12:27:00 PM

0

On 7/4/07, Bernd <burnt99@hotmail.com> wrote:
> Hello everybody,
>
> is there a way to check, if a class exists? I create classes dynamically
> and would like to know before, if a class with that name already exists.
>
> Thanks for your help
> Bernd
>
> --
> Posted via http://www.ruby-....
>
>

Try a const_get. Like so:

def class_exists?(name)
begin
true if Kernel.const_get(name)
rescue NameError
false
end
end

--
- Simen

Bernd Burnt

7/4/2007 12:37:00 PM

0

Simen Edvardsen wrote:
> On 7/4/07, Bernd <burnt99@hotmail.com> wrote:
>>
>>
>
> Try a const_get. Like so:
>
> def class_exists?(name)
> begin
> true if Kernel.const_get(name)
> rescue NameError
> false
> end
> end

Hi,
first of all, thanks for your help, Simen. I think, I even found a
better solution, I assign the name to the class with

Object.const_set class_name, klass

So I can determine, whether the class exists with

Object const_defined? class_name

You are using exception handling (rescue) for a conditional branch,
which I try to avoid whenever possible, to keep my code well structured.

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

Simen

7/4/2007 12:58:00 PM

0

On 7/4/07, Bernd Burnt <djbearhand@gmx.de> wrote:
> Simen Edvardsen wrote:
> > On 7/4/07, Bernd <burnt99@hotmail.com> wrote:
> >>
> >>
> >
> > Try a const_get. Like so:
> >
> > def class_exists?(name)
> > begin
> > true if Kernel.const_get(name)
> > rescue NameError
> > false
> > end
> > end
>
> Hi,
> first of all, thanks for your help, Simen. I think, I even found a
> better solution, I assign the name to the class with
>
> Object.const_set class_name, klass
>
> So I can determine, whether the class exists with
>
> Object const_defined? class_name
>
> You are using exception handling (rescue) for a conditional branch,
> which I try to avoid whenever possible, to keep my code well structured.
>

There is a const_defined? method? Ah, I see it's been some time since
I programmed Ruby. Excuse my ignorant advice, it seems you find a
better solution :)

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


--
- Simen