[#363639] Parsing geonames — 12 34 <rubyforum@...>

A Ruby newbie having trouble getting results back from geonames

16 messages 2010/06/02
[#363641] Re: Parsing geonames — Michael Fellinger <m.fellinger@...> 2010/06/02

On Wed, Jun 2, 2010 at 2:57 PM, 12 34 <rubyforum@web.knobby.ws> wrote:

[#363642] Re: Parsing geonames — 12 34 <rubyforum@...> 2010/06/02

Michael Fellinger wrote:

[#363646] installation issue with Ruby gems on Ubuntu 8.04 — Santosh Dvn <santoshdvn@...>

Hi I am installing ruby gems on ubuntu 8.04 .. while installing i got

14 messages 2010/06/02

[#363662] having a class method called only one time ? — unbewusst.sein@... (Une B騅ue)

I'd like having a class method called only one time ?

12 messages 2010/06/02

[#363756] comparing objects — Anderson Leite <andersonlfl@...>

How can I compare two objects and get true if some of his atributes are

48 messages 2010/06/03
[#364122] Re: comparing objects — Rein Henrichs <reinh@...> 2010/06/10

On 2010-06-10 06:59:40 -0700, Robert Dober said:

[#363764] Documenting Ruby 1.9: Ebook or Wiki? — Run Paint Run Run <runrun@...>

I'm writing a free ebook about Ruby 1.9 at http://ruby.runpaint.org/ .

17 messages 2010/06/04
[#363765] Re: Documenting Ruby 1.9: Ebook or Wiki? — Mohit Sindhwani <mo_mail@...> 2010/06/04

On 4/6/2010 11:30 AM, Run Paint Run Run wrote:

[#363775] Looking for ORM for 'legacy' database. — Dave Howell <groups.2009a@...>

I feel I should start with some pre-emptive apologies. I used to =

28 messages 2010/06/04
[#363895] Re: Looking for ORM for 'legacy' database. — Phrogz <phrogz@...> 2010/06/06

On Jun 4, 3:29=A0am, Dave Howell <groups.20...@grandfenwick.net> wrote:

[#363975] Re: Looking for ORM for 'legacy' database. — Dave Howell <groups.2009a@...> 2010/06/07

[#363883] inject method of Array class — RichardSchollar <richardgschollar@...>

I have only just started using Ruby (and am a total noob, in case this

14 messages 2010/06/06

[#363944] Complex numbers contradiction? — Andrew Duncan <andrew.duncan@...>

This looks correct:

13 messages 2010/06/07
[#363951] Re: Complex numbers contradiction? — Robert Dober <robert.dober@...> 2010/06/07

On Mon, Jun 7, 2010 at 9:01 PM, Andrew Duncan <andrew.duncan@sonos.com> wrote:

[#364010] Rubyzip - `dup': can't dup NilClass (TypeError) — Luka Stolyarov <lukich@...>

Hello. I've trying to figure out rubyzip. Here's the code I had:

11 messages 2010/06/08

[#364101] Why private #binding? — Intransition <transfire@...>

Why is #binding a private method? I end up doing a lot of this:

13 messages 2010/06/10

[#364268] State of the union for Ruby CLI libraries? — John Feminella <johnf@...>

I am starting construction on a somewhat complicated internal

18 messages 2010/06/13

[#364273] Loading a module without polluting my namespace — Hagbard Celine <sin3141592@...>

Hey folks!

20 messages 2010/06/13

[#364330] shorthand — Roger Pack <rogerpack2005@...>

I read this once:

14 messages 2010/06/14

[#364342] Placement of require() and missing symbols — Eric MSP Veith <eveith@...>

-----BEGIN PGP SIGNED MESSAGE-----

16 messages 2010/06/15
[#364365] Re: Placement of require() and missing symbols — Kirk Haines <wyhaines@...> 2010/06/15

On Mon, Jun 14, 2010 at 7:18 PM, Eric MSP Veith

[#364371] datamapper blues — Martin DeMello <martindemello@...>

I'm investigating the use of DataMapper to convert an old project with

14 messages 2010/06/15

[#364402] Getting rid of self — Ralph Shnelvar <ralphs@...32.com>

22 messages 2010/06/16
[#364440] Re: Getting rid of self — Josh Cheek <josh.cheek@...> 2010/06/16

On Wed, Jun 16, 2010 at 4:31 AM, Ralph Shnelvar <ralphs@dos32.com> wrote:

[#364415] Android apps using ruby — Lakshmanan Muthukrishnan <lakshmanan@...>

Hi,

16 messages 2010/06/16
[#364439] Re: Android apps using ruby — Andrew Kaspick <akaspick@...> 2010/06/16

Lakshmanan Muthukrishnan wrote:

[#364479] Re: Android apps using ruby — Lakshmanan Muthukrishnan <lakshmanan@...> 2010/06/17

Andrew Kaspick wrote:

[#364496] nothing new in ruby_core for four days ? — Michel Demazure <michel@...>

The Ruby Core forum has no new entry since four days ago.

15 messages 2010/06/17
[#364498] Re: nothing new in ruby_core for four days ? — Brian Candler <b.candler@...> 2010/06/17

Michel Demazure wrote:

[#364529] Dear gem: still no zlib. — Dave Howell <groups.2009a@...>

I really really regret ever installing SnowLeopard.=20

16 messages 2010/06/17

[#364580] String comparison. Why does Ruby consider this true? — Abder-rahman Ali <abder.rahman.ali@...>

When I try for example to compare the following strings in Ruby, I get

13 messages 2010/06/18
[#364584] Re: String comparison. Why does Ruby consider this true? — Josh Cheek <josh.cheek@...> 2010/06/18

On Fri, Jun 18, 2010 at 12:46 PM, Abder-rahman Ali <

[#364628] Random Points within a Circle (#234) — Daniel Moore <yahivin@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

21 messages 2010/06/19
[#364696] Re: [QUIZ] Random Points within a Circle (#234) — Caleb Clausen <vikkous@...> 2010/06/21

On 6/19/10, Daniel Moore <yahivin@gmail.com> wrote:

[#364641] Namespacing a class — Eric MSP Veith <eveith@...>

-----BEGIN PGP SIGNED MESSAGE-----

18 messages 2010/06/20

[#364815] Count substrings in string, scan too slow — Danny Challis <dannychallis@...>

Hello everyone,

18 messages 2010/06/24
[#364817] Re: Count substrings in string, scan too slow — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/06/24

On Thu, Jun 24, 2010 at 5:04 PM, Danny Challis <dannychallis@gmail.com> wro=

[#364825] Re: Count substrings in string, scan too slow — Robert Klemme <shortcutter@...> 2010/06/24

2010/6/24 Jes=FAs Gabriel y Gal=E1n <jgabrielygalan@gmail.com>:

[#364850] Happy Intransition Day! — Ryan Davis <ryand-ruby@...>

Happy Intransition Day!

23 messages 2010/06/24

[#364930] Ruby in JavaScript, all projects are dead? — Alexey Petrushin <axyd80@...>

Hello, recently I've examined some of the projects that trying to bring

18 messages 2010/06/27

[#364988] Reading String Data as a File — Doug Jolley <ddjolley@...>

I use Net::HTTP to collect some data as a string. I now need to pass

25 messages 2010/06/29
[#364989] Re: Reading String Data as a File — Ryan Davis <ryand-ruby@...> 2010/06/29

[#364996] Re: Reading String Data as a File — Brian Candler <b.candler@...> 2010/06/29

Ryan Davis wrote:

[#365016] Re: Reading String Data as a File — Doug Jolley <ddjolley@...> 2010/06/29

> If it takes only a pathname argument, then you're

[#365024] Re: Reading String Data as a File — Tony Arcieri <tony.arcieri@...> 2010/06/29

On Tue, Jun 29, 2010 at 11:50 AM, Doug Jolley <ddjolley@gmail.com> wrote:

[#365036] Re: Reading String Data as a File — Robert Klemme <shortcutter@...> 2010/06/30

2010/6/29 Tony Arcieri <tony.arcieri@medioh.com>:

[#365049] Re: Reading String Data as a File — Brian Candler <b.candler@...> 2010/06/30

Robert Klemme wrote:

[#365039] pathname.rb:270: warning: `*' interpreted as argument prefix — "R.. Kumar 1.9.1 OSX" <sentinel1879@...>

/opt/local/lib/ruby1.9/1.9.1/pathname.rb:270: warning: `*' interpreted

12 messages 2010/06/30
[#365048] Re: pathname.rb:270: warning: `*' interpreted as argument prefix — Josh Cheek <josh.cheek@...> 2010/06/30

On Wed, Jun 30, 2010 at 6:11 AM, R.. Kumar 1.9.1 OSX <sentinel1879@gmail.com

Re: Namespacing a class

From: Robert Klemme <shortcutter@...>
Date: 2010-06-24 10:48:17 UTC
List: ruby-talk #364807
2010/6/24 Caleb Clausen <vikkous@gmail.com>:
> On 6/22/10, J=C3=B6rg W Mittag <JoergWMittag+Ruby@googlemail.com> wrote:
>> Gary Wright wrote:
>>> On Jun 21, 2010, at 3:35 PM, J=C3=B6rg W Mittag wrote:
>>>> Eric MSP Veith wrote:
>>>>> Modules are used for mixins. Is it possible -- and does it make sense=
 at
>>>>> all
>>>>> - -- to mixin a class into another class? I guess not?
>>>> Actually, to add a bit to Brian's answer: it *is* possible and makes
>>>> perfect sense. It's just not allowed in Ruby, but it *is* allowed in
>>>> other languages.
>>> Allowing classes to mixin other classes would change the class
>>> hierarchy from a tree to a directed acyclic graph. =C2=A0As soon as you
>>> do that you have to figure out how to manage the method lookup
>>> process along multiple paths. I don't think there is any sort of
>>> consensus on how to do that (i.e. different languages take
>>> different approaches) and so I'm not sure 'makes perfect sense' is
>>> an accurate characterization of the solution space for that
>>> problem.
>>
>> You can take the algorithm Ruby uses for mixins and simply substitute
>> classes for modules and it would work exactly the way it does today,
>> including the linearization property.
>>
>> The way mixins work in Ruby is (roughly) as follows (assume that we
>> want to mix =E2=9F=A6M=E2=9F=A7 into a class =E2=9F=A6C=E2=9F=A7, ignore=
 for a moment the case of
>> mixing a mixin into another mixin):
>>
>> 1. create an anonymous class =E2=9F=A6I=E2=9F=A7
>> 2. set =E2=9F=A6I=E2=9F=A7's method table pointer to =E2=9F=A6M=E2=9F=A7=
's method table
>> 3. set =E2=9F=A6I=E2=9F=A7's superclass to the =E2=9F=A6C=E2=9F=A7's sin=
gleton class's superclass
>> 4. set =E2=9F=A6C=E2=9F=A7's singleton class's superclass to =E2=9F=A6I=
=E2=9F=A7
>>
>> In other words: create an anonymous class with the same methods but a
>> different identity as the mixin and insert it in the ancestor chain
>> directly above the singleton class.
>>
>> There's really no need here for =E2=9F=A6M=E2=9F=A7 to be a module, it c=
ould just as
>> well be a class. The linearization property depends on the fact that
>> mixin inclusion is done via a freshly minted anonymous class which has
>> no ancestors or descendants of its own: the include class =E2=9F=A6I=E2=
=9F=A7 *only*
>> gets the methods from the mixin, it does not get its place in the
>> inheritance hierarchy. Whether the method table that =E2=9F=A6I=E2=9F=A7=
 points to
>> used to belong to a module or a class is really irrelevant. It's just
>> a bag of methods.
>>
>> The case of mixing in a mixin into another mixin is also handled
>> similar to the way it is today: currently, when you mix a module into
>> a module, it gets inserted above the module like it would above a
>> class. And then, when you mix a module =E2=9F=A6M=E2=9F=A7 into a *class=
*, Ruby not
>> only constructs an include class for the =E2=9F=A6M=E2=9F=A7's method ta=
ble, but
>> recursively also for all modules mixed into =E2=9F=A6M=E2=9F=A7. Note th=
at this means
>> that this mixin chain is only walked *once*, when you include =E2=9F=A6M=
=E2=9F=A7 into
>> the class. If you later mix other modules into =E2=9F=A6M=E2=9F=A7, thei=
r methods will
>> *not* be available to instances of the class.
>>
>> Again, it would be possible to do just the same thing with classes
>> instead of modules: walk the chain of include classes and simply clone
>> them, then inject them into the ancestors chain like above.
>>
>> That's what I meant by "makes perfect sense": you can take the exact
>> same algorithm that Ruby currently uses for module inclusion and use
>> it for class inclusion with the exact same results.
>
> What you describe might work well enough for pure-ruby classes, but if
> you tried to mix a core class (Array, String) into another class, the
> result would be segfaults. Maybe the same would be true of any class
> implemented in C? Not sure.

I believe the more important point is that - although classes and
modules have only few differences (inheritance, instance creation) -
they are deliberately kept separate because they are language
artifacts intended to model different concepts (entities vs.
behavior).  Even if it is technically possible to mix in classes the
same way as modules (and I believe J=C3=B6rg's assessment is correct here)
it probably does not make much sense to allow this from a conceptual
point of view.

Kind regards

robert

--=20
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

In This Thread