[#366855] what is the correct way to extend native methods? — Maurizio De Santis <desantis.maurizio@...>

Hello!

15 messages 2010/08/01
[#366857] Re: what is the correct way to extend native methods? — James Harrison <oscartheduck@...> 2010/08/01

> return self.select{ |val| val.to_s =~ args[0] } if args.size == 1

[#366864] Re: what is the correct way to extend native methods? — Maurizio De Santis <desantis.maurizio@...> 2010/08/01

James Harrison wrote:

[#366866] Re: what is the correct way to extend native methods? — Brian Candler <b.candler@...> 2010/08/01

Maurizio De Santis wrote:

[#366916] How to remove leading &nbsp; from string — Lucky Nl <lakshmi27.u@...>

Hi

13 messages 2010/08/02

[#366931] Iteration through File.file? misses entries for which File.file?(entry) == true — Kyle Barbour <kyle@...>

Hello everyone,

11 messages 2010/08/02

[#367167] Project name ownership and conflict — Emmanuel Gomez <emmanuel.gomez@...>

I recently had a discussion with a fellow Ruby developer that revealed a

13 messages 2010/08/05

[#367169] Abstracting exception handling — Martin Hansen <mail@...>

Hello,

15 messages 2010/08/05
[#367173] Re: Abstracting exception handling — Brian Candler <b.candler@...> 2010/08/05

> I suspect something is going out of scope and lost?

[#367176] Re: Abstracting exception handling — Martin Hansen <mail@...> 2010/08/05

I was hoping for a setup like this in two files:

[#367177] Re: Abstracting exception handling — Andrew Wagner <wagner.andrew@...> 2010/08/05

What kind of stuff are you doing in my_script.rb? Defining a class? A

[#367179] Re: Abstracting exception handling — Martin Hansen <mail@...> 2010/08/05

Andrew Wagner wrote:

[#367372] Is there any human talkable ruby library? — Sniper Abandon <sathish.salem.1984@...>

Is there any human talk able(like Eliza ) ruby library?

12 messages 2010/08/09

[#367438] Determining whether the running ruby is outdated? — Lars Olsson <lasso@...>

Hi,

14 messages 2010/08/10

[#367540] Ruby is in Grave Danger! — Gregory Brown <gregory.t.brown@...>

Dear Friends,

34 messages 2010/08/11

[#367631] Parsing, BNF, TreeTop, GhostWheel, ... — Philipp Kempgen <lists@...>

Hi,

13 messages 2010/08/12

[#367664] libstdc++ — Pw Ktp <amar.seeam@...>

when trying to install a gem i am getting a 'libstdc++' not installed

24 messages 2010/08/13
[#367666] Re: libstdc++ — Brian Candler <b.candler@...> 2010/08/13

Pw Ktp wrote:

[#367668] Re: libstdc++ — Pw Ktp <amar.seeam@...> 2010/08/13

Brian Candler wrote:

[#367670] Re: libstdc++ — Brian Candler <b.candler@...> 2010/08/13

OK, probably missing headers as Daniel said. Try:

[#367671] Re: libstdc++ — Pw Ktp <amar.seeam@...> 2010/08/13

Brian Candler wrote:

[#367703] Question about learning Ruby effectively — Chan Nguyen <cnguyen@...>

Hi everyone,

12 messages 2010/08/14

[#367747] Help with too many methods — Samuel Sternhagen <samatoms@...>

I am writing a Ruby program that creates different URL queries. Right

11 messages 2010/08/15

[#367781] Unix Philosophy in Ruby Programing — Diego Bernardes <di3go.bernardes@...>

I use Linux about 5 years, but, this year that i started to "use" linux.

22 messages 2010/08/16

[#367833] can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...>

still i don't know how to begin my program on this problem:

56 messages 2010/08/17
[#367834] Re: can i do this in ruby? a simulation process — Jean-Julien Fleck <jeanjulien.fleck@...> 2010/08/17

> Requirements:

[#367837] Re: can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...> 2010/08/17

Jean-Julien Fleck wrote:

[#367839] Re: can i do this in ruby? a simulation process — Jean-Julien Fleck <jeanjulien.fleck@...> 2010/08/17

> Cheers Thanks, anyway i already did writing and other stuff but the only

[#367849] Re: can i do this in ruby? a simulation process — Andrew Wagner <wagner.andrew@...> 2010/08/17

Hmm, I may or may not disagree with you on what the output should be. I

[#367850] Re: can i do this in ruby? a simulation process — Brian Candler <b.candler@...> 2010/08/17

Andrew Wagner wrote:

[#367853] Re: can i do this in ruby? a simulation process — Andrew Wagner <wagner.andrew@...> 2010/08/17

>

[#367858] Re: can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...> 2010/08/17

A superhighway connects one large metropolitan area to another.

[#367862] Re: can i do this in ruby? a simulation process — Andrew Wagner <wagner.andrew@...> 2010/08/17

>

[#367867] Re: can i do this in ruby? a simulation process — Jean-Julien Fleck <jeanjulien.fleck@...> 2010/08/17

> You bring up an interesting point about going

[#367873] Re: can i do this in ruby? a simulation process — Andrew Wagner <wagner.andrew@...> 2010/08/17

Well, it may be interesting, but not in terms of the question originally

[#367911] Re: can i do this in ruby? a simulation process — brabuhr@... 2010/08/17

On Tue, Aug 17, 2010 at 7:34 AM, Andrew Wagner <wagner.andrew@gmail.com> wrote:

[#367922] Re: can i do this in ruby? a simulation process — brabuhr@... 2010/08/17

On Tue, Aug 17, 2010 at 1:19 PM, <brabuhr@gmail.com> wrote:

[#367937] Re: can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...> 2010/08/18

can someone post some code here: I'm only a newbie in ruby :( and

[#367946] Re: can i do this in ruby? a simulation process — Brian Candler <b.candler@...> 2010/08/18

Bruce Wayner wrote:

[#367952] Re: can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...> 2010/08/18

sorry I'm totally suck in ruby here is my code:

[#367965] Re: can i do this in ruby? a simulation process — Brian Candler <b.candler@...> 2010/08/18

> sorry I'm totally suck in ruby here is my code:

[#367967] Re: can i do this in ruby? a simulation process — Brian Candler <b.candler@...> 2010/08/18

>> if $delay1==0;

[#367884] Making File.open work on gzipped files — Martin Hansen <mail@...>

Hello all,

15 messages 2010/08/17
[#367893] Re: Making File.open work on gzipped files — Brian Candler <b.candler@...> 2010/08/17

> This works nicely, but I would like it to work on gzipped files too.

[#367919] Re: Making File.open work on gzipped files — Martin Hansen <mail@...> 2010/08/17

Thanks Brian,

[#367910] Ruby GC question (MRI, JRuby, etc) — Chuck Remes <cremes.devlist@...>

My basic understanding of the garbage collectors in use by the various Ruby runtimes is that they all search for objects from a "root" memory object. If an object cannot be reached from this root, then it is collected.

11 messages 2010/08/17

[#367983] Ruby 1.9.2 is released — "Yuki Sonoda (Yugui)" <yugui@...>

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

23 messages 2010/08/18
[#368021] Re: [ANN] Ruby 1.9.2 is released — botp <botpena@...> 2010/08/19

2010/8/18 Yuki Sonoda (Yugui) <yugui@yugui.jp>:

[#368023] Re: [ANN] Ruby 1.9.2 is released — botp <botpena@...> 2010/08/19

> weird, since rvm does install it fine.

[#368000] Ruby Code Parsing — Jonathan Bale <webmaster@...>

I have a Perl friend asking me questions about how ruby parses its code.

15 messages 2010/08/18

[#368005] Check existence of object and it's property at the same time — Cory Patterson <coryp@...>

I run into this from time to time and I was wondering if there is a

10 messages 2010/08/18

[#368076] Shoes 3 released — Steve Klabnik <steve@...>

Hey there everyone. We've just released Shoes 3, "Policeman", to

19 messages 2010/08/19

[#368199] A small problem for arrays — Unc88 Unc88 <unc88@...>

I have 2 array. ar_1, ar_2

11 messages 2010/08/21

[#368343] gem list --remote does not work on windows running ruby 1.9.2p0 — botp <botpena@...>

Title says all.

9 messages 2010/08/24

[#368384] ffi-ncurses 0.3.3 — "Sean O'Halpin" <sean.ohalpin@...>

I've just released version 0.3.3 of the ffi-ncurses gem. This fixes

22 messages 2010/08/25
[#368423] Re: ffi-ncurses 0.3.3 — "R.. Kumar 1.9.1 OSX" <sentinel1879@...> 2010/08/26

Sean O'halpin wrote:

[#368500] Re: ffi-ncurses 0.3.3 — "Sean O'Halpin" <sean.ohalpin@...> 2010/08/27

On Thu, Aug 26, 2010 at 11:20 AM, R.. Kumar 1.9.1 OSX

[#368533] Re: ffi-ncurses 0.3.3 — botp <botpena@...> 2010/08/28

On Fri, Aug 27, 2010 at 10:05 PM, Sean O'Halpin <sean.ohalpin@gmail.com> wrote:

[#368538] Re: ffi-ncurses 0.3.3 — Rahul Kumar <sentinel1879@...> 2010/08/28

[#368546] Re: ffi-ncurses 0.3.3 — botp <botpena@...> 2010/08/28

On Sat, Aug 28, 2010 at 2:34 PM, Rahul Kumar <sentinel1879@gmail.com> wrote:

[#368556] Re: ffi-ncurses 0.3.3 — "Sean O'Halpin" <sean.ohalpin@...> 2010/08/28

On Sat, Aug 28, 2010 at 9:47 AM, botp <botpena@gmail.com> wrote:

[#368623] Re: ffi-ncurses 0.3.3 — Rahul Kumar <sentinel1879@...> 2010/08/30

[#368471] how about Array#collect_until — timr <timrandg@...>

I am wondering if anyone has implemented an Array#collect_until method

14 messages 2010/08/27

[#368506] select tr>3 with nokogiri — Pen Ttt <myocean135@...>

13 messages 2010/08/27

[#368690] Namespaces too looooooong — Iain Barnett <iainspeed@...>

Hi,

18 messages 2010/08/31
[#368692] Re: Namespaces too looooooong — Joel VanderWerf <joelvanderwerf@...> 2010/08/31

On 08/30/2010 05:51 PM, Iain Barnett wrote:

[#368694] Re: Namespaces too looooooong — Iain Barnett <iainspeed@...> 2010/08/31

Re: assert "foo"[3] != "foo"[3,1]...revisited

From: Colin Bartlett <colinb2r@...>
Date: 2010-08-24 11:00:23 UTC
List: ruby-talk #368344
On Tue, Aug 24, 2010 at 2:55 AM, timr <timrandg@gmail.com> wrote:
>On Aug 23, 5:40 am, Yukihiro Matsumoto <m...@ruby-lang.org> wrote:
>> on 23 Aug 2010 20:10:23 +0900, Colin Bartlett <colin...@googlemail.com>
wrote:
>>> I think it's worth adding something like Matz's wording to
>>> http://www.ruby-doc.org/core/classes/String.html#M000771
>>> http://www.ruby-doc.org/core/classes/Array.html#M002160
>>> because reasons for why things work a particular way do help people
>>> (well, at least me) remember behaviour.
>>
>> Yep, description proposal is welcome.
>> matz.
>
> ... And here is a proposal for the updated change to the documentation:
> Of course, simplicity/elegance is in the mind of the beholder. But,
> I hope that you might consider the option of eliminating the divergent
> behavior of String#[] and String[,] when the index == str.length.

At the end of this post I've put examples of what I had in mind for slice
methods which behave that way.

The following is a try at modifying the documentation for Array. (I'm using
Array because that doesn't have the complication of the change in behaviour
of string[index] from 1.8 to 1.9, and because the current documentation for
Array does have the special cases, albeit I think it could perhaps be more
precise. Adaptation to String should be straightforward.) As much as
possible the try uses the existing documentation with minimal changes, and
I've included Matz's explanation with what I hope are appropriate changes
for array.

Comments (not intended to be included in the documentation) are /* comment
*/.
(Apologies in advance if the formatting is weird: Gmail sometimes deletes
leading spaces (and others?) when it thinks it knows better than me.)

array[index] --> obj or nil
array[start, length] --> an_array or nil
array[range] --> an_array or nil
array.slice(index) --> obj or nil
array.slice(start, length) --> an_array or nil
array.slice(range) --> an_array or nil

Element Reference由eturns the element at index, or returns a subarray
starting at start and continuing for length elements, or returns a subarray
specified by range. Negative indices count backward from the end of the
array (-1 is the last element).
/* start a new line to highlight that an out of range index does not always
return nil */
Returns nil if the start (or starting index) are out of range:
/* suggested additional documentation */
/*new line*/   *unless* there is a length *and* Integer(start) == length;
/*new line*/   *or* the argument is a range *and* Integer(range.begin) ==
length.
/*new line*/   For these special cases (see the table of examples) the
return value is an empty array [].
/*new line*/   The reason for this special behaviour is that when the start
is within the array the sought length is rounded /* or use "truncated"? */
to fit in the size. In the special cases examples 5 (which is the length of
the array) is considered as touching the end of the array, so the returned
value is a subarray with length zero.

/*back to current documentation */
a = [ "a", "b", "c", "d", "e" ] # a.length == 5
a[2] + a[0] + a[1] #=> "cab"
a[6] #=> nil
a[1, 2] #=> [ "b", "c" ]
a[1..3] #=> [ "b", "c", "d" ]
a[4..7] #=> [ "e" ]
a[6..10] #=> nil
a[-3, 3] #=> [ "c", "d", "e" ]

/* suggested additional documentation */
The following table shows the special cases behaviour
when the start position is just past the end of the array.

index/
start   a[index]   a[start, 2]    a[start..7]
-----   --------   ------------   ------------
3       "d"        [ "d", "e" ]   [ "d", "e" ]
4       "e"        [ "e" ]        [ "e" ]
5       nil        []             []           # <-- special cases
6       nil        nil            nil


*** *** example additional slice methods which return nil
*** *** if the start position is outside the array, even if
*** *** the start position is only just after the end of the array

module Array_String_at_slice
  # Intended for Array and String: behave like #[], #slice and #slice!
  # except when the arguments are not just an index,
  # that is the arguments are a range or an index _and_ a length,
  # *and* Integer(range.begin) or Integer(index) == array_string.length,
  # when #[], #slice and #slice! return an empty array [] or string "",
  # but #at_slice and #at_slice! return nil.
  # In other words, if #at(index) or #at(range.begin) would return nil
  # then #at_slice(index, arg), #at_slice!(index, arg),
  # #at_slice(range) and #at_slice!(range) also return nil.

  # The method names are intended to convey that the slice behaviour
  # is similar to #at. Using the name #slice_at was considered,
  # but rejected (wrongly?) as possibly being capable of being assumed
  # to be a synonym for #slice.

  def at_slice( *args )
    unless Numeric === (ii = args[0]) then ii = ii.begin end
    if ii >= self.size then nil else slice( *args ) end
  end

  def at_slice!( *args )
  unless Numeric === (ii = args[0]) then ii = ii.begin end
  if ii >= self.size then nil else slice!( *args ) end
  end
end

class Array
  include Array_String_at_slice
end

In This Thread