[#6954] Why isn't Perl highly orthogonal? — Terrence Brannon <brannon@...>

27 messages 2000/12/09

[#7022] Re: Ruby in the US — Kevin Smith <kevinbsmith@...>

> Is it possible for the US to develop corporate

36 messages 2000/12/11
[#7633] Re: Ruby in the US — Dave Thomas <Dave@...> 2000/12/19

tonys@myspleenklug.on.ca (tony summerfelt) writes:

[#7636] Re: Ruby in the US — "Joseph McDonald" <joe@...> 2000/12/19

[#7704] Re: Ruby in the US — Jilani Khaldi <jilanik@...> 2000/12/19

> > first candidates would be mysql and postgressql because source is

[#7705] Code sample for improvement — Stephen White <steve@...> 2000/12/19

During an idle chat with someone on IRC, they presented some fairly

[#7750] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

Stephen White wrote:

[#7751] Re: Code sample for improvement — David Alan Black <dblack@...> 2000/12/20

Hello --

[#7755] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

David Alan Black wrote:

[#7758] Re: Code sample for improvement — Stephen White <steve@...> 2000/12/20

On Wed, 20 Dec 2000, Guy N. Hurst wrote:

[#7759] Next amusing problem: talking integers (was Re: Code sample for improvement) — David Alan Black <dblack@...> 2000/12/20

On Wed, 20 Dec 2000, Stephen White wrote:

[#7212] New User Survey: we need your opinions — Dave Thomas <Dave@...>

16 messages 2000/12/14

[#7330] A Java Developer's Wish List for Ruby — "Richard A.Schulman" <RichardASchulman@...>

I see Ruby as having a very bright future as a language to

22 messages 2000/12/15

[#7354] Ruby performance question — Eric Crampton <EricCrampton@...>

I'm parsing simple text lines which look like this:

21 messages 2000/12/15
[#7361] Re: Ruby performance question — Dave Thomas <Dave@...> 2000/12/15

Eric Crampton <EricCrampton@worldnet.att.net> writes:

[#7367] Re: Ruby performance question — David Alan Black <dblack@...> 2000/12/16

On Sat, 16 Dec 2000, Dave Thomas wrote:

[#7371] Re: Ruby performance question — "Joseph McDonald" <joe@...> 2000/12/16

[#7366] GUIs for Rubies — "Conrad Schneiker" <schneik@...>

Thought I'd switch the subject line to the subject at hand.

22 messages 2000/12/16

[#7416] Re: Ruby IDE (again) — Kevin Smith <kevins14@...>

>> >> I would contribute to this project, if it

17 messages 2000/12/16
[#7422] Re: Ruby IDE (again) — Holden Glova <dsafari@...> 2000/12/16

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

[#7582] New to Ruby — takaoueda@...

I have just started learning Ruby with the book of Thomas and Hunt. The

24 messages 2000/12/18

[#7604] Any corrections for Programming Ruby — Dave Thomas <Dave@...>

12 messages 2000/12/18

[#7737] strange border-case Numeric errors — "Brian F. Feldman" <green@...>

I haven't had a good enough chance to familiarize myself with the code in

19 messages 2000/12/20

[#7801] Is Ruby part of any standard GNU Linux distributions? — "Pete McBreen, McBreen.Consulting" <mcbreenp@...>

Anybody know what it would take to get Ruby into the standard GNU Linux

15 messages 2000/12/20

[#7938] Re: defined? problem? — Kevin Smith <sent@...>

matz@zetabits.com (Yukihiro Matsumoto) wrote:

26 messages 2000/12/22
[#7943] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

Kevin Smith <sent@qualitycode.com> writes:

[#7950] Re: defined? problem? — Stephen White <steve@...> 2000/12/22

On Fri, 22 Dec 2000, Dave Thomas wrote:

[#7951] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

On Fri, 22 Dec 2000, Stephen White wrote:

[#7954] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

David Alan Black <dblack@candle.superlink.net> writes:

[#7975] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

Hello --

[#7971] Hash access method — Ted Meng <ted_meng@...>

Hi,

20 messages 2000/12/22

[#8030] Re: Basic hash question — ts <decoux@...>

>>>>> "B" == Ben Tilly <ben_tilly@hotmail.com> writes:

15 messages 2000/12/24
[#8033] Re: Basic hash question — "David A. Black" <dblack@...> 2000/12/24

On Sun, 24 Dec 2000, ts wrote:

[#8178] Inexplicable core dump — "Nathaniel Talbott" <ntalbott@...>

I have some code that looks like this:

12 messages 2000/12/28

[#8196] My first impression of Ruby. Lack of overloading? (long) — jmichel@... (Jean Michel)

Hello,

23 messages 2000/12/28

[#8198] Re: Ruby cron scheduler for NT available — "Conrad Schneiker" <schneik@...>

John Small wrote:

14 messages 2000/12/28

[#8287] Re: speedup of anagram finder — "SHULTZ,BARRY (HP-Israel,ex1)" <barry_shultz@...>

> -----Original Message-----

12 messages 2000/12/29

[ruby-talk:8110] Code examples in the pickaxe book [long]

From: Dave Thomas <Dave@...>
Date: 2000-12-27 13:58:19 UTC
List: ruby-talk #8110
A couple of people have mentioned here that they're having problems
because they're typing in code from the book, and some of the code
fragments aren't self contained.

I need some help from folks on the list to decide what to do. I'd like 
to publish the source code, but there is a problem, and I don't know
how big it is.

If we take class Song from the book, the actual source file looks like 
this:

     !0class Song
     !A  include Comparable
     !8  @@plays = 0
     !4  attr_reader :name, :artist, :duration
     !6  attr_writer :duration
     !1  def initialize(name, artist, duration)
     !1    @name     = name
     !1    @artist   = artist
     !1    @duration = duration
     !8    @plays    = 0
     !1  end
     !2  def to_s
     !2    "Song: #{@name}--#{@artist} (#{@duration})"
     !2  end
     !3  def name
     !3    @name
     !3  end
     !3  def artist
     !3    @artist
     !3  end
     !3  def duration
     !3    @duration
     !3  end
     !5  def duration=(newDuration)
     !5    @duration = newDuration
     !5  end
     !7  def durationInMinutes
     !7    @duration/60.0   # force floating point
     !7  end
     !7  def durationInMinutes=(value)
     !7    @duration = (value*60).to_i
     !7  end
     !8  def play
     !8    @plays += 1
     !8    @@plays += 1
     !8    "This  song: #@plays plays. Total #@@plays plays."
     !8  end
     !B  def record
     !B    "Recording..."
     !B  end
     !9  def inspect
     !9    self.to_s
     !9  end
     !A  def <=>(other)
     !A    self.duration <=> other.duration
     !A  end
     !0end

Each line starts with a '!' followed by a flag character. These lines
are interpreted by a preprocesor. So, for example, when we include the 
code for page 27 in the book, we say

   \begin{ruby}[0,1,8]

and in the typeset bok you only see the lines flagged 0, 1, or 8.

The benefit here is that the book code is shorter, and more relevant
to the point at hand. Another indirect benefit is that the code is
consistent: the method 'Song.initialize' for example, is defined once,
and then included where needed throughout the book.

But here's my problem. Take the code on page 25. There we talk about
writable attributes, and show the definition of method 'duration='
(flagged '5' above). A couple of paragraphs later we save 'but Ruby
can write this for you' and show attr_writer instead (coincidentally
flagged with '6' above). The code for the class contains both methods.

So, if I publish the source of class Song as it really is (the code
above minus the !'s), you'd end up with _both_ an attr_writer and a
definition of 'duration=' in the same file. And that's what worries
me. Folks might get the wrong impression from this, and we'd end up
confusing things even more.

So, what should I do? Do I need to do anything?


Thanks


Dave

In This Thread

Prev Next