Class: Astronoby::Dms
- Inherits:
-
Object
- Object
- Astronoby::Dms
- Defined in:
- lib/astronoby/angles/dms.rb
Overview
Represents an angle in degrees, arcminutes, arcseconds (DMS) notation.
Instance Attribute Summary collapse
-
#degrees ⇒ Integer
readonly
Degrees component.
-
#minutes ⇒ Integer
readonly
Arcminutes component.
-
#seconds ⇒ Float
readonly
Arcseconds component.
-
#sign ⇒ String
readonly
“+” or “-”.
Instance Method Summary collapse
-
#format(precision: 4) ⇒ String
The formatted DMS string (e.g., “+45° 30′ 15.0000″”).
-
#initialize(sign, degrees, minutes, seconds) ⇒ Dms
constructor
A new instance of Dms.
Constructor Details
#initialize(sign, degrees, minutes, seconds) ⇒ Dms
Returns a new instance of Dms.
22 23 24 25 26 27 |
# File 'lib/astronoby/angles/dms.rb', line 22 def initialize(sign, degrees, minutes, seconds) @sign = sign @degrees = degrees @minutes = minutes @seconds = seconds end |
Instance Attribute Details
#degrees ⇒ Integer (readonly)
Returns degrees component.
10 11 12 |
# File 'lib/astronoby/angles/dms.rb', line 10 def degrees @degrees end |
#minutes ⇒ Integer (readonly)
Returns arcminutes component.
13 14 15 |
# File 'lib/astronoby/angles/dms.rb', line 13 def minutes @minutes end |
#seconds ⇒ Float (readonly)
Returns arcseconds component.
16 17 18 |
# File 'lib/astronoby/angles/dms.rb', line 16 def seconds @seconds end |
#sign ⇒ String (readonly)
Returns “+” or “-”.
7 8 9 |
# File 'lib/astronoby/angles/dms.rb', line 7 def sign @sign end |
Instance Method Details
#format(precision: 4) ⇒ String
Returns the formatted DMS string (e.g., “+45° 30′ 15.0000″”).
31 32 33 |
# File 'lib/astronoby/angles/dms.rb', line 31 def format(precision: 4) "#{sign}#{degrees}° #{minutes}′ #{seconds.floor(precision)}″" end |