Method: ActiveSupport::Duration::HumanStringSerializer#serialize
- Defined in:
- lib/active_support/duration/human_string.rb
permalink #serialize ⇒ Object
Builds and returns output_parts string.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/active_support/duration/human_string.rb', line 72 def serialize parts, sign = normalize output_parts = [] output_parts << [parts[:years], 'y'] if parts.key?(:years) output_parts << [parts[:months], 'm'] if parts.key?(:months) output_parts << [parts[:weeks], 'w'] if parts.key?(:weeks) output_parts << [parts[:days], 'd'] if parts.key?(:days) output_parts << [parts[:hours], 'h'] if parts.key?(:hours) output_parts << [parts[:minutes], 'm'] if parts.key?(:minutes) if parts.key?(:seconds) output_parts << [sprintf(@precision ? "%0.0#{@precision}f" : '%g', parts[:seconds]), 's'] end output_parts.map!.with_index { |(n, units), i| if @use_2_digit_numbers && i >= 1 n = sprintf('%02d', n) end "#{n}#{@separator}#{units}" } output = output_parts.join(@delimiter) "#{sign}#{output}" end |