Follow Ruby Styleguide
This commit is contained in:
parent
19b0fe9781
commit
1e0d9f899b
|
@ -197,15 +197,26 @@ module Jekyll
|
||||||
# nils ('first' | 'last') - nils appear before or after non-nil values
|
# nils ('first' | 'last') - nils appear before or after non-nil values
|
||||||
#
|
#
|
||||||
# Returns the filtered array of objects
|
# Returns the filtered array of objects
|
||||||
def sort(input, key = nil, nils = 'first')
|
def sort(input, key = nil, nils = "first")
|
||||||
if key.nil?
|
if key.nil?
|
||||||
input.sort
|
input.sort
|
||||||
else
|
else
|
||||||
|
case
|
||||||
|
when nils == "first"
|
||||||
|
order = - 1
|
||||||
|
when nils == "last"
|
||||||
|
order = + 1
|
||||||
|
else
|
||||||
|
Jekyll.logger.error "Invalid nils order:",
|
||||||
|
"'#{nils}' is not a valid nils order. It must be 'first' or 'last'."
|
||||||
|
exit(1)
|
||||||
|
end
|
||||||
|
|
||||||
input.sort { |a, b|
|
input.sort { |a, b|
|
||||||
if a[key].nil? and !b[key].nil?
|
if !a[key].nil? && b[key].nil?
|
||||||
nils == 'first' ? -1 : +1
|
- order
|
||||||
elsif !a[key].nil? and b[key].nil?
|
elsif a[key].nil? && !b[key].nil?
|
||||||
nils == 'first' ? +1 : -1
|
+ order
|
||||||
else
|
else
|
||||||
a[key] <=> b[key]
|
a[key] <=> b[key]
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue