[#8446] Re: string like istringstream (was: A bug inruby) — Kevin Smith <sent@...>
jmichel@schur.institut.math.jussieu.fr wrote:
[#8465] A newbie question (about regexp) — "Robert Gustavsson" <robertg@...>
Hi!
[#8468] Re: speedup of anagram finder — "Ben Tilly" <ben_tilly@...>
gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:
On Tue, 2 Jan 2001, Ben Tilly wrote:
[#8478] popen on .rb file in 95 — "Chris Morris" <chrismo@...>
Apparently, Win95 does not support file associations from the command line.
[#8490] Translate daemon code to Windows? — "Chris Morris" <chrismo@...>
I'm trying to get httpd and rwiki to work on 95 and both have init code to
[#8508] Re: speedup of anagram finder — "SHULTZ,BARRY (HP-Israel,ex1)" <barry_shultz@...>
> go, either. The fact is, I've spent a lot of time the past couple days
[#8513] 1.6.2 on Dec Alpha — Hugh Sasse Staff Elec Eng <hgs@...>
And on a Dec Alpha system with gcc -v giving:
On Thu, 4 Jan 2001, Mathieu Bouchard wrote:
> > > And on a Dec Alpha system with gcc -v giving:
On Sun, 7 Jan 2001, Mathieu Bouchard wrote:
> > Here it is:
[#8527] Re: 1.6.2 on Solaris2.5.1 — ts <decoux@...>
>>>>> "H" == Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
[#8565] optparse and rdtool — Hugh Sasse Staff Elec Eng <hgs@...>
Rebuilding stuff for 1.6.2, I see that RubyUnit says it's a good idea to
>...
[#8566] Visions for 2001/1.7.x development? — Robert Feldt <feldt@...>
Hi matz and other Ruby developers,
Hi,
On Fri, 5 Jan 2001, Yukihiro Matsumoto wrote:
[#8580] bug?? — jmichel@... (Jean Michel)
I don't understand the following behaviour:
On Thu, 4 Jan 2001, Jean Michel wrote:
In message "[ruby-talk:8580] bug??"
> A number of users was confused by these behavior, thus we have already
[#8599] Character classes in Ruby regexp — "Robert Gustavsson" <robertg@...>
Hi!
[#8633] Interesting Language performance comparisons - Ruby, OCAML etc — "g forever" <g24ever@...>
[#8651] Re: Interesting Language performance comparisons - Ruby, OCAML etc — "g forever" <g24ever@...>
Good observations.
[#8723] Re: Braces and begin/end — Kevin Smith <sent@...>
Robert Gustavsson wrote:
[#8745] (start..end) where start > end — "Robert Gustavsson" <0317025435@...>
Hi!
On Sun, 7 Jan 2001, Robert Gustavsson wrote:
[#8757] Backward Range implementation — Kevin Smith <sent@...>
Here's what I came up with that seems to work. I
[#8774] No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...>
So, why not include Comparable in Array by default? It shouldn't have any
Hi,
matz@zetabits.com (Yukihiro Matsumoto) wrote:
In message "[ruby-talk:8780] Re: No :<, :>, etc. methods for Array"
gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:
Hello --
David Alan Black <dblack@candle.superlink.net> wrote:
In message "[ruby-talk:8785] Re: No :<, :>, etc. methods for Array"
> -----Original Message-----
[#8808] Dynamic Flash movies from Ruby — Dave Thomas <Dave@...>
[#8829] Sandbox (again) — wys@... (Clemens Wyss)
Hi,
On 8 Jan, Clemens Wyss wrote:
[#8844] problems with mkmf.rb — DaVinci <bombadil@...>
Hi.
DaVinci <bombadil@wanadoo.es> wrote:
[#8908] Re: bug?? — Aleksi Niemel<aleksi.niemela@...>
matz said:
[#8931] String confusion — Anders Bengtsson <ndrsbngtssn@...>
Hello everyone,
Hi,
On Wed, 10 Jan 2001, Yukihiro Matsumoto wrote:
On Wed, 10 Jan 2001, Yukihiro Matsumoto wrote:
Hi,
On Wed, 10 Jan 2001, Yukihiro Matsumoto wrote:
[#8953] Please remove account from files — "Thomas Daniels" <westernporter@...>
Please take my e-mail address from your files and "CANCEL" my =
On Wed, 10 Jan 2001, Thomas Daniels wrote:
At Wed, 10 Jan 2001 14:23:30 +0900,
On Wed, 10 Jan 2001, Yasushi Shoji wrote:
[#8958] Re: Genetic Programming in Ruby — "Conrad Schneiker" <schneik@...>
Robert Feldt wrote:
[#8964] GULP (working title :-) related thoughts — David Alan Black <dblack@...>
Hello --
[#8971] Re: GULP (working title :-) related thoughts — "Conrad Schneiker" <schneik@...>
Dave Thomas wrote:
I don't know if 1.6.1 has a bug that's been fixed in 1.6.2 but I have used
[#8975] Re: Modules and mixins — Kevin Smith <sent@...>
Holden Glova wrote:
Kevin Smith <sent@qualitycode.com> writes:
[#8991] Why File::Stat? — "Hal E. Fulton" <hal9000@...>
I'm assuming that Stat is embedded inside File just
[#9008] using RUnit's setup and teardown methods — wlkleb@...
can someone show me how to use (or explain to me when i should use)
[#9035] Re: Regexp for matching Ruby reg exps? — "Ben Tilly" <ben_tilly@...>
Robert Feldt <feldt@ce.chalmers.se> wrote:
[#9047] Re: time to divide -talk? (was: Please remov e account from files) — Aleksi Niemel<aleksi.niemela@...>
Yasushi Shoji:
At Thu, 11 Jan 2001 00:20:45 +0900,
[#9063] Re: pid of executed program — ts <decoux@...>
>>>>> "L" == Laurence J Lane <ljlane@debian.org> writes:
[#9070] Re: time to divide -talk? — "Conrad Schneiker" <schneik@...>
David Alan Black wrote:
[#9106] Grabbing a char from the keyboard... — "Hal E. Fulton" <hal9000@...>
How does one accept a character from the keyboard
[#9120] ruby 1.6.2 and Debian 2.2 — Bostjan JERKO <Bostjan.Jerko@...>
Hi !
[#9159] Re: GULP (working title :-) related thoughts — "Conrad Schneiker" <schneik@...>
Dwight Tuinstra wrote:
[#9163] truncation of error strings — raja@... (Raja S.)
Is there any where to prevent the truncation of messages produced during
[#9179] "|" on front of aPortName — "Hal E. Fulton" <hal9000@...>
Hi guys...
[#9187] Re: Licensing issues — Kevin Smith <sent@...>
Robert Feldt wrote:
[#9195] Re: Redefining singleton methods — ts <decoux@...>
>>>>> "H" == Horst Duch=EAne?= <iso-8859-1> writes:
> From: ts [mailto:decoux@moulon.inra.fr]
[#9199] Class from name of class — Jim Menard <jimm@...>
I have a class name in a string, and I want to create an instance of that
[#9242] polymorphism — Maurice Szmurlo <maurice@...>
hello
Yukihiro Matsumoto <matz@zetabits.com> wrote:
[#9262] Rubicon now available via CVS — Dave Thomas <Dave@...>
[#9267] Re: polymorphism — chad fowler <chadfowler@...>
> >
"chad fowler" <chadfowler@yahoo.com> wrote in message
[#9279] Can ruby replace php? — Jim Freeze <jim@...>
When I read that ruby could be used to replace PHP I got really
> When I read that ruby could be used to replace PHP I got really
[#9368] Ruby 1.6.2 compilation problems on HP-UX 11 with gcc 2.95.2 with optimizations — "HOLOWKO,LARS (A-Germany,ex1)" <lars_holowko@...>
Trying to build Ruby like this
WATANABE Tetsuya <tetsu@jpn.hp.com> writes:
[#9395] Re: Do Vector and Matrix Classes Exist for Ruby? — "Conrad Schneiker" <schneik@...>
Gotoken wrote:
[#9411] The Ruby Way — "Conrad Schneiker" <schneiker@...>
As a member of the "Big 8" newsgroups, "The Ruby Way" (of posting) is to
Well, I have to say that I agree 100% with your previous post.
----- Original Message -----
----- Original Message -----
[#9427] Ruby CVS repositories are ready now — "Akinori MUSHA" <knu@...>
Hello,
[#9434] Re: 101 Misconceptions About Dynamic... — MICHAEL.W.WILSON@...
Subject:
[#9439] array.each_index_but_last ? — Hugh Sasse Staff Elec Eng <hgs@...>
What is the idiomatic Ruby way to go through all the elements of an array,
[#9462] Re: reading an entire file as a string — ts <decoux@...>
>>>>> "R" == Raja S <raja@cs.indiana.edu> writes:
ts <decoux@moulon.inra.fr> writes:
raja@cs.indiana.edu (Raja S.) writes:
Hi,
Mathieu Bouchard <matju@cam.org> writes:
> > File.open(path) {|f| f.read(*args) }
Hi,
[#9496] Re: Subprocess — Bostjan JERKO <Bostjan.Jerko@...>
Yeah and what if I want to run it on M$ ?
[#9521] Larry Wall INterview — ianm74@...
Larry was interviewed at the Perl/Ruby conference in Koyoto:
Larry Wall's interview is how I found out
>>>>> On Fri, 9 Feb 2001 00:40:02 +0900,
Does someone have a code snippet that they can point me to that allows
[#9598] Re: 101 Misconceptions About Dynamic Languages — "Christian" <christians@...>
I've really backed myself into a corner here. Witness my Houdini act.
[#9610] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>
"Christian" <christians@syd.microforte.com.au> wrote:
[#9616] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>
Peter Wood <peter.wood@worldonline.dk> wrote:
[#9619] Ruby mode for emacs — "R. Mark Volkmann" <volkmann2@...>
Is anyone successfully using Ruby mode for emacs under Windows 2000?
[#9682] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>
"Christian" <christians@syd.microforte.com.au> wrote:
[#9709] Re: Ruby, FOX, and widely available C++ implementations (Was: Re: 101 Misconceptions About Dynamic Languages) — "Conrad Schneiker" <schneik@...>
Patrick Logan wrote:
[#9718] Can someone tell the the scoop on Mac ports — Dave Thomas <Dave@...>
[#9728] Re: Ruby vs. Python and Euphoria: sieve benc hmark — Aleksi Niemel<aleksi.niemela@...>
> Kenneth Rhodes writes:
[#9730] require loop — Ted Meng <ted_meng@...>
Hi,
[#9741] Re: Possible bug in Tempfile/Fork interaction — "Ben Tilly" <ben_tilly@...>
Martin G Dixon <mgdixon@ichips.intel.com> wrote:
[#9761] Re: 101 Misconceptions About Dynamic Languages — ts <decoux@...>
>>>>> "C" == Christoph Rippel <crippel@primenet.com> writes:
[#9781] Re: socket.rb? firewalls? — MICHAEL.W.WILSON@...
|--------+----------------------->
[#9792] Ruby 162 installer available — Dave Thomas <Dave@...>
[#9800] IOWA M.L. — Jilani Khaldi <jilanik@...>
Hi,
[#9824] Re: IOWA M.L. — chad fowler <chadfowler@...>
Avi Bryant <avi@beta4.com> writes:
[#9834] Problem with ruby-libglade 1.1 — schuerig@... (Michael Schuerig)
[#9843] The Ruby Programming Language — TAKAHASHI Masayoshi <maki@...>
Hi,
[#9847] Linux Expo Paris 1/31-2/2 — matz@... (Yukihiro Matsumoto)
Hi,
[#9904] Re: Learning Ruby — "Conrad Schneiker" <schneik@...>
Jim Freeze wrote:
[#9908] First quines in ruby? — "Conrad Schneiker" <schneik@...>
On Wed, 19 Jul 2000 Hal Fulton wrote:
[#9919] ANN: AspectR 0.2 — Robert Feldt <feldt@...>
Hi,
[#9930] a newbie ? — "Ralf" <Ralf.Jantschek@...>
Hello,
[#9949] Re: which ruby ...? — "Conrad Schneiker" <schneik@...>
Kent Dahl wrote:
[#9958] Re: Vim syntax files again. — "Conrad Schneiker" <schneik@...>
Hugh Sasse wrote:
On Sat, 27 Jan 2001, Conrad Schneiker wrote:
On Mon, 29 Jan 2001 19:36:49 +0900, Hugh Sasse Staff Elec Eng wrote:
On Mon, 29 Jan 2001, hipster wrote:
On Mon, 29 Jan 2001, Hugh Sasse Staff Elec Eng wrote:
[#9959] Dynamically instantiating a class (with a string) — ptkwt@...2.teleport.com (Phil Tomson)
I know I could (and probably should) do this with some kind of a factory
[#9975] line continuation — "David Ruby" <ruby_david@...>
can a ruby statement break into multiple lines?
On Sat, 27 Jan 2001, David Ruby wrote:
>A statement break into mutliple lines if it is not complete,
<ale@crimson.propagation.net> wrote:
On Sun, 28 Jan 2001, Brian F. Feldman wrote:
Hi --
[#9980] Ruby refs on Slashdot — "Conrad Schneiker" <schneiker@...>
FYI. See the original for much better formatting and to see the links.
Hello --
[#9986] system command on Windows(Arrgghhh!) — ptkwt@...2.teleport.com (Phil Tomson)
[#10010] Re: exercise training program in ruby — MICHAEL.W.WILSON@...
|--------+----------------------->
[#10050] Arity of methods without having instance? — Robert Feldt <feldt@...>
Hi,
[#10076] RECEIVED: Re: REQUEST TO REMOVE SEQUENC... — MICHAEL.W.WILSON@...
Subject:
[#10123] RSVP (Ruby SerVer Pages -sort of :-) — "Pe, Botp" <botp@...>
Hi ALL:
[#10128] Ruby for DOS — Dave Thomas <Dave@...>
[#10136] Array's undocumented features — Mathieu Bouchard <matju@...>
[#10141] ArrayMixin 0.2 — Mathieu Bouchard <matju@...>
[#10142] DateTime class for Ruby? — Michael Neumann <neumann@...>
Hi,
[#10153] Re: DateTime class for Ruby? — "Ben Tilly" <ben_tilly@...>
andy@toolshed.com (Andrew Hunt) wrote:
[ruby-talk:8451] Re: string like istringstream (was: A bug inruby)
In article <0G6G004FFIMJ0S@mta5.snfc21.pbi.net>,
Kevin Smith <sent@qualitycode.com> wrote:
>jmichel@schur.institut.math.jussieu.fr wrote:
>>point. But, since my last post, further thought has led me to a solution
>>(if you like it it can be in the FAQ, Dave). The API from IO that I use
>>is just for now .read and .seek but I may want to use other methods
>>eventually. The solution to share code is
>>
>> 1- Derive a class from String that has methods .read and .seek . I say
>> derive a class because I need to add an instance variable 'current
>> pointer' and it seems cleaner to have this in a new class. But since
>> instance variables can magically appear maybe I need not derive a
>> class. I can just do:
>
>Perfect. And I agree that it should be a distinct
>class. I would propose IOString as the name.
>
>Perhaps we persuade you to contribute what you
>end up with to the RAA (Ruby App Archive) so
>others can benefit from it, and extend it.
Well, below is my code. It is a kind of 'minimal' solution: I did not
derive a different class from string, and I did not even add a method
as_file since .rewind does the job. Also I have yet implemented only a
small subset of the ID3V2 standard, but which covers all the music files
I have on my hard disk. At the bottom is a sample application where I
run over all .mp3 files in a directory, show the ID3v1 and ID3v2 tags
and propose to rename the file to trak_no+title.mp3 (I follow windows
filename conventions, I work under windows with djgpp). Any comments on
how to shorten or rubify my code are welcome.
class String
def rewind
@current_pointer=0
end
def read(n)
@current_pointer+=n
if @current_pointer>=length
@current_pointer=length
nil
else
self[@current_pointer-n..@current_pointer-1]
end
end
def seek(n,where)
case where
when IO::SEEK_CUR
@current_pointer+=n
when IO::SEEK_END
@current_pointer=length+n
when IO::SEEK_SET
@current_pointer=n
end
0
end
def show
gsub(/[\000-\037]/,sprintf('\\\\%03o',$0.to_i))
end
end
class ID3V2tag
attr_accessor(:size,:pad,:version,:revision,:flags,:frames)
def to_s
res="ID3V2."+@version.to_s+"."+@revision.to_s
@flags.each_byte { |fl,i|
if fl==?1
res<<"["<<%w[Unsynchronisation Extended_Header Experimental_indicator
Footer_present Unknown4 Unknown5 Unknown6 Unknown7][i]<<"]"
end}
res+=" Size="+@size.to_s+" Padding="+pad.to_s+"\n"
res<<@frames.map{|x| x.to_s}.join("\n")
res
end
def [](tag)
@frames.detect{|f| f.header==tag}
end
end
class ID3V2Frame
attr_accessor(:header,:size,:flags,:data,:encoding)
def to_s
desc={"TRCK"=>"Track/Elts", "TMED"=>"Media Type", "TCON"=>"Content Type",
"TALB"=>"Album Title", "TPE1" =>"Lead Artist", "TIT2"=>"Title",
"TYER"=>"Year", "COMM"=>"Comment", "TLEN"=>"Length", "TFLT"=>"Type"}
desc.default="??"
h="["+@header+"]"+desc[@header]
e=case @encoding
when 0 then "" # ISO-8859-1 (default)
when 1 then "[UTF-16]"
when 2 then "[UTF-16BE]"
when 3 then "[UTF-8]"
else "[UNKNOWN]"
end
case @header
when "COMM"
sprintf("%-20s<%s>",h+e+"["+@data[0..2].show+"]",@data[3..@size-2].show)
when /T.../ then
res=sprintf("%-20s<%s>",h+e,@data.show)
if @header=="TLEN"
res+=sprintf("=%.3f sec.",@data.to_i/1000.0)
elsif @header=="TFLT"
res+="="+{ "MPG"=>"MPEG_Audio",
"/1"=>"MPEG_1/2_layerI", "/2"=>"MPEG_1/2_layerII",
"/3"=>"MPEG_1/2_layerIII", "/2.5"=>"MPEG_2.5",
"/AAC"=>"Advanced_audio_compression ",
"VQF"=>"Transform-domain_weighted_interleave_vector_quantisation",
"PCM"=>"Pulse_code_modulated_audio"}[@data]
end
res
else h.ljust(20)+"<"+@data.show+">"
end
end
end
module ReadID3tag
def read_synchsafe_i
res=0
read(4).unpack("C4").each { |b| res=128*res+b}
res
end
def read_frame
res=ID3V2Frame.new
res.header=read(4)
if res.header[0]==0
seek(-4,IO::SEEK_CUR)
return nil
end
res.size=read_synchsafe_i
res.flags=read(2).unpack("B8B8").join
res.data=read(res.size)
case res.header
when /(T...)|(COMM)/ then res.encoding=res.data.slice!(0)
end
res
end
def read_ID3V2_tag
rewind
if read(3)!="ID3" then return nil end
res=ID3V2tag.new
res.version,res.revision,res.flags=read(3).unpack("CCB8")
res.frames=[]
res.pad=res.size=read_synchsafe_i
while res.pad>=10 and (fr=read_frame)
if res.pad<fr.size+10 then raise "Wrong Frame" end
res.pad-=fr.size+10
res.frames<<fr
end
read(res.pad).each_byte{|i| if i!=0 then raise "non null byte at end" end}
return res
end
def read_ID3V1_tag
seek(-128,IO::SEEK_END)
tag,title,artist,album,year,comment,track,genre=
read(128).unpack("Z3Z30Z30Z30Z4Z28xC1C1")
if tag!="TAG"
nil
else
"ID3V1\nTitle=<"+title.show+">\nArtist=<"+artist.show+">\nAlbum=<"+
album.show+">\nYear="+year.show+"\nComment=<"+comment.show+
">\nTrack="+track.to_s+"\nGenre="+genre.to_s+"\n"
end
end
end
class IO
include ReadID3tag
end
class String
include ReadID3tag
end
Dir["*.mp3"].each{ |f| print "\n{",f,"}\n"
tag=open(f,"rb"){ |fl| print fl.read_ID3V1_tag; fl.read_ID3V2_tag}
print tag,"\n"
if tr=tag["TRCK"] then
newname=sprintf("%02d-%s.mp3",tr.data.to_i,tag["TIT2"].data.tr(
" :`\"\\/*?|","_;''--#_-"))
print "propose rename (y/n/q) to\n",newname
case gets
when "q\n" then break
when "n\n" then next
when "y\n" then File.rename(f,newname)
else raise "should answer q,n or y"
end
end
}