[#358392] Increase significant digits in Float — Jason Lillywhite <jason.lillywhite@...>

If I want to increase my significant digits beyond 15 in a result of a

12 messages 2010/03/02

[#358431] A gem for handling temporary file(s)? — Albert Schlef <albertschlef@...>

I'm writing a program that needs to generate two or three temporary

21 messages 2010/03/03
[#358432] Re: A gem for handling temporary file(s)? — Paul Harrington <xenogenesis@...> 2010/03/03

Albert Schlef wrote:

[#358443] Re: A gem for handling temporary file(s)? — Albert Schlef <albertschlef@...> 2010/03/03

Paul Harrington wrote:

[#358486] Re: A gem for handling temporary file(s)? — Caleb Clausen <vikkous@...> 2010/03/03

On 3/2/10, Albert Schlef <albertschlef@gmail.com> wrote:

[#358485] Test::Unit::Omission - Unable to omit tests — Champak Ch <champaka@...>

I am trying to omit some tests while using the test unit framework. My

12 messages 2010/03/03

[#358551] Shared hosting recommendation? — Rafael Vega <email.rafa@...>

Hello!

10 messages 2010/03/04

[#358559] Limit number of concurrent running threads in pool — Joe Martin <jm202@...>

Hi

14 messages 2010/03/04

[#358576] A good portable text editor/IDE for Ruby? — Reiichi Tyrael <xxreiichixx@...>

I am searching for a good portable text editor or IDE for Ruby to use on

19 messages 2010/03/05

[#358586] Base-64 encoding--Just for the fun of it! — "Aaron D. Gifford" <astounding@...>

Yes, there's always:

10 messages 2010/03/05

[#358611] On what of these books is better to start to study Ruby? — Vlad Gerasimov <refermaker@...>

I have 3 books:

12 messages 2010/03/05

[#358634] Conditional keys in hash - out of the box? — "Sven S." <svoop@...>

Hi

12 messages 2010/03/05

[#358661] Why no TextMate for Linux? — thunk <gmkoller@...>

I spent some happy development time in "VisualAge" for Smalltalk +

42 messages 2010/03/06

[#358702] win32console 1.3.0.beta2 Released — Luis Lavena <luislavena@...>

win32console version 1.3.0.beta2 has been released!

17 messages 2010/03/07

[#358757] Shortest code — Prasanth Ravi <dare.take@...>

hi i'm a newbie in ruby and was test out some interesting problems in

18 messages 2010/03/08

[#358885] reading an UTF-8 encoded file — unbewusst.sein@... (Une B騅ue)

13 messages 2010/03/10

[#359008] Dir.glob problem — David Vlad <cluny_gisslaren@...>

In the program Im making I need to read some wma files into a variable

21 messages 2010/03/12

[#359031] Newbie Help : Object — Jerome David Sallinger <imran.nazir@...>

Hello,

14 messages 2010/03/13

[#359090] Overriding new? — Andrea Dallera <andrea@...>

Hi everybody,

19 messages 2010/03/15
[#359091] Re: Overriding new? — Chuck Remes <cremes.devlist@...> 2010/03/15

[#359093] Re: Overriding new? — Andrea Dallera <andrea@...> 2010/03/15

Hei Chuck,

[#359130] Recommended way to install Rubygems — Leslie Viljoen <leslieviljoen@...>

Hi!

64 messages 2010/03/16
[#359175] Re: Recommended way to install Rubygems — Eric Hodel <drbrain@...7.net> 2010/03/17

On Mar 16, 2010, at 03:22, Leslie Viljoen wrote:

[#359176] Re: Recommended way to install Rubygems — Lucas Nussbaum <lucas@...> 2010/03/17

(Please Cc me when replying, I don't follow ruby-talk@ closely enough to

[#359183] Re: Recommended way to install Rubygems — Nick Brown <nick@...> 2010/03/18

Lucas: Thanks for maintaining the Ruby package in Ubuntu!

[#359187] Re: Recommended way to install Rubygems — Lucas Nussbaum <lucas@...> 2010/03/18

On 18/03/10 at 13:36 +0900, Nick Brown wrote:

[#359200] Re: Recommended way to install Rubygems — Nick Brown <nick@...> 2010/03/18

Lucas Nussbaum wrote:

[#359204] Re: Recommended way to install Rubygems — Lucas Nussbaum <lucas@...> 2010/03/18

On 18/03/10 at 23:05 +0900, Nick Brown wrote:

[#359210] Re: Recommended way to install Rubygems — Rick DeNatale <rick.denatale@...> 2010/03/18

On Thu, Mar 18, 2010 at 10:21 AM, Lucas Nussbaum

[#359215] Re: Recommended way to install Rubygems — Lucas Nussbaum <lucas@...> 2010/03/18

On 18/03/10 at 23:45 +0900, Rick DeNatale wrote:

[#359230] Re: Recommended way to install Rubygems — Aldric Giacomoni <aldric@...> 2010/03/18

Lucas Nussbaum wrote:

[#359233] Re: Recommended way to install Rubygems — Lucas Nussbaum <lucas@...> 2010/03/18

On 19/03/10 at 02:49 +0900, Aldric Giacomoni wrote:

[#359171] Replace Text at Specific Positions Across Files — Shiny Hydra <slotriof@...>

Hello everyone,

12 messages 2010/03/17
[#359192] Re: Replace Text at Specific Positions Across Files — Robert Klemme <shortcutter@...> 2010/03/18

2010/3/17 Shiny Hydra <slotriof@guerrillamailblock.com>:

[#359198] Re: Replace Text at Specific Positions Across Files — Shiny Hydra <slotriof@...> 2010/03/18

> So your file has fixed width records? This is important to know,

[#359255] Grouping elements of an array — Steve Wilhelm <steve@...831.com>

I have an array of records that contain timestamps at random intervals.

24 messages 2010/03/18

[#359354] Living with a Swarm of Boids - A report from the front — thunk <gmkoller@...>

Hi,

15 messages 2010/03/20

[#359388] A plugin system using extend — Jean-denis Vauguet <jd@...>

Hi.

17 messages 2010/03/21
[#359394] Re: A plugin system using extend — Josh Cheek <josh.cheek@...> 2010/03/21

On Sat, Mar 20, 2010 at 9:46 PM, Jean-denis Vauguet <jd@vauguet.fr> wrote:

[#359398] Re: A plugin system using extend — Jean-denis Vauguet <jd@...> 2010/03/21

Thank you Josh. Actually I've already tested what you wrote and that's

[#359402] Re: A plugin system using extend — Jean-denis Vauguet <jd@...> 2010/03/21

Another idea I had is the following:

[#359410] Re: A plugin system using extend — James Edward Gray II <james@...> 2010/03/21

On Mar 21, 2010, at 2:13 AM, Jean-denis Vauguet wrote:

[#359420] Reading contents of all files from a Directory — Hawksury Gear <blackhawk_932@...>

Hello,

23 messages 2010/03/21
[#359422] Re: Reading contents of all files from a Directory — Jonathan Nielsen <jonathan@...> 2010/03/21

> I am trying to "Read Content" of all the files from a Directory. So far

[#359423] Re: Reading contents of all files from a Directory — Jonathan Nielsen <jonathan@...> 2010/03/21

> arr =3D Dir.open("K:/test").entries

[#359464] Re: Reading contents of all files from a Directory — Robert Klemme <shortcutter@...> 2010/03/22

2010/3/21 Jonathan Nielsen <jonathan@jmnet.us>:

[#360368] Re: Reading contents of all files from a Directory — Hawksury Gear <blackhawk_932@...> 2010/04/04

> If it is only for output purposes, we can actually do it in one line:

[#360370] Re: Reading contents of all files from a Directory — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/04/04

On Sun, Apr 4, 2010 at 3:06 PM, Hawksury Gear <blackhawk_932@hotmail.com> w=

[#360373] Re: Reading contents of all files from a Directory — Hawksury Gear <blackhawk_932@...> 2010/04/04

Thanks for replying ,when I am doing

[#360374] Re: Reading contents of all files from a Directory — Hassan Schroeder <hassan.schroeder@...> 2010/04/04

On Sun, Apr 4, 2010 at 8:16 AM, Hawksury Gear <blackhawk_932@hotmail.com> wrote:

[#360375] Re: Reading contents of all files from a Directory — Hawksury Gear <blackhawk_932@...> 2010/04/04

Hassan Schroeder wrote:

[#359662] index of string from beginning of line vs beginning of file — "Jesse B." <jessebos@...>

I am trying to write a basic script to implement "silent comments"

10 messages 2010/03/25
[#359663] Re: index of string from beginning of line vs beginning of file — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/03/25

On Thu, Mar 25, 2010 at 5:19 PM, Jesse B. <jessebos@aol.com> wrote:

[#359684] Ruby Summer of Code 2010 — Jeremy Kemper <jeremy@...>

Fellow Rubyists, I'm proud to announce the first annual Ruby Summer of Code.

20 messages 2010/03/26
[#359985] Re: [ANN] Ruby Summer of Code 2010 — Roger Pack <rogerpack2005@...> 2010/03/30

Jeremy Kemper wrote:

[#359697] Ruby and user documentation — Michel Demazure <michel@...>

Hi all,

20 messages 2010/03/26

[#359749] Boid writeup idea — thunk <gmkoller@...>

30 messages 2010/03/26

[#359909] return number of spaces at the beginning of a line — "Jesse B." <jessebos@...>

How would I find the number of spaces at the beginning of a line before

28 messages 2010/03/30
[#359925] Re: return number of spaces at the beginning of a line — Josh Cheek <josh.cheek@...> 2010/03/30

On Mon, Mar 29, 2010 at 8:41 PM, Jesse B. <jessebos@aol.com> wrote:

[#359941] Re: return number of spaces at the beginning of a line — Robert Klemme <shortcutter@...> 2010/03/30

2010/3/30 Josh Cheek <josh.cheek@gmail.com>:

[#359945] Re: return number of spaces at the beginning of a line — "Jesse B." <jessebos@...> 2010/03/30

This second post with the "spaces only" fix seems to meet all the needs

[#359961] Re: return number of spaces at the beginning of a line — Robert Klemme <shortcutter@...> 2010/03/30

2010/3/30 Jesse B. <jessebos@aol.com>:

[#360011] RubyDictionary - First Try — Max Schmidt <max.schmidt.privat@...>

Hello folks,

12 messages 2010/03/30
[#360035] Re: RubyDictionary - First Try — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/03/31

On Wed, Mar 31, 2010 at 12:40 AM, Max Schmidt

[#360033] Playing Games with "Ruids" — thunk <gmkoller@...>

46 messages 2010/03/31

Re: A plugin system using extend

From: Jean-denis Vauguet <jd@...>
Date: 2010-03-21 19:51:27 UTC
List: ruby-talk #359421
Robert Klemme wrote:
> On 03/21/2010 06:14 PM, James Edward Gray II wrote:
>>> Not really sure about it, but...
>> 
>> It worked great and felt very natural to me when using it.
> 
> James, what's the advantage of this over simply using "include"?  If all
> instances get to use the plugin module then you can as well include it
> in the class.

As JEGII stated, the main reason to do so is related to the inheritance 
chain order. If you want to be able to redefine an instance method while 
keeping access to the original implementation, extend is necessary. 
include will make the redefinition available but as it's mixed-in, the 
original definition trumps the redef. With extend, the order is reversed 
(the original class is kind of subclassed by the module extend receives 
as an argument).

This is terrific behavior for callbacks and plugins. It's a easy as pie 
to do with classes, and a little bit more tortuous to achieve for class 
instances.

> I see it like this: if all instances of a class should be extended with
> plugin behavior, then simply use "include".  If only some instances
> should, then use "extend".

I think there's some confusion about what extend and include really are. 
We often read extend is to make module methods available as class 
methods while include makes them instance methods, but that's not true.

extend is a method of the Object class, and it can handle any object as 
a receiver, be it a class, an instance of a class, or a module, a 
singleton, etc. If you extend a class, then you'll get class methods. An 
instance, instance methods. And what's so great about extend is, once 
again, the way it alters the inheritance chain: the class calling extend 
for a module gets subclassed by the module-now-a-class. Which means at 
least two things: if you redefine the module passed to extend, then the 
changes are not propagated, it's made available only for new extending 
objects; if you had a method on the object which is redefined into the 
extended module, then the module-now-a-class version is the first match, 
and you can call super to reach the original (class) definition.

Quite different is include, a keyword not a method, which has only one 
behavior: quoting the Pickaxe, "it makes a reference from the class to 
the included module. If multiple classes include that module, they'll 
all point to the same thing". So you get shared, instance methods. The 
mixed-in module is appended right next to the class including it within 
the inheritance chain, so that if you call an instance method of the 
class, even if it's been redefined by the mixed-in module, the first 
match's still the class'.

So, the real difference between extend and include, aside from their 
nature, is not really about whether they're talking to classes or 
instances, it's more about their behavior: extend is useful for 
redefining things (once), include (mixin) is useful for adding (shared) 
things. I mean, following Yehuda Katz 
(http://yehudakatz.com/2010/02/25/rubys-implementation-does-not-define-its-semantics/), 
you can either stick to the implementation, or, you can consider the 
semantic/purpose, the latter being more accurate and useful at the same 
time IMO :)
-- 
Posted via http://www.ruby-forum.com/.

In This Thread