[#363573] change csv file into html table — Pen Ttt <myocean135@...>
there is csv class showtable() function to change csv file into html
2010/6/1 Pen Ttt <myocean135@yahoo.cn>:
[#363586] If else condition in ruby not working — King Maker <sweetzubair@...>
i write simple code for button if button pressed than result is passed
[#363603] Ruby contractors — Jason Jackson <jasonjackson@...>
I apologize in advance if its not appropriate to post here. I found a
[#363639] Parsing geonames — 12 34 <rubyforum@...>
A Ruby newbie having trouble getting results back from geonames
On Wed, Jun 2, 2010 at 2:57 PM, 12 34 <rubyforum@web.knobby.ws> wrote:
Michael Fellinger wrote:
On Wed, Jun 2, 2010 at 1:30 AM, 12 34 <rubyforum@web.knobby.ws> wrote:
I'm confused. It's an array of one element, but that element has some
On Thu, Jun 3, 2010 at 8:44 AM, 12 34 <rubyforum@web.knobby.ws> wrote:
[#363646] installation issue with Ruby gems on Ubuntu 8.04 — Santosh Dvn <santoshdvn@...>
Hi I am installing ruby gems on ubuntu 8.04 .. while installing i got
Santosh Dvn wrote:
Dimitri De Frenne wrote:
On Wed, Jun 2, 2010 at 3:12 AM, Santosh Dvn <santoshdvn@gmail.com> wrote:
Josh Cheek wrote:
On Jun 2, 4:35=A0am, Santosh Dvn <santosh...@gmail.com> wrote:
[#363662] having a class method called only one time ? — unbewusst.sein@... (Une B騅ue)
I'd like having a class method called only one time ?
[#363680] webserver status, need better approach — Walle Wallen <walle.sthlm@...>
Hey, I need a better way of checking if a webserver is online and
On Wed, Jun 2, 2010 at 10:31 AM, Walle Wallen <walle.sthlm@gmail.com> wrote=
I need the timeout timer for servers that have crashed, running
On Wed, Jun 2, 2010 at 12:33 PM, Walle Wallen <walle.sthlm@gmail.com> wrote:
[#363689] TCPSocket error — Ted Pon <ted_pon@...>
Hi all,
On 6/2/10, Ted Pon <ted_pon@hotmail.com> wrote:
Caleb Clausen wrote:
[#363717] gsub with wildcard — "Reinhart Viane" <rv@...>
Hello,
[#363724] dynamicaly define a method which body can contain yield — Regis d'Aubarede <regis.aubarede@...>
Hello,
On Thu, Jun 3, 2010 at 3:28 PM, Regis d'Aubarede
Robert Dober wrote:
[#363725] watir 1.6.5, ruby 1.8.7 and character encoding problem — Mario Ruiz <tcblues@...>
Hi,
[#363731] redirecting stdin for 3. party program — Thomas Secret <martin.gerdes@...>
OS: Debian Lenny
[#363751] indows XP SP2, Ruby 1.9.1: unable to install ruby-debug-ide — Tomasz Romanowski <techy_bolek@...>
On my Windows XP SP2 I got Ruby 1.9.1 I downloaded from
[#363752] Ruby Mendicant University — Gregory Brown <gregory.t.brown@...>
Hi folks,
[#363756] comparing objects — Anderson Leite <andersonlfl@...>
How can I compare two objects and get true if some of his atributes are
Anderson Leite wrote:
On Fri, Jun 4, 2010 at 3:41 AM, Marcin Wolski <wolskint@o2.pl> wrote:
Robert Dober wrote:
2010/6/4 Marcin Wolski <wolskint@o2.pl>:
Before
On 05.06.2010 00:35, Anderson Leite wrote:
First, let's be clear about the semantics of the various comparison methods:
On Sat, Jun 5, 2010 at 8:55 PM, Rein Henrichs <reinh@reinh.com> wrote:
I think that this is now well outside the scope of the original topic,
On 2010-06-10 06:59:40 -0700, Robert Dober said:
On 06/10/2010 05:27 PM, Rein Henrichs wrote:
On Thu, Jun 10, 2010 at 6:10 PM, Robert Klemme
On 10.06.2010 18:27, Robert Dober wrote:
On Fri, Jun 11, 2010 at 6:47 PM, Robert Klemme
On 2010-06-10 07:20:03 -0700, Mark Abramov said:
[#363761] Use a core C function not included in intern.h — Shinku Fag <tinbka@...>
Hello.
[#363764] Documenting Ruby 1.9: Ebook or Wiki? — Run Paint Run Run <runrun@...>
I'm writing a free ebook about Ruby 1.9 at http://ruby.runpaint.org/ .
On 4/6/2010 11:30 AM, Run Paint Run Run wrote:
> I'd say wiki - if it's in Markdown or Textile, it could be easy enough to
On 4/6/2010 11:55 AM, Run Paint Run Run wrote:
On 4 Jun 2010, at 05:17, Mohit Sindhwani wrote:
In the absence of a consensus, I suppose I'll keep to this kind of
[#363775] Looking for ORM for 'legacy' database. — Dave Howell <groups.2009a@...>
I feel I should start with some pre-emptive apologies. I used to =
On Jun 4, 3:29=A0am, Dave Howell <groups.20...@grandfenwick.net> wrote:
On 6/7/2010 4:05 PM, Dave Howell wrote:
Dave Howell wrote:
Dave Howell wrote:
[#363777] Unexpected length of 贈 (pound) character? — Anthony Ss <anthony@...>
Hi,
[#363782] method_defined? does what exactly? — Intransition <transfire@...>
Ruby 1.9.2-head
On Fri, Jun 4, 2010 at 1:27 PM, Intransition <transfire@gmail.com> wrote:
Hmm maybe I was not very clear in my last post ;)
On Jun 4, 8:18=A0am, Rob Biedenharn <R...@AgileConsultingLLC.com> wrote:
[#363800] class variables and modules — Ill Everbe <illeverbe@...>
I am trying to keep a history of object state in a parent class using a
[#363814] pack('m') and Windows files — Emiliano Vavassori <syntaxerrormmm@...>
Hi all,
[#363837] Clearing TOPLEVEL_BINDING for reuse — Intransition <transfire@...>
Is there anyway to delete all the local and instance variables in a
[#363843] Processing (potentially) nil method without using nested if — Ben Vishny <bvishny@...>
Hi all,
[#363847] 1.9 warning for 'private' and possible bug — Joel VanderWerf <joelvanderwerf@...>
[#363864] threads & mutex question (Rubyist book example) — Suraj Kurapati <sunaku@...>
Hi,
[#363865] Please explain this "Why's" example please — Kaye Ng <sbstn26@...>
I'm reading Why's Poignant Guide to Ruby.
From Why's example:
[#363869] Packaging common code with gems — "R.. Kumar" <sentinel1879@...>
Let's say I have some common code, I use in various scripts or ruby
[#363883] inject method of Array class — RichardSchollar <richardgschollar@...>
I have only just started using Ruby (and am a total noob, in case this
On 2010-06-06 17:55:58 -0700, David A. Black said:
[#363884] Singleton classes and Namespce — Intransition <transfire@...>
Do singleton classes not get the same namespace treatment as normal
2010/6/6 Intransition <transfire@gmail.com>:
[#363905] Unit Testing good study material — Lakshmanan Muthukrishnan <lakshmanan@...>
I am a beginner in ruby and I have read the "Unit testing" chapter in
On Mon, Jun 7, 2010 at 12:40 AM, Lakshmanan Muthukrishnan
[#363906] Very simple programming exercises — Lakshmanan Muthukrishnan <lakshmanan@...>
Hi,
On Sun, Jun 6, 2010 at 11:48 PM, Lakshmanan Muthukrishnan <
Josh Cheek wrote:
[#363916] using TkEntry with copy/paste — Mathew Cucuzella <kookjr@...>
I'm writing a Ruby/Tk program where I want a TkEntry field with a
[#363934] Question about abbreviated indexing assignments — Jörg W Mittag <JoergWMittag+Ruby@...>
Hi!
[#363944] Complex numbers contradiction? — Andrew Duncan <andrew.duncan@...>
This looks correct:
On Mon, Jun 7, 2010 at 9:01 PM, Andrew Duncan <andrew.duncan@sonos.com> wrote:
I have ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
On Mon, Jun 7, 2010 at 3:33 PM, Robert Dober <robert.dober@gmail.com> wrote=
[#363950] questions of idiom — Collins <ccw.in.nc@...>
Hello List
[#363968] opengl problem (from gears sample) — Roberto Cm <roberto.tomas.cuentas@...>
I wanted to take a look at ruby's opengl but I'm having issues -- can
[#363972] keep eventmachine app running — Vect Vect <vectorno@...>
I want to find out how to get a event machine app running in the
Vect Vect wrote:
[#363976] Mr Bones — Tim Pease <tim.pease@...>
Mr Bones is a collection of rake tasks and a ruby command line =
[#363977] Defining struct in a class — William Song <wei_song1990@...>
How can I properly define a struct in a class?
[#364003] atomic 0.0.1 - An atomic reference for Ruby — Charles Oliver Nutter <headius@...>
atomic: An atomic reference implementation for JRuby and green or GIL-threaded
On Tue, Jun 8, 2010 at 6:06 AM, Charles Oliver Nutter
[#364010] Rubyzip - `dup': can't dup NilClass (TypeError) — Luka Stolyarov <lukich@...>
Hello. I've trying to figure out rubyzip. Here's the code I had:
Luka Stolyarov wrote:
I'll give it a try, thank you!
Luka Stolyarov wrote:
The 1.57 zipfile on this page fails for me:
Scott Bronson wrote:
Brian Candler wrote:
[#364038] How can I use Ruby with MS Excel? — Jason Lillywhite <jason.lillywhite@...>
As much as I hate to say it, Microsoft Excel is here to stay and will
Jason Lillywhite wrote:
On Tue, Jun 8, 2010 at 9:25 AM, Marvin G=FClker <sutniuq@gmx.net> wrote:
[#364047] Errno::ENOEXEC — Santhosh Kattissery <santhosh214@...>
I have the following line in my code:
(Apologies if this is a dupe... I sent a reply email to the ML but
Thanks for you reply.
[#364063] newbie question — lalawawa <usenet@...>
In perl, one is able to sort of 'declare' variables by mentioning them
[#364083] First Gem -- What can I model after? — sir ziggles <zigxxx@...>
Hi guys,
[#364092] Photos — Jeremy Axman <axman463@...>
Another thing..
[#364101] Why private #binding? — Intransition <transfire@...>
Why is #binding a private method? I end up doing a lot of this:
On Thu, Jun 10, 2010 at 12:38 AM, Intransition <transfire@gmail.com> wrote:
Hi,
Hi,
On Thu, Jun 10, 2010 at 5:08 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wr=
[#364108] Metaprograming — Sateesh Kambhamapati <sateesh.mca09@...>
On Thu, Jun 10, 2010 at 11:53 AM, Sateesh Kambhamapati
[#364118] How to print something with erb? — Dominic Rose <ofusiono@...>
Hello,
[#364127] RVM Snow Leopard — Ken Foust <fousto@...>
I just put in a new disk and I would like to install rvm in
[#364132] Question about testing self.inherited — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...>
Hi,
[#364160] Mechanize output:strange number — Pen Ttt <myocean135@...>
require 'mechanize'
[#364166] Option parsers that support single-dash words? — Jos Backus <jos@...>
Hi,
On 11.06.2010 07:40, Jos Backus wrote:
[#364171] case when and class — unbewusst.sein@... (Une B騅ue)
I've found in case / when if the case is about a class :
[#364172] creating a gem structure for command line program — "R.. Kumar" <sentinel1879@...>
I've written a command line program. Would like to distribute it as a
On 2010-06-11 00:15:24 -0700, R.. Kumar said:
Rein Henrichs wrote:
[#364194] require command problem — Pen Ttt <myocean135@...>
i have write a class ,use command to put in the
[#364214] Business hours processing — Sławosz Sławiński <slawosz@...>
Hi,
[#364232] Does Oniguruma support unicode properties?? — Ntys Dd <ntysdd@...>
Well,when i want to use property in the regexp,ruby does complain that
[#364249] nokogiri error on snow leopard — Emmanuel Mercado <ermercado@...>
hi,
[#364262] require fails when requiring scripts with utf-8 filenames. — Daniel Jonson <odengfel@...>
Hi, I have a small problem with requiring files with utf-8 character in
[#364268] State of the union for Ruby CLI libraries? — John Feminella <johnf@...>
I am starting construction on a somewhat complicated internal
On 2010-06-13 09:07:31 -0700, John Feminella said:
Thomas Sawyer wrote:
On 20.06.2010 12:47, R.. Kumar wrote:
[#364269] Do I overuse class methods? — Michał Zając <spam@...>
Hello,
[#364272] Idiomatic Printing an array with commas — Chuck Brotman <brotman@...>
Hi,
[#364273] Loading a module without polluting my namespace — Hagbard Celine <sin3141592@...>
Hey folks!
Hagbard Celine wrote:
Thanks for your reply but I'm afraid that doesn't solve my problem. I
Hagbard Celine wrote:
Joel VanderWerf wrote:
[#364305] Is there a current ruby binding to libevent? — Reid Thompson <reid.thompson@...>
Is anyone aware of a current binding to libevent?
On Mon, Jun 14, 2010 at 6:38 AM, Reid Thompson <reid.thompson@ateb.com>wrote:
[#364312] Regular expressions in Ruby — Abder-rahman Ali <abder.rahman.ali@...>
I'm new to Ruby, and just want to ask about how to read the following
[#364330] shorthand — Roger Pack <rogerpack2005@...>
I read this once:
Roger Pack wrote:
[#364331] split doesn't work — Jennifer Lee <jmasonlee@...>
I have code:
[#364342] Placement of require() and missing symbols — Eric MSP Veith <eveith@...>
-----BEGIN PGP SIGNED MESSAGE-----
On Mon, Jun 14, 2010 at 7:18 PM, Eric MSP Veith
Kirk,
On Tue, Jun 15, 2010 at 12:25 PM, Eric MSP Veith
I tried to unsubscribe on May 15th and I see I am still getting ruby
[#364349] gsub: invalid byte sequence in US-ASCII — "R.. Kumar" <sentinel1879@...>
I download the page http://www.ruby-forum.com/forum/4 using wget. Then i
[#364359] Unexpected behavior in inject — Alex Fort <imphasing@...>
I ran across something that puzzled me today, and I thought I'd ask here and
[#364371] datamapper blues — Martin DeMello <martindemello@...>
I'm investigating the use of DataMapper to convert an old project with
Richard,
[#364391] Simulating keystrokes for automated user input — Ryan Mohr <ryan.mohr@...>
I've written a simple console app (type command. get results. repeat.)
Ryan Mohr wrote:
Brian Candler wrote:
[#364402] Getting rid of self — Ralph Shnelvar <ralphs@...32.com>
Have you tried it like this?
On Wed, Jun 16, 2010 at 4:31 AM, Ralph Shnelvar <ralphs@dos32.com> wrote:
On 2010-06-16 11:01:47 -0700, Josh Cheek said:
On Wed, Jun 16, 2010 at 1:45 PM, Rein Henrichs <reinh@reinh.com> wrote:
On Wed, Jun 16, 2010 at 3:23 PM, Josh Cheek <josh.cheek@gmail.com> wrote:
On Wed, Jun 16, 2010 at 2:56 PM, Rick DeNatale <rick.denatale@gmail.com>wrote:
[#364412] Rubyforge => Redmine — Tom Copeland <tom@...>
Hi all -
[#364415] Android apps using ruby — Lakshmanan Muthukrishnan <lakshmanan@...>
Hi,
Lakshmanan Muthukrishnan wrote:
Andrew Kaspick wrote:
On Wed, Jun 16, 2010 at 11:34 PM, Lakshmanan Muthukrishnan <
So here's the skinny on Ruby on Android (which I've dubbed "Ruboto")
This link will be very useful for you:
I don't find the Rhomobile way very appealing. I want to be able to
[#364418] strange behaviour if exploding parameters — Jarmo Pertman <jarmo.p@...>
Hello!
[#364426] Input/Output to IRB using Pipes — Narayanan K <knarayanan88@...>
Hi,
[#364427] Encoding, "extended ansi", and unicode in 1.9 — Dennis Nedry <dennis@...>
I have a routine for converting ansi with "extended" ibm characters to
[#364474] Socket Problems — Doug Jolley <ddjolley@...>
I want to use a Ruby script to connect to a vendor API. I have 2
[#364480] RegEx Tutorial? — Siddarth Chandrasekaran <chandrasekaran.siddarth@...>
I looked through the archives, but couldn't find a comprehensive
[#364496] nothing new in ruby_core for four days ? — Michel Demazure <michel@...>
The Ruby Core forum has no new entry since four days ago.
Michel Demazure wrote:
Brian Candler wrote:
Michel Demazure wrote:
Brian Candler wrote:
Michel Demazure wrote:
[#364507] method interface - hash argument vs. named parameters — Intransition <transfire@...>
I've never run into this issue before, but I'm working on a method
[#364529] Dear gem: still no zlib. — Dave Howell <groups.2009a@...>
I really really regret ever installing SnowLeopard.=20
On Thu, Jun 17, 2010 at 11:46 AM, Dave Howell
On Thu, Jun 17, 2010 at 12:16 PM, Dave Howell
[#364568] How to print exit status to a log file? — Martin Hansen <mail@...>
Hello,
2010/6/18 Martin Hansen <mail@maasha.dk>:
I would like to print the exit status from within the current Ruby
Please don't top post.
Hm, I am not making myself clear :o( - It is the status of the ruby
[#364571] What kind of testing for executables? — Intransition <transfire@...>
What kind of testing is it when you test a projects executables:
[#364580] String comparison. Why does Ruby consider this true? — Abder-rahman Ali <abder.rahman.ali@...>
When I try for example to compare the following strings in Ruby, I get
On Fri, Jun 18, 2010 at 12:46 PM, Abder-rahman Ali <
On Sat, Jun 19, 2010 at 3:43 AM, Josh Cheek <josh.cheek@gmail.com> wrote:
On Fri, Jun 18, 2010 at 4:09 PM, Michael Fellinger <m.fellinger@gmail.com>wrote:
[#364587] Is there a method I can call where: — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...>
[#364594] App with lots of business logic — Josh Cheek <josh.cheek@...>
Hi, starting basically my biggest project to date (a Rails app). I wasn't
[#364596] Is there an environment variable that gives me line number and file? — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...>
External from the trace stuff that is. I just want the line number and file I'm
[#364618] General Ruby OOP question — "Paul A." <cyril.staff@...>
Hello,
[#364628] Random Points within a Circle (#234) — Daniel Moore <yahivin@...>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
On 6/19/10, Daniel Moore <yahivin@gmail.com> wrote:
On 6/21/10, Dave Howell <groups.2009a@grandfenwick.net> wrote:
* Benoit Daloze <eregontp@gmail.com> wrote:
[#364632] QED v2.2.0 released — transfire@...
QED 2.2.0 has been released.
Is that a typo in your work url? protuils? :)
[#364638] Thread Timeout — Francesco Vollero <ravenz@...2.ie>
Hi list,
[#364641] Namespacing a class — Eric MSP Veith <eveith@...>
-----BEGIN PGP SIGNED MESSAGE-----
Eric MSP Veith wrote:
Gary Wright wrote:
On 6/22/10, J=C3=B6rg W Mittag <JoergWMittag+Ruby@googlemail.com> wrote:
2010/6/24 Caleb Clausen <vikkous@gmail.com>:
2010/6/24 Intransition <transfire@gmail.com>:
On Jun 24, 11:58=A0am, Robert Klemme <shortcut...@googlemail.com> wrote:
[#364642] General Confusion — Chuck Brotman <brotman@...>
I'm confused! I may have bitten off more than I can chew!
On 20.06.2010 20:20, Chuck Brotman wrote:
[#364667] Ruby Basic — "Raveendran .P" <jazzezravi@...>
Hi All,
[#364703] Got to be a better way to code class variables.... — Dave Howell <groups.2009a@...>
I'm trying to set up an object with overridable defaults, so it will act =
[#364715] script for production server — Florent THOMAS <mailinglist@...>
Hello,
[#364721] Help with Ruby return types and documentation — Tasos Laskos <zapotek@...>
Hi guys,
2010/6/22 Tasos Laskos <zapotek@segfault.gr>:
Robert Klemme wrote:
On Tue, Jun 22, 2010 at 4:59 PM, Tasos Laskos <zapotek@segfault.gr> wrote:
[#364735] print gem VERSION from ruby program — "R.. Kumar" <sentinel1879@...>
jeweler maintains a file VERSION in the base directory.
, note that File.open("../VERSION") fails since
On 2010-06-22 11:38:09 -0700, Roger Pack said:
[#364747] Recommended library for parsing RSS and Atom feeds — Richard Conroy <richard.conroy@...>
Hi,
On Jun 22, 8:09=A0pm, Richard Conroy <richard.con...@gmail.com> wrote:
[#364756] SQLite placeholder problem — Yuriy Skobov <yuriyskobov@...>
Hi,
[#364761] Iterate over specific keys in a hash — Safas Khkjh <ryandewhurst@...>
Hi,
[#364784] MD5 Checksum of a String — Doug Jolley <ddjolley@...>
The script shown in Exhibit A submits a test string to 3 different
[#364786] Finding a project's root directory — Intransition <transfire@...>
As I continue to work project development tools I repeatedly run into
[#364796] marshalled data in 1.9 — Roger Pack <rogerpack2005@...>
Is there the possibility this would fail in 1.9?
On Jun 23, 2010, at 7:01 PM, Roger Pack wrote:
[#364815] Count substrings in string, scan too slow — Danny Challis <dannychallis@...>
Hello everyone,
On Thu, Jun 24, 2010 at 5:04 PM, Danny Challis <dannychallis@gmail.com> wro=
2010/6/24 Jes=FAs Gabriel y Gal=E1n <jgabrielygalan@gmail.com>:
On Fri, Jun 25, 2010 at 12:05 AM, Robert Klemme
On Fri, Jun 25, 2010 at 1:35 AM, botp <botpena@gmail.com> wrote:
On Fri, Jun 25, 2010 at 1:16 AM, Michael Fellinger > I've just run
On Thu, Jun 24, 2010 at 1:16 PM, Michael Fellinger
> http://en.literateprograms.org/Boyer-Moore_string_search_algorithm_%28Jav=
[#364830] Is the CGI instance "html" method no longer available? — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...>
> undefined method `html' for #<CGI:0xb783f268> (NoMethodError)
[#364842] Liquid tests in ruby 1.9.2 — Miguel Teixeira <miguelfteixeira@...>
Good evening,
[#364850] Happy Intransition Day! — Ryan Davis <ryand-ruby@...>
Happy Intransition Day!
MINBWAAJ?
On Thu, Jun 24, 2010 at 6:43 PM, Martin DeMello <martindemello@gmail.com> w=
On Tue, Jun 29, 2010 at 11:56 PM, Eric Christopherson
Intransition wrote:
On 9 Jul 2010, at 13:00, J=F6rg W Mittag wrote:
[#364861] Singleton class in Ruby — Manoj Kumar <manojs.nitt@...>
Can we see the singleton class as object in ruby.
On Fri, Jun 25, 2010 at 6:11 AM, Manoj Kumar <manojs.nitt@gmail.com> wrote:
Jes炭s Gabriel y Gal叩n wrote:
[#364875] Highline giving EOFERROR, input stream exhausted — "R.. Kumar" <sentinel1879@...>
I am first taking multiline input from user. User may end input using
On Jun 25, 2010, at 5:36 AM, R.. Kumar wrote:
[#364881] redirecting the end of a pipe — Thomas Secret <martin.gerdes@...>
Following interesting problem:
[#364892] RDazzle v1.3.0 released — transfire@...
= RDazzle
[#364893] $? is always new? — Roger Pack <rogerpack2005@...>
Is the following expected?
[#364894] RCR: IO.popen4 — Roger Pack <rogerpack2005@...>
Currently with the std lib there is no (built in) way to get the PID of
[#364905] getting array input from command line — Ted Flethuseo <flethuseo@...>
Hi everyone,
[#364911] DNote v1.4.0 released — transfire@...
DNote 1.4.0 has been released.
[#364928] Ruby's RDocs — Intransition <transfire@...>
Thanks to Josh Cheek I finally went and started the documentation
[#364930] Ruby in JavaScript, all projects are dead? — Alexey Petrushin <axyd80@...>
Hello, recently I've examined some of the projects that trying to bring
Similar but different:
UPD, this one seems to be interesting and is very active. And (a big
[#364937] Convert \uXXXX to character — born in USSR <psixxx@...>
I have string: '\u041f\u0440\u0438\u0432\u0435\u0442!' and i need to
[#364938] newbie - WEbrick, config/routes.rb and multiple instances — Iain Barnett <iainspeed@...>
Hi,
On Sun, Jun 27, 2010 at 8:01 AM, Iain Barnett <iainspeed@gmail.com> wrote:
[#364961] how i execute a method variable numer of times — Noose Dinli <unter_noob@...>
hi ruby
[#364967] passing a block to yield — Andy Bogdanov <andy.bogdanov@...>
Hello
[#364968] pretty inspecting objects? — Jarmo Pertman <jarmo.p@...>
Hello!
[#364988] Reading String Data as a File — Doug Jolley <ddjolley@...>
I use Net::HTTP to collect some data as a string. I now need to pass
Ryan Davis wrote:
> If it takes only a pathname argument, then you're
On Tue, Jun 29, 2010 at 11:50 AM, Doug Jolley <ddjolley@gmail.com> wrote:
2010/6/29 Tony Arcieri <tony.arcieri@medioh.com>:
Robert Klemme wrote:
2010/6/30 Brian Candler <b.candler@pobox.com>:
Robert Klemme wrote:
2010/6/30 Brian Candler <b.candler@pobox.com>:
On Jun 30, 2010, at 7:53 AM, Brian Candler wrote:
James Edward Gray II wrote:
[#364995] editing text using $EDITOR from program — "R.. Kumar" <sentinel1879@...>
Does Highline or Thor/Facets/ActiveSupport etc have a method for when
[#365007] Multi-cpu and ruby Threading — Regis d'Aubarede <regis.aubarede@...>
Hello,
[#365009] Using RubyGems — Abder-rahman Ali <abder.rahman.ali@...>
What does (find) in require 'find' do?
[#365039] pathname.rb:270: warning: `*' interpreted as argument prefix — "R.. Kumar 1.9.1 OSX" <sentinel1879@...>
/opt/local/lib/ruby1.9/1.9.1/pathname.rb:270: warning: `*' interpreted
On Wed, Jun 30, 2010 at 6:11 AM, R.. Kumar 1.9.1 OSX <sentinel1879@gmail.com
Josh Cheek wrote:
On Thu, Jul 1, 2010 at 12:55 AM, R.. Kumar 1.9.1 OSX <sentinel1879@gmail.com
On Thu, Jul 1, 2010 at 8:46 AM, Josh Cheek <josh.cheek@gmail.com> wrote:
[#365052] Best practices resource/guidance for strings — Cs Webgrl <cschaller@...>
Hello,
[#365080] AUDIO FILE DOWNLOAD IN RUBY — kevid <alumsimportant@...>
hi all,
require 'net/http'
hi, tanks for your response.
Re: questions of idiom
On 07.06.2010 21:28, Collins wrote:
> Hello List
>
> I am relatively new to ruby. I have set myself the problem of writing
> a lexical analyzer in ruby to learn some of it's capabilites. I have
> pasted the code for that class and for the calling test harness
> below. I beg the lists indulgence in several ways
>
> 1) has this problem already been solved in a "gem"? I'd love to see
> how a more sophisticated rubyist solves it
There are certainly parser and lexer generators for Ruby. I cannot
remember one off the top of my head but you'll likely find one in RAA:
http://raa.ruby-lang.org/search.rhtml?search=lexer
http://raa.ruby-lang.org/search.rhtml?search=parser
> 2) There is object manipulation with which I'm still not comfortable.
> In particular, in the buffer manipulation code in the method analyze
> makes me unhappy and I'd be happy to receive instructions in a better
> way to do it
> 3) Every lanuage has its idioms. I'm not at all sure that I'm using
> the best or most "ruby-like" way of doing certain things. Again I
> welcome suggestions.
>
> Thanks in advance
>
> Collins
>
> ##### code snippet 1 ######
> class Rule
> attr_reader :tokID, :re
> def initialize(_tokID, _re)
> @tokID = _tokID
> @re = _re
> end
>
> def to_s
> self.class.name + ": " + @tokID.to_s + "::= " + @re.to_s
> end
> end
There are several things in the code above: we use tok_id instead of
tokID for members and instance variables. Only classes use CamelCase.
Also it seems highly uncommon to start identifiers with an underscore.
An alternative way to create the String would be
def to_s
"#{self.class.name}: #{@tok_id}::= #{@re}"
end
String interpolation implicitly applies #to_s.
Finally you can define that class in one line:
Rule = Struct.new :tok_id, :re
> class Match
> attr_reader :rule, :lexeme
> def initialize(_r, _s)
> @rule = _r
> @lexeme = _s
> end
>
> def to_s
> self.class.name + ": " + @rule.to_s + "\nmatches: " + @lexeme.to_s
> end
> end
>
> class Lexer
> attr_reader :errString
> # keep a collection of regular expressions and values to return as
> token
> # types
> # then match text to the longest substring yet seen
> def initialize
> @rules = Array.new
If you are lazy you can as well do
@rules = []
> @buff = String.new
We usually simply do
@buff = ""
This also creates a new empty String and is easier to spot.
> @aFile = nil
> @errString = nil
> end
>
> def addToken (tokID, re)
> if re.class.name == "String"
> @rules<< Rule.new(tokID, Regexp.new(re))
> elsif re.class.name == "Regexp"
> @rules<< Rule.new(tokID, re)
> else
> print "unsupported type in addToken: ", re.class.name, "\n"
> end
> end
def add_token(tok_id, re)
@rules << Rule.new(tok_id,
case re
when String
Regexp.new(re)
when Regexp
re
else
raise ArgumentError, "Neither String nor regexp"
end)
end
"case" works by using the #=== operator which happens do be defined for
classes as kind_of? check. It's also safer to work with class instances
than with class names.
In error cases we throw exceptions and let the someone up the call chain
decide how to deal with the error. In your case you just get output on
the console which might not be appropriate in all cases.
> def findMatch
> maxLexeme, maxMatch = String.new, nil
> matchCount, rule2 = 0, nil
> @rules.each { |rule|
> # loop invariant:
> # maxLexeme contains the longest matching prefix of @buff found
> so far,
> # matchCount contains the number of rules that have matched
> maxLexeme,
> # maxMatch contains the proposed return value
> # rule2 contains a subsequent rule that matches maxLexeme
> #
> # if rule matches from beginning of @buff AND
> # does not match all of @buff AND
> # match is longer than previous longest match
> # then update maxMatch and maxLexeme and matchCount and rule2
> #
> # but... we have to avoid matching and keep looking if we make
> it to the
> # end of @buff with a match active (it could still collect more
> # characters) OR if more than one match is still active. If the
> end of
> # the @buff is also the end of the file then it's ok to match to
> the end
> #
> # TODO: think about prepending an anchor to the regexp to
> eliminate the
> # false matches (those not to the beginning of the @buff)
> #
>
> md = rule.re.match(@buff)
> if !md.nil?&& md.pre_match.length == 0
> if md[0].length == @buff.length&& !@aFile.eof?
> # @buff is potentially ambiguous and there is more file to parse
> return nil
> elsif md[0].length> maxLexeme.length
> # either matching less than whole buffer or at eof AND
> # match is longer than any prior match
> matchCount, rule2 = 1, nil
> maxLexeme, maxMatch = md[0], Match.new(rule,md[0])
> elsif md[0].length == maxLexeme.length
> # a subsequent match of equal length has been found
> matchCount += 1
> rule2 = rule
> else
> # short match... skip
> end
> else
> # either rule did not match @buff OR
> # rule did not match the start of @buff
> end
> }
> if !maxMatch.nil?&& matchCount == 1
> #return an unambiguous match
> return maxMatch
> elsif !maxMatch.nil?&& matchCount> 1
> print "ambiguous: ", maxLexeme, " : ", maxMatch.rule.to_s, " :
> ",
> rule2.to_s, "\n"
> return nil
> else
> # no match was found
> return nil
> end
> end
Somehow this method seems a bit lengthy. I did not look too deep into
the details but I'd probably pick a different strategy. First, I'd
anchor expressions (like you suggested in your comment). Then I'd just do
matches = {}
@rules.each do |rule|
m = rule.re.match and matches[rule] = m
end
matches
Now you know that
case matches.size
when 0
# nothing matches any more, take last match and strip
# buffer
when 1
# single match, remember as last match
else
# many matches, continue
end
If you place that in a loop that adds a character to the buffer at a
time and then invokes find_match you can do the evaluation like
indicated above.
> def analyze
> aMatch = findMatch
> if !aMatch.nil?
> #remove matched text from buff
> oldBuff = String.new(@buff)
> newBuff = @buff[aMatch.lexeme.length,@buff.length-1]
> if oldBuff != aMatch.lexeme + newBuff
> puts oldBuff
> puts "compare failure!"
> puts aMatch.lexeme + newBuff
> end
> @buff = newBuff
> end
> return aMatch
> end
>
> def parseFile(_name)
> @fileName = _name
> @aFile = File.new(@fileName, "r")
> @aFile.each {|line|
Better use the block form of File.open() or use File.foreach. That way
you can be sure that the file handle is always properly closed. See
http://blog.rubybestpractices.com/posts/rklemme/001-Using_blocks_for_Robustness.html
I'd also choose a different reading strategy - one character at a time
or fixed buffer width. But I would not read lines
> # add lines from file to @buff... after each addition yield as
> many
> # tokens as possible
> @buff += line
@buff << line
is more efficient.
> # comsume all the tokens from @buff that can be found... when no
> more
> # can be found analyze will return nil... so we'll get another
> line
> aMatch = analyze
> while !aMatch.nil?
> # deliver one<token, lexeme pair> at a time to caller...
> # by convention a nil tokID is one about which the caller does not
> # care to hear...
> yield aMatch.rule.tokID, aMatch.lexeme if !
> aMatch.rule.tokID.nil?
> aMatch = analyze
> end
> }
> # @buff contains the earliest unmatched text... if @buff is not
> empty when
> # we finish with the file, this is an error
> if !@buff.empty?
> @errString = "error: unmatched text:\n" + @buff[0,[80,
> @buff.length].min]
> return false
> else
> @errStrng = "no errors detected\n"
> return true
> end
> end
> end
>
> ##### code snippet 2 ######
>
> WhiteSpaceToken = 0
> CommentToken = 1
> QuotedStringToken = 2
> WordToken = 3
I would rather use Symbols as token keys (names). They are similarly
efficient but make the constant definitions superfluous.
> require "lexer"
> l = Lexer.new
> l.addToken(nil, Regexp.new("\\s+", Regexp::MULTILINE))
> l.addToken(nil, Regexp.new("#.*[\\n\\r]+"))
> #l.addToken(QuotedStringToken, Regexp.new('["][^"]*["]',
> Regexp::MULTILINE))
> l.addToken(QuotedStringToken,'["]((\\\")|[^\\\"])*"')
> l.addToken(WordToken,Regexp.new("\\w+"))
> foo = l.parseFile("testFile1") { |token, lexeme|
> print token.to_s + ":" + lexeme.to_s + "\n"
> }
> if foo
> print "pass!\n"
> else
> print "fail: " + l.errString + "\n"
> end
There are of course completely different strategies to tackle this.
Lexers usually are built as a DFA or NFA (like every Regexp
implementation uses internally). You would then feed a character at a
time to the FA and derive token types from states.
Also, another option would be to lump all tokens into a single regular
expression with group matches for every token type and analysing
matchign groups, e.g.
re = %r{
(\s+) # white space
| ("(?:\\.|[^"\\])*") # quoted string
}x
File.read(file_name).scan re do |m|
case
when $1
printf "whitespace %p\n", $1
when $2
printf "quote %p\n", $2
else
raise "Cannot be, scanner error"
end
end
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/