On 28.01.2007 11:13, Josselin wrote:
> I have the following string
> id = "(48.88689971942316, 2.3380279541015625)"
> is there any method to transform directly into an array 
> [48.88689971942316, 2.3380279541015625] or should extract both parts and 
> create the array (what I did.. but not very DRY)

In this simple case you can do:

 >> id = "(48.88689971942316, 2.3380279541015625)"
=> "(48.88689971942316, 2.3380279541015625)"
 >> id.scan /\d+\.\d+/
=> ["48.88689971942316", "2.3380279541015625"]
 >> id.scan(/\d+\.\d+/).map! {|x| x.to_f}
=> [48.8868997194232, 2.33802795410156]

It depends on the values that can occur in the string if this is 
sufficient (for example, the piece above does not take care of signs 
also does not recognize numbers without decimals).  You can find plenty 
solutions for matching floating point numbers in the archives of this 
list / newsgroup.

Generally, if you get this string from some piece of external code, you 
want to parse it in some way to make sure it matches your expectations.

Kind regards

	robert