[#72642] Advantages of Symbols over constants — Marek Janukowicz <childNOSPAM@...17.ds.pwr.wroc.pl>

11 messages 2003/06/01

[#72732] case of sub! not working — Ian Macdonald <ian@...>

Hi,

27 messages 2003/06/03
[#72734] Re: case of sub! not working — Joel VanderWerf <vjoel@...> 2003/06/03

Ian Macdonald wrote:

[#72744] Re: case of sub! not working — Ian Macdonald <ian@...> 2003/06/03

On Tue 03 Jun 2003 at 10:21:43 +0900, Joel VanderWerf wrote:

[#72769] Re: case of sub! not working — Michael Campbell <michael_s_campbell@...> 2003/06/03

[#72907] Syck 0.35 + YAML.rb 0.60 -- the 1st stable release — why the lucky stiff <ruby-talk@...>

Pleased to announce:

18 messages 2003/06/05
[#75182] Re: Syck 0.35 + YAML.rb 0.60 -- the 1st stable release — Richard Zidlicky <rz@...68k.org> 2003/07/04

On Fri, Jun 06, 2003 at 06:15:58AM +0900, why the lucky stiff wrote:

[#72908] Problem with "require" stmt in "test-first " tutorial — RLMuller@... (Richard)

Hi All,

27 messages 2003/06/05

[#72940] VAPOR 0.06, Transparent Persistence to PostgreSQL — "Oliver M. Bolzer" <oliver@...>

Hi!

22 messages 2003/06/06

[#72975] join block — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

29 messages 2003/06/06

[#72986] multiple blocks or proc arguments to method — itsme213@... (you CAN teach an old dog ...)

I was trying to write a collect_if method:

11 messages 2003/06/07

[#73081] requiring standard libs with save level 1 — Eugene Scripnik <Eugene.Scripnik@...>

I've set up new version of Ruby from CVS and my programs failed to work.

13 messages 2003/06/09
[#73114] Re: requiring standard libs with save level 1 — matz@... (Yukihiro Matsumoto) 2003/06/09

Hi,

[#73134] tcltklib does not get compiled. — John Fletcher <J.P.Fletcher@...>

I have installed ruby 1.6.7 on two computers using Red Hat 8.0 Linux.

14 messages 2003/06/10

[#73148] OT: Regexp question — Dominik Werder <dwerder@...>

Hi all,

25 messages 2003/06/10

[#73215] Rubyx (provisionally named) linux distro. Made by and run by Ruby — Andrew Walrond <andrew@...>

I have developed a little script which creates a simple linux distro

38 messages 2003/06/11

[#73260] Multiple Initialize methods? — "Nick" <nick.robinson@...>

Hi,

21 messages 2003/06/11

[#73283] Ruby advantages over Perl — Marek Janukowicz <childNOSPAM@...17.ds.pwr.wroc.pl>

68 messages 2003/06/11
[#73374] Re: Ruby advantages over Perl — Jason Creighton <androflux@...> 2003/06/12

On Thu, 12 Jun 2003 17:56:02 +0900

[#73356] does each work on a copy? — Rasputin <rasputin@...>

17 messages 2003/06/12

[#73372] Reason for implicit block syntax ? — itsme213@... (you CAN teach an old dog ...)

What is the reason for the implicit block in Ruby invocations?

13 messages 2003/06/12

[#73463] Hispeed String concat — Dominik Werder <dwerder@...>

What is the fastest way to add many small Strings to a big buffer?

17 messages 2003/06/13

[#73503] RaaInstallInRuby petition — ptkwt@...1.aracnet.com (Phil Tomson)

18 messages 2003/06/13

[#73555] I need a code beautifier or formatter — joaopedrosa@... (Joao Pedrosa)

Hello,

13 messages 2003/06/14

[#73600] Get songtitle from Winamp — calvin8@... (Andi Scharfstein)

Hi,

26 messages 2003/06/15
[#73601] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73602] Re: Get songtitle from Winamp — Chad Fowler <chadfowler@...> 2003/06/15

It's a Win32API convention meaning "Window Handle".

[#73603] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73605] Re: Get songtitle from Winamp — Wesley J Landaker <wjl@...> 2003/06/15

On Sunday 15 June 2003 9:34 am, Daniel Carrera wrote:

[#73609] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73640] Standardizing Installers — Tom Clarke <tom@...2i.com>

I was thinking about some of the issues raised involving ruby libraries

16 messages 2003/06/16

[#73663] /BEGIN/ .. /END/ file reading — Wild Karl-Heinz <kh.wild@...>

hello

15 messages 2003/06/16
[#73674] Re: /BEGIN/ .. /END/ file reading — "Robert Klemme" <bob.news@...> 2003/06/16

[#73677] Re: /BEGIN/ .. /END/ file reading — Michael Campbell <michael_s_campbell@...> 2003/06/16

> A range operator with a regexp works like a flip flop (bistable

[#73680] Multiline comments? — "Christoph Tapler" <christoph.tapler@...>

I'm new to Ruby and I'm wondering that there is no possibility to write

38 messages 2003/06/16

[#73781] editor / ide recommentation on Windows — itsme213@... (you CAN teach an old dog ...)

What editor / ide would you recommend for serious Ruby work on

20 messages 2003/06/17

[#73787] Array#push(empty array expanded) => no exception — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

This strange behavier really surprised me..

13 messages 2003/06/17

[#73821] European Ruby Conference — "Hal E. Fulton" <hal9000@...>

I don't think I've mentioned this before, but I

15 messages 2003/06/17

[#73924] Re: TCP/IP protocol and Net::HTTP — "J.Hawkesworth" <J.Hawkesworth@...>

Works for me too.

13 messages 2003/06/19
[#73931] Re: TCP/IP protocol and Net::HTTP — Nigel Gilbert <n.gilbert@...> 2003/06/19

I am beginning to wonder if this problem arises from the MacOS X

[#73943] collect info about ruby-api — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I have long been longing for a good description of ruby C api.

35 messages 2003/06/19

[#74039] WxRuby status? — ptkwt@...1.aracnet.com (Phil Tomson)

14 messages 2003/06/20
[#74507] Re: WxRuby status? — Richard Kilmer <rich@...> 2003/06/26

Things are progressing great. Kevin Smith has taken the development

[#74070] How to test if a file exists? — Daniel Carrera <dcarrera@...>

-----BEGIN PGP SIGNED MESSAGE-----

12 messages 2003/06/21

[#74096] Exasperated with ruby/tk - anybody successfully using it? — "Richard Browne" <richb@...>

General question: Is ruby/tk still being maintained in 1.7/1.8 or is it

10 messages 2003/06/22

[#74104] String#decorate — martindemello@... (Martin DeMello)

When chaining methods, it'd be neat to have something that was passed

17 messages 2003/06/22

[#74156] Marshal bug? — Anders Borch <spam@...>

Hi!

15 messages 2003/06/23
[#74161] Re: Marshal bug? — Dave Thomas <dave@...> 2003/06/23

Anders Borch wrote:

[#74205] can't find appropriate regexp — "Patrick Zesar" <jonnypichler@...>

spamassassin blocked my previous post :-((((

17 messages 2003/06/23

[#74279] Ruby Developer's Guide - hurt book sale — dennis@... (Dennis Sutch)

Syngress Publishing is having a hurt book sale. Per Syngress

11 messages 2003/06/24

[#74379] protect parents from children — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I fell into these pitfalls yesterday.. that a child was modifying a parent!

27 messages 2003/06/25

[#74413] Ruby/Java integration through JNI: working implementation — Mauricio Fern疣dez <batsman.geo@...>

14 messages 2003/06/25
[#74436] Re: Ruby/Java integration through JNI: working implementation — D T <tran55555@...> 2003/06/25

Yet An other JRuby ?? :-)

[#74465] DBD for Oracle9i — Jim Cain <list@...>

Hi all. I was looking for a Ruby interface to 9i that would handle all

25 messages 2003/06/25

[#74478] RPM for 1.8.0 — John Carter <john.carter@...>

I would like to get / build a Mandrake 9.1 RPM for Ruby-1.8.0 Preview 3

17 messages 2003/06/26

[#74506] String#split(' ') and whitespace (perl user's surprise) — mike@... (Mike Stok)

I have to confess that I use a lot of Perl, and some of its idioms are

15 messages 2003/06/26

[#74573] Using & for arrays of objects — "Krishna Dole" <kpdole@...>

Hi,

39 messages 2003/06/27

[#74579] why can't I use $3somevar for global variable in ruby 1.8.0? — Donglai Gong <donglai@...>

Hi, I'm new to Ruby programming and I just upgraded from 1.6.8 to 1.8.0

10 messages 2003/06/27

[#74702] Slides from my talk are up on rubyhacker.com — "Hal E. Fulton" <hal9000@...>

I was pleased to attend the European Ruby Conference

25 messages 2003/06/29

[#74706] Help with UnboundMethod#bind error — gabriele renzi <surrender_it@...1.vip.lng.yahoo.com>

Hi gurus and nubys,

16 messages 2003/06/29
[#74708] Re: Help with UnboundMethod#bind error — nobu.nokada@... 2003/06/29

Hi,

[#74732] Re: Help with UnboundMethod#bind error — matz@... (Yukihiro Matsumoto) 2003/06/30

Hi,

[#74919] Re: Help with UnboundMethod#bind error — "Pit Capitain" <pit@...> 2003/07/02

On 30 Jun 2003 at 17:18, Yukihiro Matsumoto wrote:

[#74717] Re: Message catalogs (I18N) overnight hack... — "Hal E. Fulton" <hal9000@...>

----- Original Message -----

17 messages 2003/06/29

[#74747] Editor like Textpad on Linux? — Dominik Werder <dwerder@...>

Hello,

13 messages 2003/06/30

[#74768] dynamic object creation — Aryeh Friedman <aryeh@...>

If I have something like this:

15 messages 2003/06/30

Re: Hispeed String concat

From: "Josef 'Jupp' Schugt" <jupp@...>
Date: 2003-06-16 20:59:34 UTC
List: ruby-talk #73714
Saluton!

* Michael Neumann; 2003-06-13, 23:05 UTC:
> Why not make Storage a class, so you can have more than one? Your
> current implementation does not allow this.

Done.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

# EXAMPLE of using 'Storage':

require 'Storage'  # Require library
s = Storage.new(3) # s is to hold 3 chars
s.append('foo')    # append 'foo' to s
s.append('bar')    # append 'bar' to s (s grows to hold text)
s.append('baz')    # append 'baz' to s (s grows to hold text)
puts s.to_s        # prints 'foobarbaz'
s.resize(6)        # shrink s to hold 6 chars
puts s.to_s        # prints 'foobar'
s.flush            # flushes content of s
puts s.to_s.length # 0
puts s.capacity    # 6

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

#include <ruby.h>
#include <string.h>

VALUE cStorage;

typedef struct {
  char *start, *end;
  int  capacity;
} mem;


static VALUE freemem(mem *m) {
  free(m->start);
  free(m);
  return Qnil;
}

VALUE new(VALUE class, VALUE size) {
  int n;
  mem *m = ALLOC(mem);
  VALUE data;
  Check_Type(size, T_FIXNUM);
  *(m->end = m->start = ALLOC_N(char, (n = NUM2ULONG(size)) + 1)) = '\0';
  m->capacity = n;
  data = Data_Wrap_Struct(class, NULL, freemem, m);
  rb_obj_call_init(data, 0, NULL);
  return data;
}

static VALUE append(VALUE self, VALUE text) {
  mem  *m;
  char *s, *t;
  int  old, plus, need;

  Data_Get_Struct(self, mem, m);

  if ((need = (plus = strlen(s = STR2CSTR(text))) + (old = m->end - (t = m->start))) >= m->capacity) {
    REALLOC_N(m->start, char, (m->capacity = need) + 1);
    if (t != m->start) m->end = m->start + old;
  }
  strcpy(m->end, s);
  m->end += plus;
  return Qnil;
}

static VALUE resize(VALUE self, VALUE size) {
  mem *m;
  int n, len;
  char *s;
  Data_Get_Struct(self, mem, m);
  Check_Type(size, T_FIXNUM);
  len = m->end - (s = m->start);
  REALLOC_N(m->start, char, (m->capacity = n = NUM2ULONG(size)) + 1);
  if (s != m->start) m->end = m->start + ((n < len) ? n : len);
  *(m->start + n) = '\0';
  return Qnil;
}

static VALUE flush(VALUE self) {
  mem *m;
  Data_Get_Struct(self, mem, m);
  *(m->end = m->start) = '\0';
  return Qnil;
}

static VALUE to_s(VALUE self) {
  mem *m;
  Data_Get_Struct(self, mem, m);
  return rb_str_new2(m->start);
}

static VALUE capacity(VALUE self) {
  mem *m;
  Data_Get_Struct(self, mem, m);
  return INT2NUM(m->capacity);
}

void Init_Storage() {
  cStorage = rb_define_class("Storage", rb_cObject);
  rb_define_singleton_method(cStorage, "new", new, 1);
  rb_define_method(cStorage, "append",   append,   1);
  rb_define_method(cStorage, "to_s",     to_s,     0);
  rb_define_method(cStorage, "resize",   resize,   1);
  rb_define_method(cStorage, "flush",    flush,    0);
  rb_define_method(cStorage, "capacity", capacity, 0);
}
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Gis,

Josef 'Jupp' Schugt

In This Thread