[#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: Missing Something

From: Jes俍 Gabriel y Gal疣 <jgabrielygalan@...>
Date: 2012-11-19 19:08:23 UTC
List: ruby-talk #401379
On Mon, Nov 19, 2012 at 7:26 PM, Ron S. <lists@ruby-forum.com> wrote:
> Jesus -
>
> You know exactly what I am getting at. Thank you for the reply. I will
> keep slogging away and hoping it gets easier. I am glad to have
> confirmation for what I suspected: That it is possible for a program to
> organically develop out of a linear sort of stack-oriented approach. I
> still don't see the advantage to bundling methods with objects.

Some interesting concepts about object orientation are among other
encapsulation and reusability.
If you build an object with a clean interface, the clients of the
object can forget about the internal implementation.
The advantages of this is that everything from the outside is easier,
and you are free to change the implementation without the external
code noticing (or failing).

When you have these objects with a defined behaviour and a clean
interface, they can be reused in scenarios that not even you
anticipated when you created them, and this is huge.

You should also read about the SOLID design principles and clean code,
which can be summarized with: a good design is one that is easy to
change.

Tomorrow, when you have to change some logic in your code or add some
behaviour, you would prefer that everything is in a single place, in
the *expected* place. You use a class, extend it or whatever in a
simple way and "magically" you have changed your software. All or most
of the SOLID principles involve removing duplication: when you have
the same code in two different places, the risks are huge. If you need
to change that piece of logic, you might forget one of the two (or
many) places, leading to bugs. Objects help with this thanks to the
encapsulation and reusability they provide.

> I guess
> I still think Commodore 64 style! I don't see why I shouldn't keep
> methods and objects separate is what I am saying. Methods as functions
> and objects as collections of arrays.

If the functions operate over a set of data, it's better to have them
bundled with the data as a unit, it's easier to reason about it,
change implementation, extract common behaviour with other parts of
the code, etc, etc.

> I am always doing things the hard way, knowing there is an easier way,
> but not quite knowing what the easier way is.

Well, don't despair. These things take experience. It's important to
read about this topics, and to see other's code. A book that I liked a
lot was Clean Code from Robert C. Martin.

> I'll answer a few of your questions, if you're curious...
>
>> @w = WaveFile.new(1, 44100, 16) # don't know what these numbers mean
>
> 1 - means "mono" or one channel.
> 44100 - is 44,100 frames per second (that's the rate of a Compact Disc)
> 16 - is for 16 bit.
>
> A .wav file is like a bitmap, it's uncompressed. So they're HUGE.
> Basically, the file tells a speaker where to be 44,100 times a second to
> an accuracy of 16 bits. The resting position of the speaker is 0. Fully
> out is 32768 and fully in is 32767. A speaker is basically an air pump.
>
> That's it. Sound is really simple.

Yep, sounds simple (pun intended)

>> Later, for processing, you might have several different processing
>> algorithms (I have absolutely no clue about sound processing). You can
>> create a class for each processing:
>
> That's where things are slightly difficult. It is hard to distinguish
> between what is processing, what is filtering and what is generating.
> It's all arbitrary, actually. The great thing about doing this in
> software is that it's all just moving numbers around. No wires, no
> circuit boards, no keys, nothing. It's very pure in a way. So, one is
> always torn between what makes sense in the abstract, and what is
> familiar to the end user.

The idea is that you create object that represents the concepts that
are in your domain: a filter chain composed of filters (two classes),
a generating algorithm (a factory object), transformations, etc.

> Thank you for your attention and code samples, Jesus. I think this will
> really help me organize my thinking.

Keep at it, and read about object oriented concepts, there are good
articles and books out there.

Jesus.

In This Thread