[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11693] Re: assert() library in Ruby?

From: "Ben Tilly" <ben_tilly@...>
Date: 2001-02-27 15:01:19 UTC
List: ruby-talk #11693
Dave Thomas <Dave@PragmaticProgrammer.com> wrote:
>
>Eric Sven Ristad <ristad@mnemonic.com> writes:
[...]
>   DEBUG = false  # or true
>
>   def assert
>     if DEBUG
>       result = yield
>       raise "Assertion failed" if !result
>     end
>   end
>
>   assert { 1 == 1 }
>
>   assert { 1 == 2 }
>
>This defers the evaluation of the code in the block until the method
>'assert' can determine if DEBUG is set to true.
[...]

You can also write that as:

    DEBUG = false # or true

    if DEBUG
      def assert
        raise "Assertion failed!" if not yield
      end
    else
      def assert
      end
    end

Theoretically moving the test of whether DEBUG is true
or false to initialization should be marginally
faster.  I am not sure that matters, and I am only
mentioning it in case someone out there didn't know how
easy it is to create a compatibility layer by
conditionally loading different ways of supporting the
same API.  In that light the following link on writing
portable code may be of general interest:

http://kt.linuxcare.com/kernel-traffic/kt20000501_65.epl#5

The moral is that you define an API that you can write to,
and write to that in the bulk of your code.  Then you have
a small compatibility layer which translates the standard
API to the current platform.  Which is what Dave Thomas was
doing by hiding away the test in an assert function, and I
was doing by defining the assert macro appropriately
depending on the constant.

What most people try, that doesn't work so well is scattering
tests through their code for the various cases.  Intertwining
the portability logic with everything else, and leaving you
just hoping that you remembered all of the places that you
have to check each fact about portability...

Cheers,
Ben
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

In This Thread

Prev Next