класс Integer
Публичные методы экземпляров
Включает возможность использования расчётов и объявлений времени, например, 45.minutes + 2.hours + 4.years.
Эти методы используют Time#advance для точных расчётов дат при использовании from_now, ago, и т.д., а также для добавления или вычитания их результатов из объекта Time.
# equivalent to Time.now.advance(months: 1) 1.month.from_now # equivalent to Time.now.advance(years: 2) 2.years.from_now # equivalent to Time.now.advance(months: 4, years: 5) (4.months + 5.years).from_now
Хотя эти методы обеспечивают точные вычисления при использовании, как в примерах выше, следует учитывать, что это не так, если результат months, years, и т.д. преобразуется перед использованием:
# equivalent to 30.days.to_i.from_now 1.month.to_i.from_now # equivalent to 365.25.days.to_f.from_now 1.year.to_f.from_now
В таких случаях для точного арифметического расчёта дат и времени следует использовать встроенные Ruby Date и Time.
# File activesupport/lib/active_support/core_ext/integer/time.rb, line 35 def months ActiveSupport::Duration.new(self * 30.days, [[:months, self]]) end
Проверяет, делится ли целое число на аргумент без остатка.
0.multiple_of?(0) # => true 6.multiple_of?(5) # => false 10.multiple_of?(2) # => true
# File activesupport/lib/active_support/core_ext/integer/multiple.rb, line 7 def multiple_of?(number) number != 0 ? self % number == 0 : zero? end
Ordinal возвращает суффикс, используемый для обозначения позиции в упорядоченной последовательности, например, 1-е, 2-е, 3-е, 4-е.
1.ordinal # => "st" 2.ordinal # => "nd" 1002.ordinal # => "nd" 1003.ordinal # => "rd" -11.ordinal # => "th" -1001.ordinal # => "st"
# File activesupport/lib/active_support/core_ext/integer/inflections.rb, line 26 def ordinal ActiveSupport::Inflector.ordinal(self) end
Ordinalize преобразует число в строку порядкового числительного, используемую для обозначения позиции в упорядоченной последовательности, например, 1-е, 2-е, 3-е, 4-е.
1.ordinalize # => "1st" 2.ordinalize # => "2nd" 1002.ordinalize # => "1002nd" 1003.ordinalize # => "1003rd" -11.ordinalize # => "-11th" -1001.ordinalize # => "-1001st"
# File activesupport/lib/active_support/core_ext/integer/inflections.rb, line 13 def ordinalize ActiveSupport::Inflector.ordinalize(self) end
# File activesupport/lib/active_support/core_ext/integer/time.rb, line 40 def years ActiveSupport::Duration.new(self * 365.25.days, [[:years, self]]) end
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.