Spec-Zone.ru › Ruby on Rails 4.2

класс ActiveSupport::Duration

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

Обеспечивает точные измерения дат и времени с использованием Date#advance и Time#advance соответственно. В основном поддерживает методы в Numeric.

1.month.ago       # equivalent to Time.now.advance(months: -1)

Атрибуты

parts[RW]
value[RW]

Открытые методы экземпляров

+(other) Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 18
def +(other)
  if Duration === other
    Duration.new(value + other.value, @parts + other.parts)
  else
    Duration.new(value + other, @parts + [[:seconds, other]])
  end
end

Добавляет другой Duration или Numeric к этому Duration. Значения Numeric обрабатываются как секунды.

-(other) Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 28
def -(other)
  self + (-other)
end

Вычитает другой Duration или Numeric из этого Duration. Значения Numeric обрабатываются как секунды.

==(other) Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 47
def ==(other)
  if Duration === other
    other.value == value
  else
    other == value
  end
end

Возвращает true, если other также является экземпляром Duration с теми же value, или если other == value.

ago(time = ::Time.current) Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 108
def ago(time = ::Time.current)
  sum(-1, time)
end

Вычисляет новую дату Time или Date, которая находится в прошлом так же, как это представляет Duration.

Также алиас как: until
eql?(other) Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 85
def eql?(other)
  Duration === other && other.value.eql?(value)
end

Возвращает true, если other также является экземпляром Duration, имеющим те же части, что и у этого.

from_now(time = ::Time.current)
Псевдоним для: since
hash() Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 89
def hash
  @value.hash
end
respond_to_missing?(method, include_private=false) Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 125
def respond_to_missing?(method, include_private=false) #:nodoc
  @value.respond_to?(method, include_private)
end
since(time = ::Time.current) Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 101
def since(time = ::Time.current)
  sum(1, time)
end

Вычисляет новую дату Time или Date, которая находится в будущем так же, как это представляет Duration.

Также алиас как: from_now
to_i() Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 79
def to_i
  @value.to_i
end

Возвращает количество секунд, которые представляет этот Duration.

1.minute.to_i   # => 60
1.hour.to_i     # => 3600
1.day.to_i      # => 86400

Обратите внимание, что это преобразование делает некоторые предположения о продолжительности некоторых периодов, например, месяцы всегда составляют 30 дней, а годы — 365,25 дней:

# equivalent to 30.days.to_i
1.month.to_i    # => 2592000

# equivalent to 365.25.days.to_i
1.year.to_i     # => 31557600

В таких случаях для точных вычислений дат и времени следует использовать встроенные Ruby Date и Time.

to_s() Показать исходный код
# File activesupport/lib/active_support/duration.rb, line 55
def to_s
  @value.to_s
end
until(time = ::Time.current)
Псевдоним для: ago

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

Spec-Zone.ru

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