diff options
author | Jean Boussier <jean.boussier@gmail.com> | 2017-01-19 11:28:26 +0100 |
---|---|---|
committer | Jean Boussier <jean.boussier@gmail.com> | 2017-01-19 15:24:41 +0100 |
commit | b9bda7fd891147a0bc0cffa6dd9d15601be8b472 (patch) | |
tree | ce46f94411b5582ed16b62f64c4d8ef69d04ead9 /activesupport/lib | |
parent | 190b82aee815175c407bf6978a100321df2249f0 (diff) | |
download | rails-b9bda7fd891147a0bc0cffa6dd9d15601be8b472.tar.gz rails-b9bda7fd891147a0bc0cffa6dd9d15601be8b472.tar.bz2 rails-b9bda7fd891147a0bc0cffa6dd9d15601be8b472.zip |
Allocation free Integer#to_s
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/core_ext/numeric/conversions.rb | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/activesupport/lib/active_support/core_ext/numeric/conversions.rb b/activesupport/lib/active_support/core_ext/numeric/conversions.rb index 946f8ddeab..4f6621693e 100644 --- a/activesupport/lib/active_support/core_ext/numeric/conversions.rb +++ b/activesupport/lib/active_support/core_ext/numeric/conversions.rb @@ -99,31 +99,30 @@ module ActiveSupport::NumericWithFormat # 1234567.to_s(:human, precision: 1, # separator: ',', # significant: false) # => "1,2 Million" - def to_s(*args) - format, options = args - options ||= {} - + def to_s(format = nil, options = nil) case format + when nil + super() + when Integer, String + super(format) when :phone - return ActiveSupport::NumberHelper.number_to_phone(self, options) + return ActiveSupport::NumberHelper.number_to_phone(self, options || {}) when :currency - return ActiveSupport::NumberHelper.number_to_currency(self, options) + return ActiveSupport::NumberHelper.number_to_currency(self, options || {}) when :percentage - return ActiveSupport::NumberHelper.number_to_percentage(self, options) + return ActiveSupport::NumberHelper.number_to_percentage(self, options || {}) when :delimited - return ActiveSupport::NumberHelper.number_to_delimited(self, options) + return ActiveSupport::NumberHelper.number_to_delimited(self, options || {}) when :rounded - return ActiveSupport::NumberHelper.number_to_rounded(self, options) + return ActiveSupport::NumberHelper.number_to_rounded(self, options || {}) when :human - return ActiveSupport::NumberHelper.number_to_human(self, options) + return ActiveSupport::NumberHelper.number_to_human(self, options || {}) when :human_size - return ActiveSupport::NumberHelper.number_to_human_size(self, options) + return ActiveSupport::NumberHelper.number_to_human_size(self, options || {}) + when Symbol + super() else - if is_a?(Float) || format.is_a?(Symbol) - super() - else - super - end + super(format) end end end |