[#1649] Re: New Ruby projects — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1672] Re: Ruby 1.4 stable manual bug? — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1673] Re: Possible problem with ext/socket in 1.5.2 — itojun@...
[#1694] Conventions for our Ruby book — Dave Thomas <Dave@...>
[#1715] Install postgresql support — Ikhlasul Amal <amal@...>
Hi all,
Hi,
[#1786] Is this a bug? — Clemens Hintze <clemens.hintze@...>
(mailed & posted)
[#1814] Objects nested sometimes. — Hugh Sasse Staff Elec Eng <hgs@...>
I am attemptiong to write a package which consists of a workspace
[#1816] Ruby 1.5.3 under Tru64 (Alpha)? — Clemens Hintze <clemens.hintze@...>
Hi all,
Hi,
Yukihiro Matsumoto writes:
Hi,
Hi,
[#1834] enum examples? — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone any examplse of using the Enumerable module? I've had a
[#1844] Minor irritation, can't figure out how to patch it though! — Hugh Sasse Staff Elec Eng <hgs@...>
I was considering how difficult it would be to patch Ruby to accept
[#1889] [ruby-1.5.3] require / SAFE — ts <decoux@...>
[#1896] Ruby Syntax similar to other languages? — "David Douthitt" <DDouthitt@...>
From: Yukihiro Matsumoto <matz@netlab.co.jp>
[#1900] Enumerations and all that. — Hugh Sasse Staff Elec Eng <hgs@...>
Thank you to the people who responded to my questions about Enumerated
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
On 16 Mar 2000, Dave Thomas wrote:
[#1929] Re: Class Variables — "David Douthitt" <DDouthitt@...>
| "David Douthitt" <DDouthitt@cuna.com> writes:
[#1942] no Fixnum#new ? — Quinn Dunkan <quinn@...>
Ok, I can add methods to a built-in class well enough (yes I know about succ,
[#1989] English Ruby/Gtk Tutorial? — schneik@...
Hi,
[#2022] rb_global_entry — ts <decoux@...>
[#2036] Anonymous and Singleton Classes — B_DAVISON <Bob.Davison@...>
I am a Ruby newbie and having some problems getting my mind around certain
[#2069] Ruby/GTK+ question about imlib --> gdk-pixbug — schneik@...
[#2073] Re: eval.rb fails — "Dat Nguyen" <thucdat@...>
The doc is fine, this happens only if you try to execute 'until' block
On Wed, 22 Mar 2000, Dat Nguyen wrote:
[#2084] Scope violated by import via 'require'? — Clemens Hintze <c.hintze@...>
Hi,
[#2104] ARGF or $< — Hugh Sasse Staff Elec Eng <hgs@...>
Has anyone any examples of how to use ARGF or $< as I cannot find much
Hi.
[#2165] Ruby strict mode and stand-alone executables. — "Conrad Schneiker" <schneiker@...>
Some people want Ruby to have a strict compile mode.
[#2203] Re: parse bug in 1.5 — schneik@...
[#2212] Re: Ruby/Glade usage questions. — ts <decoux@...>
>>>>> "m" == mrilu <mrilu@ale.cx> writes:
[#2241] setter() for local variables — ts <decoux@...>
[#2256] Multiple assignment of pattern match results. — schneik@...
[#2267] Re: Ruby and Eiffel — h.fulton@...
[#2309] Question about attribute writers — Dave Thomas <Dave@...>
Clemens Hintze <c.hintze@gmx.net> writes:
[ruby-talk:02227] A few questions
Andrew Hunt writes:
>
> Hi all,
Hi Andy,
>
> A couple of questions have come up that I need some input on. These
> may get kind of low-level, so hang on...
>
> 1. ... Does an extension module have to be in this file to be built
> (it would appear not)?
No it has not to be in this file. Simple add an directory to 'ext' and
create a MANIFEST file for that extension within its directory. Then
it will be build automagically during the next make run.
I would propose, that you also describe how to build and install
extensions if they would *not* be in Ruby's ext dir. Sorry if you have
already thought of this...
> 2. What's the difference between funcall2 and funcall3?
It has something to do, how methods are searched in the parent classes
or what to do if they wasn't find there, AFAIK. But I do not know any
specific. So better let this be answered by others... !
>
> 3. Is Struct still used, or is it deprecated? If it's still used, how is
> it different from Data (Data_Wrap_Struct, etc.)
AFAIK, Struct is a normal class in Ruby that allows you to simulate C
struct like datatypes. That means a Struct instance do not represent a
C struct, but allow to encapsulate some member to group them together.
You could also use a class here, but using Struct is more comfortable,
as you have not to deal with the class creation overhead (syntactically).
For example (from the manual):
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5) # or fred = Struct::Dog::new("fred", 5)
fred.age = 6
printf "name:%s age:%d", fred.name, fred.age
without using Struct instances you would have to use:
class Dog
attr :name, true
attr :age, true
def initialize(*args)
@name, @age = args
end
end
fred = Dog.new("fred", 5)
fred.age = 6
printf "name:%s age:%d", fred.name, fred.age
The Data class, however, is more for internal use -- means: used in
extensions. Instances of it will be used to wrap a C pointer (mostly
pointing to a struct). It also contains an information to which class
it should belongs to; that means instances of Data often fake to be
instances of other self-written classes. For example (from
ext/dgm/dbm.c):
struct dbmdata {
int di_size;
DBM *di_dbm;
};
static VALUE
fdbm_s_open(argc, argv, klass)
int argc;
VALUE *argv;
VALUE klass;
{
struct dbmdata *dbmp;
VALUE obj;
:
obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);
dbmp->di_dbm = dbm;
dbmp->di_size = -1;
return obj;
}
Here an instance of class Data will be created. This instance is
wrapping a pointer to an allocated dbmdata struct. Furthermore this
Data instance will fake itself to be a DBM instance! So ruby thinks it
is dealing with a DBM instance instead of a Data instance.
All understandings removed? ... ;-))))
>
> Thanks!
>
> /\ndy
It is my pleasure! :-)
\cle
--
Clemens Hintze mailto: c.hintze@gmx.net