Update item_property to recognize integers (#7878)
Merge pull request 7878
This commit is contained in:
		
							parent
							
								
									7ad84ef3c5
								
							
						
					
					
						commit
						eb81dc0e96
					
				|  | @ -368,15 +368,18 @@ module Jekyll | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     # rubocop:disable Performance/RegexpMatch |     FLOAT_LIKE   = %r!\A\s*-?(?:\d+\.?\d*|\.\d+)\s*\Z!.freeze | ||||||
|  |     INTEGER_LIKE = %r!\A\s*-?\d+\s*\Z!.freeze | ||||||
|  |     private_constant :FLOAT_LIKE, :INTEGER_LIKE | ||||||
|  | 
 | ||||||
|     # return numeric values as numbers for proper sorting |     # return numeric values as numbers for proper sorting | ||||||
|     def parse_sort_input(property) |     def parse_sort_input(property) | ||||||
|       number_like = %r!\A\s*-?(?:\d+\.?\d*|\.\d+)\s*\Z! |       stringified = property.to_s | ||||||
|       return property.to_f if property.to_s =~ number_like |       return property.to_i if INTEGER_LIKE.match?(stringified) | ||||||
|  |       return property.to_f if FLOAT_LIKE.match?(stringified) | ||||||
| 
 | 
 | ||||||
|       property |       property | ||||||
|     end |     end | ||||||
|     # rubocop:enable Performance/RegexpMatch |  | ||||||
| 
 | 
 | ||||||
|     def as_liquid(item) |     def as_liquid(item) | ||||||
|       case item |       case item | ||||||
|  |  | ||||||
|  | @ -831,6 +831,16 @@ class TestFilters < JekyllUnitTest | ||||||
|           ) |           ) | ||||||
|         end |         end | ||||||
|       end |       end | ||||||
|  | 
 | ||||||
|  |       should "should pass integers as is" do | ||||||
|  |         grouping = @filter.group_by([ | ||||||
|  |           { "name" => "Allison", "year" => 2016 }, | ||||||
|  |           { "name" => "Amy", "year" => 2016 }, | ||||||
|  |           { "name" => "George", "year" => 2019 }, | ||||||
|  |         ], "year") | ||||||
|  |         assert_equal "2016", grouping[0]["name"] | ||||||
|  |         assert_equal "2019", grouping[1]["name"] | ||||||
|  |       end | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     context "where filter" do |     context "where filter" do | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue