From da67254cccf7161bf3b668ac97fc885b8523ac35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 6 May 2012 13:21:10 +0200 Subject: [PATCH] Do not remove blank strings on strip, closes #282 THe previous behavior was wrong, the current behavior matches Ruby and Perl. --- lib/regex.ex | 7 +------ test/elixir/regex_test.exs | 3 +++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/regex.ex b/lib/regex.ex index b9014676692..60beec3a53e 100644 --- a/lib/regex.ex +++ b/lib/regex.ex @@ -183,9 +183,7 @@ defmodule Regex do """ def split({ Regex, compiled, _, _ }, string, parts // :infinity) do options = [{ :return, return_for(string) }, :trim, { :parts, parts }] - list = Erlang.re.split(string, compiled, options) - blank = blank_for(string) - lc l in list when l != blank, do: l + Erlang.re.split(string, compiled, options) end @doc %B""" @@ -230,9 +228,6 @@ defmodule Regex do # Private Helpers - defp blank_for(element) when is_binary(element), do: "" - defp blank_for(element) when is_list(element), do: '' - defp return_for(element) when is_binary(element), do: :binary defp return_for(element) when is_list(element), do: :list diff --git a/test/elixir/regex_test.exs b/test/elixir/regex_test.exs index 99757703cec..6b53b9d66e5 100644 --- a/test/elixir/regex_test.exs +++ b/test/elixir/regex_test.exs @@ -49,6 +49,9 @@ defmodule Regex.BinaryTest do assert Regex.split(%r" ", "foo bar baz") == ["foo", "bar", "baz"] assert Regex.split(%r" ", "foo bar baz", 2) == ["foo", "bar baz"] assert Regex.split(%r"\s", "foobar") == ["foobar"] + assert Regex.split(%r" ", "foo bar baz") == ["foo", "bar", "baz"] + assert Regex.split(%r"=", "key=") == ["key", ""] + assert Regex.split(%r"=", "=value") == ["", "value"] end test :replace do