Class: ActiveSupport::Duration::Scalar
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
::Numeric
|
|
|
Instance Chain:
self,
::Numeric
|
|
| Inherits: | Numeric |
| Defined in: | activesupport/lib/active_support/duration.rb |
Constant Summary
Class Method Summary
- .new(value) ⇒ Scalar constructor
Instance Attribute Summary
- #value readonly
- #variable? ⇒ Boolean readonly
::Numeric - Inherited
| #html_safe?, | |
| #blank? | No number is blank: |
| #present? | |
Instance Method Summary
- #%(other)
- #*(other)
- #+(other)
- #-(other)
- #-@
- #/(other)
- #<=>(other)
- #coerce(other)
- #to_f
- #to_i
- #to_s
- #calculate(op, other) private
- #raise_type_error(other) private
::Numeric - Inherited
| #byte | Alias for Numeric#bytes. |
| #bytes | Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes. |
| #day | Alias for Numeric#days. |
| #days | Returns a |
| #exabyte | Alias for Numeric#exabytes. |
| #exabytes | Returns the number of bytes equivalent to the exabytes provided. |
| #fortnight | Alias for Numeric#fortnights. |
| #fortnights | Returns a |
| #gigabyte | Alias for Numeric#gigabytes. |
| #gigabytes | Returns the number of bytes equivalent to the gigabytes provided. |
| #hour | Alias for Numeric#hours. |
| #hours | Returns a |
| #in_milliseconds | Returns the number of milliseconds equivalent to the seconds provided. |
| #kilobyte | Alias for Numeric#kilobytes. |
| #kilobytes | Returns the number of bytes equivalent to the kilobytes provided. |
| #megabyte | Alias for Numeric#megabytes. |
| #megabytes | Returns the number of bytes equivalent to the megabytes provided. |
| #minute | Alias for Numeric#minutes. |
| #minutes | Returns a |
| #petabyte | Alias for Numeric#petabytes. |
| #petabytes | Returns the number of bytes equivalent to the petabytes provided. |
| #second | Alias for Numeric#seconds. |
| #seconds | Returns a |
| #terabyte | Alias for Numeric#terabytes. |
| #terabytes | Returns the number of bytes equivalent to the terabytes provided. |
| #week | Alias for Numeric#weeks. |
| #weeks | Returns a |
| #zettabyte | Alias for Numeric#zettabytes. |
| #zettabytes | Returns the number of bytes equivalent to the zettabytes provided. |
| #as_json | |
Constructor Details
.new(value) ⇒ Scalar
Instance Attribute Details
#value (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/duration.rb', line 16
attr_reader :value
#variable? ⇒ Boolean (readonly)
[ GitHub ]
# File 'activesupport/lib/active_support/duration.rb', line 93
def variable? # :nodoc: false end
Instance Method Details
#%(other)
[ GitHub ]#*(other)
[ GitHub ]#+(other)
[ GitHub ]# File 'activesupport/lib/active_support/duration.rb', line 41
def +(other) if Duration === other seconds = value + other._parts.fetch(:seconds, 0) new_parts = other._parts.merge(seconds: seconds) new_value = value + other.value Duration.new(new_value, new_parts, other.variable?) else calculate(:+, other) end end
#-(other)
[ GitHub ]# File 'activesupport/lib/active_support/duration.rb', line 53
def -(other) if Duration === other seconds = value - other._parts.fetch(:seconds, 0) new_parts = other._parts.transform_values(&:-@) new_parts = new_parts.merge(seconds: seconds) new_value = value - other.value Duration.new(new_value, new_parts, other.variable?) else calculate(:-, other) end end
#-@
[ GitHub ]#/(other)
[ GitHub ]#<=>(other)
[ GitHub ]#calculate(op, other) (private)
[ GitHub ]#coerce(other)
[ GitHub ]# File 'activesupport/lib/active_support/duration.rb', line 23
def coerce(other) [Scalar.new(other), self] end
#raise_type_error(other) (private)
# File 'activesupport/lib/active_support/duration.rb', line 108
def raise_type_error(other) raise TypeError, "no implicit conversion of #{other.class} into #{self.class}" end