[#35036] Intentional Programming — "John" <nojgoalbyspam@...>

Hi all

17 messages 2002/03/01

[#35112] RDoc question — Michael Davis <mdavis@...>

I have a question about RDoc. I would like to reference an external

17 messages 2002/03/02

[#35162] string to array and back — Ron Jeffries <ronjeffries@...>

I am needing to convert strings to arrays of bytes and back. I see pack and

19 messages 2002/03/03

[#35364] file reading impossibly slow? — Ron Jeffries <ronjeffries@...>

So I'm doing this benchmark to work with my set program. Part of the problem is

18 messages 2002/03/07

[#35429] Interesting link on static/dynamic typing... — Robert Feldt <feldt@...>

...relevant to Ruby compared to other languages discussion:

25 messages 2002/03/08
[#35441] Re: Interesting link on static/dynamic typing... — Paul Brannan <paul@...> 2002/03/08

On Fri, Mar 08, 2002 at 05:34:43PM +0900, Robert Feldt wrote:

[#35460] Spam, ruby-talk, and me — Dave Thomas <Dave@...>

14 messages 2002/03/08

[#35537] Confusion — David Corbin <dcorbin@...>

The following is from my debugging through xmlc.rb

16 messages 2002/03/10

[#35579] RE: WIN32OLE and LDAP — "Morris, Chris" <chris.morris@...>

> The new version 0.4.2 of Win32OLE has WIN32OLE.bind method.

16 messages 2002/03/11

[#35652] Method type 'abstract' — Peter Hickman <peter@...>

The one thing I miss in Ruby is the abstract class method to go along

15 messages 2002/03/12

[#35653] Some potential RCRs — "Bob Alexander" <bobalex@...>

Here are a few thing I am considering submitting as RCRs. I'm looking for comments to help decide whether to make them official, so please let know what you think is good and bad about these...

50 messages 2002/03/12
[#35672] Re: Some potential RCRs — matz@... (Yukihiro Matsumoto) 2002/03/12

Hi,

[#35683] Re: Some potential RCRs — Massimiliano Mirra <list@...> 2002/03/12

On Wed, Mar 13, 2002 at 03:58:01AM +0900, Yukihiro Matsumoto wrote:

[#35697] Re: Some potential RCRs — David Alan Black <dblack@...> 2002/03/13

Hello --

[#35694] rpkg 0.3 — Massimiliano Mirra <list@...>

14 messages 2002/03/13
[#35699] RE: [ANN] rpkg 0.3 — <james@...> 2002/03/13

>

[#35787] testunit - setup -> set_up ? — "Morris, Chris" <chris.morris@...>

I'm just starting to use testunit instead of rubyunit ... I noticed with an

21 messages 2002/03/13
[#35793] RE: testunit - setup -> set_up ? — "Nathaniel Talbott" <nathaniel@...> 2002/03/13

Morris, Chris [mailto:chris.morris@snelling.com] wrote:

[#35796] Re: testunit - setup -> set_up ? — Dave Thomas <Dave@...> 2002/03/13

"Nathaniel Talbott" <nathaniel@talbott.ws> writes:

[#35797] RE: testunit - setup -> set_up ? — "Nathaniel Talbott" <nathaniel@...> 2002/03/13

dave@thomases.com [mailto:dave@thomases.com] wrote:

[#35898] camelCase and underscore_style — "Morris, Chris" <chris.morris@...>

First, a question. If underscore_style is the Ruby norm for methods and the

20 messages 2002/03/15
[#35924] Re: camelCase and underscore_style — "Guy N. Hurst" <gnhurst@...> 2002/03/15

Phil Tomson wrote:

[#35930] RE: camelCase and underscore_style — "Nathaniel Talbott" <nathaniel@...> 2002/03/16

Guy N. Hurst [mailto:gnhurst@hurstlinks.com] wrote:

[#35989] ANN: Locana GUI and GUI Builder version 0.81 — Michael Davis <mdavis@...>

I am pleased to announce release 0.81 of Locana. Locana is a GUI

16 messages 2002/03/16

[#35992] XPath — Michael Schuerig <schuerig@...>

27 messages 2002/03/16

[#36034] Mini Rant: Indenting — Thomas Hurst <tom.hurst@...>

Why is it that I see *so* much code like:

14 messages 2002/03/17

[#36049] web templating for static sites? — Massimiliano Mirra <list@...>

I'm using the Template Toolkit for generating static web sites and I

42 messages 2002/03/17
[#36426] web standars (was: web templating for static sites?) — Tobias Reif <tobiasreif@...> 2002/03/20

Albert Wagner wrote:

[#36052] Xml Serialization for Ruby — "Chris Morris" <chrismo@...>

=Xml Serialization for Ruby

20 messages 2002/03/17
[#36059] Re: [ANN] Xml Serialization for Ruby — Massimiliano Mirra <list@...> 2002/03/17

On Mon, Mar 18, 2002 at 05:20:56AM +0900, Chris Morris wrote:

[#36067] eval/Module question — David Corbin <dcorbin@...>

If I have a String src that is similar to the following:

13 messages 2002/03/18

[#36157] Development of Windows version of Ruby — ptkwt@...1.aracnet.com (Phil Tomson)

Now that we've dumped the cygwin requirement for the Windows version of

63 messages 2002/03/18
[#36330] Re: Development of Windows version of Ruby — Ron Jeffries <ronjeffries@...> 2002/03/19

On Tue, 19 Mar 2002 14:05:27 GMT, "Albert L. Wagner" <alwagner@uark.edu> wrote:

[#36431] Re: Development of Windows version of Ruby — Dennis Newbold <dennisn@...> 2002/03/20

[#36458] Windows version of Ruby (proposals) — ptkwt@... (Phil Tomson) 2002/03/21

Dennis Newbold <dennisn@pe.net> wrote in message news:<Pine.GSO.3.96.1020320113603.22242B-100000@shell2>...

[#36482] RE: Windows version of Ruby (proposals) — "Christian Boos" <cboos@...> 2002/03/21

Some thoughts on the 2 first Windows issues, plus a 4th one...

[#36496] Re: Windows version of Ruby (proposals) — Dave Thomas <Dave@...> 2002/03/21

"Christian Boos" <cboos@bct-technology.com> writes:

[#36510] Re: Windows version of Ruby (proposals) — nobu.nokada@... 2002/03/21

Hi,

[#36514] Re: Windows version of Ruby (proposals) — Dave Thomas <Dave@...> 2002/03/21

nobu.nokada@softhome.net writes:

[#36518] Re: Windows version of Ruby (proposals) — nobu.nokada@... 2002/03/21

Hi,

[#36211] dots in Dir.entries — matz@... (Yukihiro Matsumoto)

Hi,

22 messages 2002/03/19

[#36231] style choice — Ron Jeffries <ronjeffries@...>

A style question for the community ... which of the following do you prefer, and

18 messages 2002/03/19

[#36345] ANN: REXML 2.0 — Sean Russell <ser@...>

I have a feeling there will only be three major revisions of REXML. Version

19 messages 2002/03/20

[#36610] Re: Windows version of Ruby (proposals) — Ron Jeffries <ronjeffries@...>

On Thu, 21 Mar 2002 14:11:55 GMT, Dave Thomas <Dave@PragmaticProgrammer.com> wrote:

16 messages 2002/03/22

[#36645] Ruby for Mac OS 10.1 — Jim Freeze <jim@...>

Hi:

28 messages 2002/03/23

[#36768] Re: Difference between 'do' and 'begin' — Clemens Hintze <c.hintze@...>

In <slrna9ulvi.f2h.mwg@fluffy.isd.dp.ua> Wladimir Mutel <mwg@fluffy.isd.dp.ua> writes:

23 messages 2002/03/26
[#36783] RE: Difference between 'do' and 'begin' — <james@...> 2002/03/26

[#36792] Re: Difference between 'do' and 'begin' — Kent Dahl <kentda@...> 2002/03/26

james@rubyxml.com wrote:

[#36808] Error calling Tk in a loop — <james@...>

I'm trying to write some code that pops up a Tk window when for certain

15 messages 2002/03/26

[#36841] RE: Windows version of Ruby (proposals) — "Andres Hidalgo" <sol123@...>

I believe that Ruby has a place in windows (Office), I happened to have

14 messages 2002/03/27

[#36863] Hash.new(Hash.new) doesn't use Hash.new as default value — "Jonas Delfs" <jonas@...>

Hi -

18 messages 2002/03/27

[#37080] Why isn't Math object-oriented? — Bil Kleb <W.L.Kleb@...>

So I'm reading along in the Pixaxe book (yet again), and I am told

15 messages 2002/03/30

[#37121] String#begins?(s) — timsuth@... (Tim Sutherland)

class String

24 messages 2002/03/31

Test::Unit GUI's fail for IO.popen?

From: Bil Kleb <W.L.Kleb@...>
Date: 2002-03-28 04:26:48 UTC
List: ruby-talk #36940
I have come across a test case which breaks both GUI TestRunners, but
not the Console TestRunner.  The trouble appears to be the use of an
IO.pipe to capture output for testing.

The Fox runner will come up, but as soon as I hit the "run" button it
dies and I am left with,

  X Fatal error.
  Aborted

The Gtk runner begins running immediately(?!) and fails with

  Gdk-ERROR **: X connection to :0.0 broken (explicit kill or server shutdown).

I checked .xsession-errors and tried running in debug mode, but neither
provided any further diagnostics.

The following is a sample mobility test which demonstrates the failure -- at
least for my ruby-1.6.7/testunit-CVS/gtk-0.27/fxruby-1.0.3/i686-linux combination.
The test file will invoke the Console runner (via unit.rb's at_exit trick)
unless you pass it a command line argument, e.g., "f" or "g",

<file name="CmdLineOptsMT.rb">

 require 'test/unit'
 require 'CmdLineOpts'

 class CmdLineOptsMT < Test::Unit::TestCase
  def testUsage
   optionParser = CmdLineOpts.instance
   optionParser.addOption('unchangedParm', nil, -5, true){ |arg| arg.to_f }
   optionParser.processOptions
   inPipe,outPipe = IO.pipe
   if fork # parent process catches stdout from child
    outPipe.close
    usage = inPipe.read
    inPipe.close
    Process.wait
   else # child process throws usage to parent
    inPipe.close
    $stdout = outPipe
    optionParser.usage
    outPipe.close
    exit 0
   end
   assert(usage.include? " -h|--help\n")
   assert(usage.include? "--unchangedParm [-5]\n")
  end
 end

 if $0 == __FILE__ then
  case ARGV[0]
  when /^G/i
   require 'test/unit/ui/gtk/testrunner'
   Test::Unit::UI::GTK::TestRunner.run CmdLineOptsMT
  when /^F/i
   require 'test/unit/ui/fox/testrunner'
   Test::Unit::UI::Fox::TestRunner.run CmdLineOptsMT
  end
 end

</file>

The code under test is merely a convenient wrapper for getoptlong
inspired by the Pragmatic Programmer book, viz,

<file name="CmdLineOpts.rb">

 # In the spirit of "once and only once" we make a wrapper
 # to GetoptLong so that we only need to define options
 # in one spot.  The wrapper takes care of creating accessors,
 # setting default values, passing the options array to GetoptLong,
 # and creates a usage method.  -- Bill Wood and Bil Kleb

 require 'singleton'
 require 'getoptlong'

 class CmdLineOpts < Hash

  include Singleton

  def initialize
   super
   addOption('help', 'h'){CmdLineOpts.instance.usage; exit 1}
  end
  def addOption(longName, shortName=nil, defaultValue=nil,
                needsArgument=false, &action)
   store longName, Option.new(longName, shortName, defaultValue,
                              needsArgument, action)
  end
  def processOptions
   optionArray = Array.new
   each_value { |opt| optionArray.push opt.to_a }
   GetoptLong.new(*optionArray).each do |foundOption, arg|
    each{ |name, opt| opt.execute(arg) if foundOption.include? name }
   end
  end
  def usage
   puts "Usage: #{File.basename $0}"
   sort.each{ |key,opt| puts opt }
  end
  def [] (key)
   super(key).value
  end
  def []= (key, object)
   fetch(key).value = object
  end

 private

  class Option

   attr_reader :shortName
   attr_accessor :value

   def initialize( longName, shortName, defaultValue, needsArgument, action )
    @longName, @shortName = longName, shortName
    @needsArgument, @action = needsArgument, action
    @value = defaultValue
   end
   def execute(arg=nil)
    @value = @action.call arg
   end
   def to_s
    string = "       "
    string += (@shortName ? "-#@shortName|" : "   ") + "--#@longName"
    string += " [#{@value}]" if @value
    string
   end
   def to_a
    a = ['--'+@longName]
    a.push '-'+@shortName if @shortName
    a.push @needsArgument ?
           GetoptLong::REQUIRED_ARGUMENT : GetoptLong::NO_ARGUMENT
   end
  end
 end

</file>

-- 
Bil Kleb
NASA Langley Research Center
Hampton, Virginia, USA

In This Thread

Prev Next