Module: Ephemeris::Zodiac::Aspect

Defined in:
lib/ephemeris/zodiac/aspect.rb

Defined Under Namespace

Modules: Conjunction, Opposition, Sextile, Square, Trine

Class Method Summary collapse

Class Method Details

.orb_range_by_target_at_aries_pisces(planet_1, planet_2, coverage) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ephemeris/zodiac/aspect.rb', line 14

def self.orb_range_by_target_at_aries_pisces( planet_1, planet_2, coverage)
  # Try it the other way around
  point = planet_1.position

  if point < coverage or point+coverage > 360
    # Ok, now for the hard part
    if point < coverage
      # Aries with a lower Pisces
      pisces_range = [340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359]
      difference = (point - coverage).round
      pisces_range = pisces_range[ difference ]...360
      return Ephemeris::Zodiac::Orb.new( [ pisces_range, 0..point+coverage], planet_2 )
    else
      # Pisces side upper Aries
      difference = point + coverage - 360
      return Ephemeris::Zodiac::Orb.new( [point-coverage...360, 0...difference], planet_2 )
    end
  else
    return Ephemeris::Zodiac::Orb.new( (point - coverage)..(point + coverage), planet_2 )
  end
end

.orb_range_defined_by_target(planet_1, planet_2) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/ephemeris/zodiac/aspect.rb', line 3

def self.orb_range_defined_by_target( planet_1, planet_2 )
  coverage = (planet_1.class::ORB + planet_2.class::ORB).to_f / 2
  point = planet_2.position

  if point < coverage or point+coverage > 360
    return self.orb_range_by_target_at_aries_pisces( planet_1, planet_2, coverage)
  else
    return Ephemeris::Zodiac::Orb.new( (point - coverage)..(point + coverage), planet_1 )
  end
end