[#400858] Support for multiple Inheritance by classes — Ross Konsolebox <lists@...>

Will Ruby ever support multiple inheritance through classes instead of

23 messages 2012/11/03
[#400859] Re: Support for multiple Inheritance by classes — Arlen Cuss <ar@...> 2012/11/03

I think I can say "no" with a fair amount of confidence.

[#400902] Re: Support for multiple Inheritance by classes — Ross Konsolebox <lists@...> 2012/11/04

Arlen Cuss wrote in post #1082618:

[#400904] Re: Support for multiple Inheritance by classes — Peter Hickman <peterhickman386@...> 2012/11/04

Even though other languages handle multiple inheritance without any

[#400865] why does UnboundMethod need to remember the class it was retrieved from (not merely owner)? — "Mean L." <lists@...>

class Base; def foo; end end

17 messages 2012/11/03

[#400914] login web page using mechanize — john smith <lists@...>

new to ruby, love the language. read programmatic programmers guide to

25 messages 2012/11/04

[#400985] How to merge two or more hashes in to one? — "Jermaine O." <lists@...>

Hi everyone.

14 messages 2012/11/06

[#401026] Site down watir-webdriver — ajay paswan <lists@...>

Whenever a site is down it keeps on looking for it for sometime and

14 messages 2012/11/07

[#401027] Closing popups watir-webdriver — ajay paswan <lists@...>

Sometimes popup comes when a link is clicked, sometimes popup comes when

14 messages 2012/11/07

[#401125] Complete newbie — "Carlos A." <lists@...>

Hey guys!

14 messages 2012/11/10

[#401161] Convert date to string — Ferdous ara <lists@...>

Hi

12 messages 2012/11/11

[#401173] question on watir — Raj pal <lists@...>

I am automating Idit application using Ruby, at one screen I can't feed

233 messages 2012/11/12

[#401191] Extending Array instances — Charles Hixson <charleshixsn@...>

I'm trying to figure out a good way to extend an Array, when the items

17 messages 2012/11/12
[#401195] Re: Extending Array instances — Brian Candler <lists@...> 2012/11/12

Charles Hixson wrote in post #1084111:

[#401200] Efficient way for comparing records between 2 large files (16 million records) — Ruby Student <ruby.student@...>

Team,

9 messages 2012/11/12

[#401274] following along with "Beginning Ruby." — Al Baker <lists@...>

I'm having trouble following along with some of the examples in this

15 messages 2012/11/15

[#401279] Question on exceptions — Justin Gamble <lists@...>

Hello! I have a simple bank program where I have to have an exception

16 messages 2012/11/15
[#401281] Re: Question on exceptions — Justin Gamble <lists@...> 2012/11/15

What is the reason of doing the .new(...)in

[#401295] Re: Question on exceptions — Brian Candler <lists@...> 2012/11/16

Justin Gamble wrote in post #1084635:

[#401296] Re: Question on exceptions — tamouse mailing lists <tamouse.lists@...> 2012/11/16

On Fri, Nov 16, 2012 at 1:43 AM, Brian Candler <lists@ruby-forum.com> wrote:

[#401301] Alternatives to methods for large number of nested "ifs" — Philip Rhoades <phil@...>

People,

11 messages 2012/11/16

[#401336] Advice for simple client/server application — Panagiotis Atmatzidis <atma@...>

Hello,

12 messages 2012/11/17

[#401364] Metaprogramming — "Aurimas N." <lists@...>

Hello,

12 messages 2012/11/19

[#401404] "undefined method `synchronize' for #<Mutex:0xa0f5adc>" from embedded Ruby program — Graham Menhennitt <graham@...>

I'm writing a C++ program (on Centos 5 Linux) that embeds a Ruby 1.9.3

9 messages 2012/11/21

[#401422] how to increase variable inside the while loop — Ferdous ara <lists@...>

Hi, my question might be confusing as its hard for me to make it clear,

12 messages 2012/11/21

[#401451] Arrays with records as objects — Steve Tucknott <lists@...>

I am completely new to Ruby.

11 messages 2012/11/22

[#401458] working with mysql in ruby — john smith <lists@...>

i have been trying to successfully connect ruby with mysql. there are a

17 messages 2012/11/22

[#401567] click on link not working with ie #watir-webdriver — ajay paswan <lists@...>

Greetings,

12 messages 2012/11/26

[#401578] atomic statements in multithreading — ajay paswan <lists@...>

suppose I am working in multiple thread each thread runs following

10 messages 2012/11/26

[#401607] Novice: Understanding instance 'variables' and methods — Steve Tucknott <lists@...>

A question - or comment - on instance variables.

10 messages 2012/11/26

[#401644] Getting the smallest Items of an Array — "Ismail M." <lists@...>

Hello guys,

14 messages 2012/11/27

[#401655] gem problems(sigh) — Al Baker <lists@...>

i tried to make a gem and tried to build the spec file and this is what

10 messages 2012/11/28

[#401688] sorting data from a file — "Ismail M." <lists@...>

Hey guys,

16 messages 2012/11/28

[#401706] Newbie question: (free) on-line courses? — Ken D'Ambrosio <ken@...>

Hello, all. There's a bunch of free on-line training for Javascript,

11 messages 2012/11/28

Re: Need advice- would like to implement a delayed-load proxy class

From: Gary Weaver <lists@...>
Date: 2012-11-29 10:56:59 UTC
List: ruby-talk #401745
> That part is easy, as I've done similar in my constance gem.

Sorry, I meant the classmeta gem: 
https://github.com/garysweaver/classmeta

Been thinking more about this, and although I still think it is a 
somewhat horrid idea, I thought of some tweaks:

class FlyweightProxy < BasicObject
  def initialize(const_name)
    @@name = const_name
  end

  def method_missing(meth, *args, &block)
    remove_class_variable(:@@name)
    # really load class or get instance, and then call method on it
    SomeAutoloader.get(@@name).send(meth, *args, &block)
  end
end

# this is not to be taken literally. for example, in classmeta I 
overrode the method called in Rails autoloading via alias_method'ing and 
redefining load_missing_constant, which I might have just been able to 
do via defining load_missing_constant and calling super instead, but 
don't remember if I tried that: 
https://github.com/garysweaver/classmeta/blob/master/lib/classmeta/dependencies.rb

module ModuleConstMissing
  def const_missing(const_name)
    FlyweightProxy.new(const_name)
  end
end

Module.class_eval { include ModuleConstMissing }

But, I'm not sure if that would work (need to test).

Sorry if this is way too poorly thought out. Just looking for ideas, 
mostly.

Gary Weaver wrote in post #1086999:
> I'd like to have const_missing return a class that would do the
> following:
>
> 1. Have the same class name as the class it should have loaded but
> without loading the class. Let's call this "proxy".
>
> That part is easy, as I've done similar in my constance gem. Here is
> where it starts to get more difficult:
>
> 2. Implement method missing such that when "proxy" is called it in turn
> calls another class that unloads the proxy class and then loads the
> originally requested file.
>
> Implementing method missing is easy, and removing a constant not hard
> either, but how can an unloaded class return something from method
> missing when it is gone? That wouldn't work.
>
> So then you might say "of course not, just use method missing and return
> from the proxy", but if possible I don't want to have the "proxy" class
> act as a wrapper or delegate all calls because that is additional
> overhead. Maybe it would be ok and transparent and I could mess with the
> caller stack to make it appear as if the proxy were not even there, but
> I think eventually the magic go-between wrapper would be a problem.
>
> This actually isn't an academic question- I was trying to think of a
> solution to the problem of people using names of classes rather than the
> constants in class bodies where associations, etc. are defined in Rails
> (note: this is not a Rails question, but yes that is where I'd like to
> use it). By returning a flyweight proxy class that loads and calls the
> real class as needed, they wouldn't need to use strings instead of
> classnames because const_missing would return something that didn't get
> into some sort of massive autoloading disaster that the community is
> afraid of.
>
> Sorry if this just sounds idiotic.

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

In This Thread