Merge pull request #3935 from jekyll/filter-where-to_s
Merge pull request 3935
This commit is contained in:
		
						commit
						831eb17b29
					
				|  | @ -211,7 +211,7 @@ module Jekyll | |||
|     def where(input, property, value) | ||||
|       return input unless input.is_a?(Enumerable) | ||||
|       input = input.values if input.is_a?(Hash) | ||||
|       input.select { |object| item_property(object, property) == value } | ||||
|       input.select { |object| item_property(object, property).to_s == value.to_s } | ||||
|     end | ||||
| 
 | ||||
|     # Sort an array of objects | ||||
|  |  | |||
|  | @ -277,6 +277,23 @@ class TestFilters < JekyllUnitTest | |||
|       should "filter objects appropriately" do | ||||
|         assert_equal 2, @filter.where(@array_of_objects, "color", "red").length | ||||
|       end | ||||
| 
 | ||||
|       should "stringify during comparison for compatibility with liquid parsing" do | ||||
|         hash = { | ||||
|           "The Words" => {"rating" => 1.2, "featured" => false}, | ||||
|           "Limitless" => {"rating" => 9.2, "featured" => true}, | ||||
|           "Hustle"    => {"rating" => 4.7, "featured" => true}, | ||||
|         } | ||||
| 
 | ||||
|         results = @filter.where(hash, "featured", "true") | ||||
|         assert_equal 2, results.length | ||||
|         assert_equal 9.2, results[0]["rating"] | ||||
|         assert_equal 4.7, results[1]["rating"] | ||||
| 
 | ||||
|         results = @filter.where(hash, "rating", 4.7) | ||||
|         assert_equal 1, results.length | ||||
|         assert_equal 4.7, results[0]["rating"] | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     context "sort filter" do | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue