Class: Astronoby::MoonPhase

Inherits:
Object
  • Object
show all
Defined in:
lib/astronoby/moon_phase.rb

Constant Summary collapse

NEW_MOON =
:new_moon
FIRST_QUARTER =
:first_quarter
FULL_MOON =
:full_moon
LAST_QUARTER =
:last_quarter

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(time:, phase:) ⇒ MoonPhase

Returns a new instance of MoonPhase.

Parameters:

  • time (Time)

    Time of the Moon phase

  • phase (Symbol)

    Moon phase



38
39
40
41
# File 'lib/astronoby/moon_phase.rb', line 38

def initialize(time:, phase:)
  @time = time
  @phase = phase
end

Instance Attribute Details

#phaseObject (readonly)

Returns the value of attribute phase.



10
11
12
# File 'lib/astronoby/moon_phase.rb', line 10

def phase
  @phase
end

#timeObject (readonly)

Returns the value of attribute time.



10
11
12
# File 'lib/astronoby/moon_phase.rb', line 10

def time
  @time
end

Class Method Details

.first_quarter(time) ⇒ Astronoby::MoonPhase

Returns First quarter Moon phase.

Parameters:

  • time (Time)

    Time of the Moon phase

Returns:



20
21
22
# File 'lib/astronoby/moon_phase.rb', line 20

def self.first_quarter(time)
  new(time: time, phase: FIRST_QUARTER)
end

.full_moon(time) ⇒ Astronoby::MoonPhase

Returns Full Moon phase.

Parameters:

  • time (Time)

    Time of the Moon phase

Returns:



26
27
28
# File 'lib/astronoby/moon_phase.rb', line 26

def self.full_moon(time)
  new(time: time, phase: FULL_MOON)
end

.last_quarter(time) ⇒ Astronoby::MoonPhase

Returns Last quarter Moon phase.

Parameters:

  • time (Time)

    Time of the Moon phase

Returns:



32
33
34
# File 'lib/astronoby/moon_phase.rb', line 32

def self.last_quarter(time)
  new(time: time, phase: LAST_QUARTER)
end

.new_moon(time) ⇒ Astronoby::MoonPhase

Returns New Moon phase.

Parameters:

  • time (Time)

    Time of the Moon phase

Returns:



14
15
16
# File 'lib/astronoby/moon_phase.rb', line 14

def self.new_moon(time)
  new(time: time, phase: NEW_MOON)
end