Module: SwissEphemeris

Defined in:
lib/swiss_ephemeris.rb

Constant Summary collapse

AST_OFFSET =
10_000
BODIES =
{
  SO: { id: Swe4r::SE_SUN, name: "sun", symbol: "" },
  SU: { id: Swe4r::SE_SUN, name: "sun", symbol: "" },
  MO: { id: Swe4r::SE_MOON, name: "moon", symbol: "" },
  ME: { id: Swe4r::SE_MERCURY, name: "mercury", symbol: "" },
  VE: { id: Swe4r::SE_VENUS, name: "venus", symbol: "" },
  MA: { id: Swe4r::SE_MARS, name: "mars", symbol: "" },
  JU: { id: Swe4r::SE_JUPITER, name: "jupiter", symbol: "" },
  SA: { id: Swe4r::SE_SATURN, name: "saturn", symbol: "" },
  UR: { id: Swe4r::SE_URANUS, name: "uranus", symbol: "" },
  NE: { id: Swe4r::SE_NEPTUNE, name: "neptune", symbol: "" },
  PL: { id: Swe4r::SE_PLUTO, name: "pluto", symbol: "" }, # '⛢'
  # MN: { id:Swe4r::SE_MEAN_NODE, name: 'n.node', symbol: '☊'},
  # TN: { id:Swe4r::SE_TRUE_NODE, name: 't.node', symbol: '☊'},
  # LI: Swe4r::SE_MEAN_APOG,
  # TL: Swe4r::SE_OSCU_APOG,
  EA: { id: Swe4r::SE_SUN, name: "earth", symbol: "🜨︎", antipode: true },
  CH: { id: Swe4r::SE_CHIRON, name: "chiron", symbol: "\u26b7" }, # ⚷
  CE: { id: Swe4r::SE_CERES, name: "ceres", symbol: "\u02a1" }, # ⚳
  PA: { id: Swe4r::SE_PALLAS, name: "pallas", symbol: "" }, # ⚴
  JN: { id: Swe4r::SE_JUNO, name: "juno", symbol: "" }, # ⚵
  VA: { id: Swe4r::SE_VESTA, name: "vesta", symbol: "" }, # ⚶
  PH: { id: Swe4r::SE_PHOLUS, name: "pholus", symbol: "\u2BDB" }, # ⭛
  SD: { id: AST_OFFSET + 90_377, name: "sedna", symbol: "\u2BF2" },
  ER: { id: AST_OFFSET + 136_199, name: "eris", symbol: "\u2BF1" },
  # Uranian Trans-Neptunian Points
  CU: { id: Swe4r::SE_CUPIDO, name: "cupido", symbol: "\u2BE0" },
  HA: { id: Swe4r::SE_HADES, name: "hades", symbol: "\u2BE1" },
  ZE: { id: Swe4r::SE_ZEUS, name: "zeus", symbol: "\u2BE2" },
  KR: { id: Swe4r::SE_KRONOS, name: "kronos", symbol: "\u2BE3" },
  AN: { id: Swe4r::SE_APOLLON, name: "apollon", symbol: "\u2BE4" }, # :AP
  AD: { id: Swe4r::SE_ADMETOS, name: "admetos", symbol: "\u2BE5" },
  VU: { id: Swe4r::SE_VULKANUS, name: "vulkanus", symbol: "\u2BE6" },
  PO: { id: Swe4r::SE_POSEIDON, name: "poseidon", symbol: "\u2BE7" },
  # asteroid 10: Hygiea
  NN: { name: "n.node", symbol: "" },
  SN: { name: "s.node", symbol: "", antipode: :NN },
  AC: { name: "ascendant", symbol: "AC", method: true },
  DC: { name: "descendant", symbol: "DC", antipode: :AC },
  MC: { name: "midheaven", symbol: "🅪", method: true },
  IC: { name: "nadir", symbol: "IC", antipode: :MC },
  VX: { name: "vertex", symbol: "Ӿ" }, # 🜊∀
  AV: { name: "antivertex", symbol: "", antipode: :VX },
  SVP: { name: "svp", symbol: "♈ᵀ" },
  AP: { name: "aries_point", symbol: "", method: true },
  POF: { name: "lot_of_fortune", symbol: "", method: true },
  POS: { name: "lot_of_spirit", symbol: "", method: true },
  POH: { name: "lot_of_harmony", symbol: "", method: true },
  POX: { name: "lot_of_sex", symbol: "", method: true }
}.freeze
SYMBOLS =
{ exalted: "", detriment: "", retrograde: "",
conjunct: "", opposite: "", trine: "", sextile: "*", square: "", octile: "",
semisextile: "", quincunx: "", seqsquiquadrate: "", quintile: "", biquintile: "b⬠",
trioctile: "" }.freeze
SIGNS =
%i[aries taurus gemini cancer leo virgo libra scorpio sagittarius capricorn aquarius pisces].freeze
HOUSES =
%w[I II III IV V VI VII VIII IX X XI XII].unshift(nil)
ZODIAC_SYM =

%w[♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ]

("\u2648".."\u2653").to_a
RULERSHIPS =
{
  SO: [:leo],
  MO: [:cancer],
  ME: %i[gemini virgo],
  VE: %i[taurus libra],
  MA: %i[aries scorpio],
  JU: %i[sagittarius pisces],
  SA: %i[capricorn aquarius],
  UR: [:aquarius],
  NE: [:pisces],
  PL: [:scorpio],
  NN: [:aquarius], # Jaimini only
  SN: [:scorpio] # Jaimini only
}.freeze
EXALTATION =
{ # https://en.wikipedia.org/wiki/Exaltation_(astrology)
  SO: [:aries, 19],
  MO: [:taurus, 3],
  ME: [:virgo, 15],
  VE: [:pisces, 27],
  MA: [:capricorn, 28],
  JU: [:cancer, 15],
  SA: [:libra, 21],
  NN: [:gemini, 3]
}.freeze

Class Method Summary collapse

Class Method Details

.jpl_file=(path) ⇒ Object



73
74
75
# File 'lib/swiss_ephemeris.rb', line 73

def self.jpl_file=(path)
  swe_set_jpl_file(path.to_s)
end

.path=(path) ⇒ Object

stars: ★ ☆ ✢ ✥ ✦ ✧ ❂ ❉ ✯ ❈ 🝊



69
70
71
# File 'lib/swiss_ephemeris.rb', line 69

def self.path=(path)
  Swe4r.swe_set_ephe_path(path.to_s)
end