mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Allow String#parameterize to accept a separator [#2157 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
This commit is contained in:
parent
7fb7b48a1f
commit
20d3892f46
3 changed files with 36 additions and 2 deletions
|
@ -102,8 +102,8 @@ module ActiveSupport #:nodoc:
|
|||
#
|
||||
# <%= link_to(@person.name, person_path %>
|
||||
# # => <a href="/person/1-donald-e-knuth">Donald E. Knuth</a>
|
||||
def parameterize
|
||||
Inflector.parameterize(self)
|
||||
def parameterize(sep = '-')
|
||||
Inflector.parameterize(self, sep)
|
||||
end
|
||||
|
||||
# Creates the name of a table like Rails does for models to table names. This method
|
||||
|
|
|
@ -77,6 +77,24 @@ class StringInflectionsTest < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_string_parameterized_normal
|
||||
StringToParameterized.each do |normal, slugged|
|
||||
assert_equal(normal.parameterize, slugged)
|
||||
end
|
||||
end
|
||||
|
||||
def test_string_parameterized_no_separator
|
||||
StringToParameterizeWithNoSeparator.each do |normal, slugged|
|
||||
assert_equal(normal.parameterize(''), slugged)
|
||||
end
|
||||
end
|
||||
|
||||
def test_string_parameterized_underscore
|
||||
StringToParameterizeWithUnderscore.each do |normal, slugged|
|
||||
assert_equal(normal.parameterize('_'), slugged)
|
||||
end
|
||||
end
|
||||
|
||||
def test_humanize
|
||||
UnderscoreToHuman.each do |underscore, human|
|
||||
assert_equal(human, underscore.humanize)
|
||||
|
|
|
@ -154,6 +154,22 @@ module InflectorTestCases
|
|||
"Squeeze separators" => "squeeze-separators"
|
||||
}
|
||||
|
||||
StringToParameterizeWithNoSeparator = {
|
||||
"Donald E. Knuth" => "donaldeknuth",
|
||||
"Random text with *(bad)* characters" => "randomtextwithbadcharacters",
|
||||
"Trailing bad characters!@#" => "trailingbadcharacters",
|
||||
"!@#Leading bad characters" => "leadingbadcharacters",
|
||||
"Squeeze separators" => "squeezeseparators"
|
||||
}
|
||||
|
||||
StringToParameterizeWithUnderscore = {
|
||||
"Donald E. Knuth" => "donald_e_knuth",
|
||||
"Random text with *(bad)* characters" => "random_text_with_bad_characters",
|
||||
"Trailing bad characters!@#" => "trailing_bad_characters",
|
||||
"!@#Leading bad characters" => "leading_bad_characters",
|
||||
"Squeeze separators" => "squeeze_separators"
|
||||
}
|
||||
|
||||
# Ruby 1.9 doesn't do Unicode normalization yet.
|
||||
if RUBY_VERSION >= '1.9'
|
||||
StringToParameterizedAndNormalized = {
|
||||
|
|
Loading…
Reference in a new issue