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