aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/time_with_zone.rb
diff options
context:
space:
mode:
authorParker Selbert <parker@sorentwo.com>2013-07-16 16:16:33 -0400
committerAndrew White <andyw@pixeltrix.co.uk>2014-01-26 21:25:54 +0000
commit4cfc467594da86090efa63f1852fb82df9458c2b (patch)
treedbc771cf9747b324fe5614b569ff687d745de810 /activesupport/lib/active_support/time_with_zone.rb
parente1e17a55d246d485f546766606580e8e4919442b (diff)
downloadrails-4cfc467594da86090efa63f1852fb82df9458c2b.tar.gz
rails-4cfc467594da86090efa63f1852fb82df9458c2b.tar.bz2
rails-4cfc467594da86090efa63f1852fb82df9458c2b.zip
Customize subsecond digits when encoding DateWithTime
The subsecond fraction digits had been hardcoded to 3. This forced all timestamps to include the subsecond digits with no way to customize the value. While the subsecond format is part of the ISO8601 spec, it is not adhered to by all parsers (notably mobile clients). This adds the ability to customize the number of digits used, optionally setting them to 0 in order to eliminate the subsecond fraction entirely: ActiveSupport::JSON::Encoding.subsecond_fraction_digits = 0
Diffstat (limited to 'activesupport/lib/active_support/time_with_zone.rb')
-rw-r--r--activesupport/lib/active_support/time_with_zone.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/time_with_zone.rb b/activesupport/lib/active_support/time_with_zone.rb
index d47aee00f4..26d4e686fd 100644
--- a/activesupport/lib/active_support/time_with_zone.rb
+++ b/activesupport/lib/active_support/time_with_zone.rb
@@ -154,7 +154,8 @@ module ActiveSupport
# # => "2005/02/01 05:15:10 -1000"
def as_json(options = nil)
if ActiveSupport::JSON::Encoding.use_standard_json_time_format
- xmlschema(3)
+ digits = ActiveSupport::JSON::Encoding.subsecond_fraction_digits || 3
+ xmlschema(digits)
else
%(#{time.strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)})
end