Fragmentation tables of strange behaviors with Ruby (v1.9.2)

advertisements

I am trying to handle an array with Ruby v1.9.2 but it has some strange behavior.

The best explanation may be done with examples:


CASE 1 TEST

@test1 = "image/bmp, image/gif, image/jpg".split(',')

Debug @test1:

---
- image/bmp    # why this?!
- " image/gif"
- " image/jpg"


CASE 2 TEST

@test2 = ", image/bmp, image/gif, image/jpg".split(',')

Debug @test2:

---
- ""           # why this?!
- " image/bmp"
- " image/gif"
- " image/jpg"


WHAT I NEED

Notice: I can use the CASE 2 TEST, but I would like to do things right and better.

Debug that I would like to have:

---
- " image/bmp"
- " image/gif"
- " image/jpg"


In the test case 1 there is no space before "image/bmp" in the result because there is no space before "image/bmp" in the original string.

In the test case 2 there is an empty string at the beginning because the string starts with a comma, and for every separator in the string there is a string in the resulting array, containing what comes before that separator (which in this case means the empty string).

If you want the result you've shown, you could just add a space (but no comma) before "image/bmp" in the source string. Alternatively you could split by /, */ and then add one space before each string with map. Though frankly I don't get why you want a space before each string.