Spec-Zone.ru › Ruby on Rails 5.0

класс ActiveSupport::Duration::ISO8601Serializer

Родитель:
Объект

Сериализует продолжительность в строку в формате ISO 8601 Продолжительность.

Публичные Классовые Методы

new(duration, precision: nil) Показать исходный код
# File activesupport/lib/active_support/duration/iso8601_serializer.rb, line 8
def initialize(duration, precision: nil)
  @duration = duration
  @precision = precision
end

Публичные Экземплярные Методы

serialize() Показать исходный код
# File activesupport/lib/active_support/duration/iso8601_serializer.rb, line 14
def serialize
  output = 'P'
  parts, sign = normalize
  output << "#{parts[:years]}Y"   if parts.key?(:years)
  output << "#{parts[:months]}M"  if parts.key?(:months)
  output << "#{parts[:weeks]}W"   if parts.key?(:weeks)
  output << "#{parts[:days]}D"    if parts.key?(:days)
  time = ''
  time << "#{parts[:hours]}H"     if parts.key?(:hours)
  time << "#{parts[:minutes]}M"   if parts.key?(:minutes)
  if parts.key?(:seconds)
    time << "#{sprintf(@precision ? "%0.0#{@precision}f" : '%g', parts[:seconds])}S"
  end
  output << "T#{time}"  if time.present?
  "#{sign}#{output}"
end

Строит и возвращает строку вывода.

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API