Added array_to_sentence_string filter

This commit is contained in:
Marc Chung 2008-12-30 11:33:22 -07:00
parent e7b2df1156
commit 87a5e747fd
2 changed files with 48 additions and 1 deletions

View File

@ -20,5 +20,20 @@ module Jekyll
def number_of_words(input)
input.split.length
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

32
test/test_filters.rb Normal file
View File

@ -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