[#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

Instance-variable-like user API

From: Garthy D <garthy_lmkltybr@...>
Date: 2012-11-22 07:17:03 UTC
List: ruby-talk #401434
Hi everyone. :)

I was wondering if anyone can suggest a better solution to a problem I 
am trying to solve than one I have come up with. I am trying to create a 
friendly user-facing API for accessing custom remote variables.

To explain, consider the following simple class and code:

    ---===<<< SNIP >>>===---

class A <SomeBase
   def initialize
     @v = 1
   end

   def inc
     @v = @v + 1
   end

   def magic
     dosomething(@v)
   end

   attr_accessor :v
end

a = A.new
a.inc
a.magic

    ---===<<< SNIP >>>===---

Here we have a variable @v that is available for use in each instance of 
the class A. We modify it in the instance, and outside of it.

I would like something similar in a user-facing API, where the user can 
create a variable v that they can read from and write to, but the catch 
is that "v" itself is actually stored remotely in persistent storage. 
Each read requests the value from the server, and each write sends it. 
The user will define their own variables (such as "v"), and in 
presenting the API I won't know these in advance. Don't worry about the 
storage aspects, networking, serialisation, and cache issues, these are 
all written and finished. I'm just trying to provide a nice interface to 
the code I've already written such that the user can almost ignore the 
fact that they are stored remotely.

I've written my own "magic_accessor" call to add in a "foo" and "foo=" 
method for each variable "foo" (much like attr_accessor), for the user 
to use. In this case, we're just using "v", which generates the "v" and 
"v=" methods when I use it. This changes the above code to the following.

    ---===<<< SNIP >>>===---

class A <SomeBase
   def initialize
     self.v = 1
   end

   def inc
     self.v = v + 1
   end

   def magic
     dosomething(v)
   end

   magic_accessor :v
end

a = A.new
a.inc
a.magic

    ---===<<< SNIP >>>===---

What I don't like with the above is that whenever I set v, I have to be 
careful to use "self.v = <value>", rather than "v = <value>" when I 
perform assignment, because the latter will just create a local variable 
and not call the "v=" method I've created. It's fine when called 
externally on the object, but any internal writes need a "self." prefix. 
I'm not keen on expecting the user to do this each time, when using "@v" 
equivalent is so much easier to use.

Is there a better way to implement this, such that the user can write 
code similarly to the listing at the top? Is there some syntactic sugar 
I am unaware of that can be used instead of "self.foo"? The goal is to 
make the user API for this nice and simple- I don't mind if I have to 
mess about to make it happen, and I've already got a custom 
"method_missing", and adding code to that is no issue.

Cheers,
Garthy

In This Thread

Prev Next