[#8566] Visions for 2001/1.7.x development? — Robert Feldt <feldt@...>

Hi matz and other Ruby developers,

18 messages 2001/01/03
[#8645] Re: Visions for 2001/1.7.x development? — matz@... (Yukihiro Matsumoto) 2001/01/04

Hi,

[#8580] bug?? — jmichel@... (Jean Michel)

I don't understand the following behaviour:

19 messages 2001/01/03

[#8633] Interesting Language performance comparisons - Ruby, OCAML etc — "g forever" <g24ever@...>

13 messages 2001/01/04

[#8774] No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...>

So, why not include Comparable in Array by default? It shouldn't have any

28 messages 2001/01/07
[#8779] Re: No :<, :>, etc. methods for Array — matz@... (Yukihiro Matsumoto) 2001/01/07

Hi,

[#8780] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

matz@zetabits.com (Yukihiro Matsumoto) wrote:

[#8781] Re: No :<, :>, etc. methods for Array — gotoken@... (GOTO Kentaro) 2001/01/07

In message "[ruby-talk:8780] Re: No :<, :>, etc. methods for Array"

[#8782] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:

[#8829] Sandbox (again) — wys@... (Clemens Wyss)

Hi,

20 messages 2001/01/08
[#8864] Re: Sandbox (again) — Clemens Hintze <c.hintze@...> 2001/01/08

On 8 Jan, Clemens Wyss wrote:

[#8931] String confusion — Anders Bengtsson <ndrsbngtssn@...>

Hello everyone,

21 messages 2001/01/09
[#8937] Re: String confusion — matz@... (Yukihiro Matsumoto) 2001/01/09

Hi,

[#8953] Please remove account from files — "Thomas Daniels" <westernporter@...>

Please take my e-mail address from your files and "CANCEL" my =

14 messages 2001/01/09
[#8983] Re: Please remove account from files — John Rubinubi <rubinubi@...> 2001/01/10

On Wed, 10 Jan 2001, Thomas Daniels wrote:

[#9020] time to divide -talk? (was: Please remove account from files) — Yasushi Shoji <yashi@...> 2001/01/10

At Wed, 10 Jan 2001 14:23:30 +0900,

[#9047] Re: time to divide -talk? (was: Please remov e account from files) — Aleksi Niemel<aleksi.niemela@...>

Yasushi Shoji:

27 messages 2001/01/10
[#9049] Re: time to divide -talk? — Yasushi Shoji <yashi@...> 2001/01/10

At Thu, 11 Jan 2001 00:20:45 +0900,

[#9153] what about this begin? — Anders Strandl Elkj誡 <ase@...> 2001/01/11

[#9195] Re: Redefining singleton methods — ts <decoux@...>

>>>>> "H" == Horst Duch=EAne?= <iso-8859-1> writes:

10 messages 2001/01/12

[#9242] polymorphism — Maurice Szmurlo <maurice@...>

hello

73 messages 2001/01/13

[#9279] Can ruby replace php? — Jim Freeze <jim@...>

When I read that ruby could be used to replace PHP I got really

15 messages 2001/01/14

[#9411] The Ruby Way — "Conrad Schneiker" <schneiker@...>

As a member of the "Big 8" newsgroups, "The Ruby Way" (of posting) is to

15 messages 2001/01/17

[#9462] Re: reading an entire file as a string — ts <decoux@...>

>>>>> "R" == Raja S <raja@cs.indiana.edu> writes:

35 messages 2001/01/17
[#9465] Re: reading an entire file as a string — Dave Thomas <Dave@...> 2001/01/17

raja@cs.indiana.edu (Raja S.) writes:

[#9521] Larry Wall INterview — ianm74@...

Larry was interviewed at the Perl/Ruby conference in Koyoto:

20 messages 2001/01/18
[#10583] Re: Larry Wall INterview — "greg strockbine" <gstrock@...> 2001/02/08

Larry Wall's interview is how I found out

[#9610] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>

"Christian" <christians@syd.microforte.com.au> wrote:

13 messages 2001/01/20

[#9761] Re: 101 Misconceptions About Dynamic Languages — ts <decoux@...>

>>>>> "C" == Christoph Rippel <crippel@primenet.com> writes:

16 messages 2001/01/23

[#9792] Ruby 162 installer available — Dave Thomas <Dave@...>

15 messages 2001/01/24

[#9958] Re: Vim syntax files again. — "Conrad Schneiker" <schneik@...>

Hugh Sasse wrote:

14 messages 2001/01/26
[#10065] Re: Vim syntax files again. — Hugh Sasse Staff Elec Eng <hgs@...> 2001/01/29

On Sat, 27 Jan 2001, Conrad Schneiker wrote:

[#9975] line continuation — "David Ruby" <ruby_david@...>

can a ruby statement break into multiple lines?

18 messages 2001/01/27
[#9976] Re: line continuation — Michael Neumann <neumann@...> 2001/01/27

On Sat, 27 Jan 2001, David Ruby wrote:

[#9988] Re: line continuation — harryo@... (Harry Ohlsen) 2001/01/28

>A statement break into mutliple lines if it is not complete,

[ruby-talk:8466] Re: string like istringstream (was: A bug inruby)

From: David Alan Black <dblack@...>
Date: 2001-01-01 18:20:06 UTC
List: ruby-talk #8466
Hello --

On Tue, 2 Jan 2001, Jean Michel wrote:

> In article <Pine.LNX.4.21.0101010645200.26658-100000@candle.superlink.net>,
> David Alan Black  <dblack@candle.superlink.net> wrote:
> >
> >Wouldn't it be better, if the pointer is < length, to return what's
> >left of the string, even if pointer + n >= length?  Something like:
> >
> >     def read(n)
> >       @pos += n
> >       res = self[@pos - n .. @pos - 1]
> >       @pos = length if @pos > length
> >       res
> >     end
> >
> >In your version, if you start reading inside the string but go past
> >the end, you get nil (instead of the end of the string).  
> >
> >(I like @pos better than @current_pointer, because it's shorter, still
> >readable, and similar to IO#pos.)
> 
> It is not  a matter of 'better'  but to follow exactly  the semantics of
> IO::read . It was my understanting that if the required amount could not
> be read,  the result  is nil.  If I am  wrong my  code should  change of
> course. Similarly,  since as you  pointed IO uses  @pos I should  do the
> same and change my variable name as you recommend.

"Better" specifically in the sense of "more similar to IO::read" :-)
I'd actually included this and then taken it out for brevity:

   irb 1> fh = File.open("/tmp/4list")  # 50K chars
      ==>#<File:0x401abee8>
   irb 2> fh.pos = 49999
      ==>0
   irb 3> fh.read 100
      ==>"\n"
   irb 4> fh.pos = 49999
      ==>0
   irb 5> fh.read 1
      ==>"\n"


> >My main suggestion would be to think about some refactoring, such that
> >the following code (or something like it) would work:
> >
> >   Dir["*.mp3"].each{ |f|
> >     print "\n{#{f}}\n"
> >     tag = ID3V2Tag.new
> >     tag.get_from_stream(open(f, "rb"))
> 
> You might get unpleasantness elsewhere. For instance, my routine
> .read_ID3V2tag signals by returning nil that no tag was found. How do you
> propose to handle that in your version? 

I wouldn't credit myself with a real version... but anyway, presumably
whatever method was looking for a tag could return nil if one isn't
found.  (The above dummy snippet does not test for this.)

> >As per my previous post, I find it sort of lop-sided to put the
> >knowledge of these tags in the String and IO classes.
> 
> I  think it  wonderful  that ruby  allows to  re-open  and extend  basic
> classes. I  do not  find it  lop-sided. Maybe you  feel this  because it
> would be impossible in other languages.

No, it's not a general concern with extending basic classes.  (We all
love *that*! :-)  It comes down to this: if you encapsulate Tag
knowledge in the Tag code, then your Tag code can, without
modification, handle any object which seeks and reads.  But if you
have to tell your Tag code exactly which types of objects seek and
read, then if that ever changes, you have to manually update the list.

(I'm not sure, in this case, what those new object types would be, so
perhaps I'm applying a general principle too rigidly....  But I still
would prefer not having to manually keep track of all the seekable
objects.)

Also, if in a larger program you were dealing with a number of
different types (not just tags), and if you took the general approach
of extending basic classes, one by one, to include knowledge of those
types, I think it could become very hard to maintain, and to manage
namespaces.  Class String, for example, might end up with methods
called read_ID3V2_tag, read_XYZ_entry, read_ABC_header, etc.  That's
the lop-sided part (to me).  One could end up using method names to
re-encapsulate functionality.


David

-- 
David Alan Black
home: dblack@candle.superlink.net
work: blackdav@shu.edu
Web:  http://pirate.shu.edu/~blackdav









In This Thread

Prev Next