lib/wagons/extensions/application.rb in wagons-0.4.0 vs lib/wagons/extensions/application.rb in wagons-0.4.1
- old
+ new
@@ -4,13 +4,27 @@
# Append wagons at the end of all railties, even after the application.
def ordered_railties_with_wagons
@ordered_railties ||= ordered_railties_without_wagons.tap do |ordered|
Wagons.all.each do |w|
- ordered.push(ordered.delete(w))
+ if Rails::VERSION::STRING < '4.1.6'
+ ordered.push(ordered.delete(w))
+ else
+ ordered.unshift(array_deep_delete(ordered, w))
+ end
end
end
end
-
alias_method_chain :ordered_railties, :wagons
+
+ private
+
+ def array_deep_delete(array, item)
+ array.delete(item) ||
+ array.select { |i| i.is_a?(Array) }.
+ collect { |i| array_deep_delete(i, item) }.
+ compact.
+ first
+ end
+
end
end