Without this the result of converting the hash to JSON can vary
which causes different hashes for the result JS asset.
This is only an issue with ruby 1.8 as ruby 1.9 hashes behave like
the ActiveSupport::OrderedHash and enumerate in insertion order.
end
end
end
+
+ module JS
+ class << self
+ def make_ordered(unordered)
+ ordered = ActiveSupport::OrderedHash.new
+
+ unordered.keys.sort { |a,b| a.to_s <=> b.to_s }.each do |key|
+ value = unordered[key]
+
+ if value.is_a?(Hash)
+ ordered[key] = make_ordered(value)
+ else
+ ordered[key] = value
+ end
+ end
+
+ ordered
+ end
+
+ def filtered_translations_with_order
+ make_ordered(filtered_translations_without_order)
+ end
+
+ alias_method_chain :filtered_translations, :order
+ end
+ end
end
I18n::Backend::Simple.include(I18n::Backend::PluralizationFallback)