Added array_to_sentence_string filter
This commit is contained in:
parent
e7b2df1156
commit
87a5e747fd
|
@ -19,6 +19,21 @@ module Jekyll
|
|||
|
||||
def number_of_words(input)
|
||||
input.split.length
|
||||
end
|
||||
end
|
||||
|
||||
def array_to_sentence_string(array)
|
||||
connector = "and"
|
||||
case array.length
|
||||
when 0
|
||||
""
|
||||
when 1
|
||||
array[0].to_s
|
||||
when 2
|
||||
"#{array[0]} #{connector} #{array[1]}"
|
||||
else
|
||||
"#{array[0...-1].join(', ')}, #{connector} #{array[-1]}"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
require File.dirname(__FILE__) + '/helper'
|
||||
|
||||
class TestSite < Test::Unit::TestCase
|
||||
|
||||
class JekyllFilter
|
||||
include Jekyll::Filters
|
||||
end
|
||||
|
||||
def setup
|
||||
@filter = JekyllFilter.new
|
||||
end
|
||||
|
||||
def test_array_to_sentence_string_with_no_args
|
||||
assert_equal "", @filter.array_to_sentence_string([])
|
||||
end
|
||||
|
||||
def test_array_to_sentence_string_with_one_arg
|
||||
assert_equal "1", @filter.array_to_sentence_string([1])
|
||||
assert_equal "chunky", @filter.array_to_sentence_string(["chunky"])
|
||||
end
|
||||
|
||||
def test_array_to_sentence_string_with_two_args
|
||||
assert_equal "1 and 2", @filter.array_to_sentence_string([1, 2])
|
||||
assert_equal "chunky and bacon", @filter.array_to_sentence_string(["chunky", "bacon"])
|
||||
end
|
||||
|
||||
def test_array_to_sentence_string_with_multiple_args
|
||||
assert_equal "1, 2, 3, and 4", @filter.array_to_sentence_string([1, 2, 3, 4])
|
||||
assert_equal "chunky, bacon, bits, and pieces", @filter.array_to_sentence_string(["chunky", "bacon", "bits", "pieces"])
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue