Class: RubyChartEngine::Calculations::Dignities
- Inherits:
-
Object
- Object
- RubyChartEngine::Calculations::Dignities
- Defined in:
- lib/ruby_chart_engine/calculations/dignities.rb
Constant Summary collapse
- RULERSHIPS =
Essential dignities table
{ aries: { ruler: :mars, detriment: :venus, exaltation: :sun, fall: :saturn }, taurus: { ruler: :venus, detriment: :mars, exaltation: :moon, fall: nil }, gemini: { ruler: :mercury, detriment: :jupiter, exaltation: nil, fall: nil }, cancer: { ruler: :moon, detriment: :saturn, exaltation: :jupiter, fall: :mars }, leo: { ruler: :sun, detriment: :saturn, exaltation: nil, fall: nil }, virgo: { ruler: :mercury, detriment: :jupiter, exaltation: :mercury, fall: :venus }, libra: { ruler: :venus, detriment: :mars, exaltation: :saturn, fall: :sun }, scorpio: { ruler: :mars, detriment: :venus, exaltation: nil, fall: :moon }, sagittarius: { ruler: :jupiter, detriment: :mercury, exaltation: nil, fall: nil }, capricorn: { ruler: :saturn, detriment: :moon, exaltation: :mars, fall: :jupiter }, aquarius: { ruler: :saturn, detriment: :sun, exaltation: nil, fall: nil }, pisces: { ruler: :jupiter, detriment: :mercury, exaltation: :venus, fall: :mercury } }.freeze
- MODERN_RULERSHIPS =
Modern rulerships (for outer planets)
{ scorpio: :pluto, aquarius: :uranus, pisces: :neptune }.freeze
Class Method Summary collapse
-
.calculate(planet_name, sign_index) ⇒ Object
Calculate dignities for a planet in a sign.
- .default_dignities ⇒ Object
- .has_any_dignity?(planet_name, dignities_for_sign) ⇒ Boolean
-
.score(dignities) ⇒ Object
Calculate dignity score.
Class Method Details
.calculate(planet_name, sign_index) ⇒ Object
Calculate dignities for a planet in a sign
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ruby_chart_engine/calculations/dignities.rb', line 28 def self.calculate(planet_name, sign_index) sign_name = SIGNS[sign_index][:name].downcase.to_sym dignities_for_sign = RULERSHIPS[sign_name] return default_dignities unless dignities_for_sign { domicile: dignities_for_sign[:ruler] == planet_name, detriment: dignities_for_sign[:detriment] == planet_name, exaltation: dignities_for_sign[:exaltation] == planet_name, fall: dignities_for_sign[:fall] == planet_name, peregrine: !has_any_dignity?(planet_name, dignities_for_sign) } end |
.default_dignities ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/ruby_chart_engine/calculations/dignities.rb', line 60 def self.default_dignities { domicile: false, detriment: false, exaltation: false, fall: false, peregrine: true } end |
.has_any_dignity?(planet_name, dignities_for_sign) ⇒ Boolean
55 56 57 58 |
# File 'lib/ruby_chart_engine/calculations/dignities.rb', line 55 def self.has_any_dignity?(planet_name, dignities_for_sign) dignities_for_sign[:ruler] == planet_name || dignities_for_sign[:exaltation] == planet_name end |
.score(dignities) ⇒ Object
Calculate dignity score
44 45 46 47 48 49 50 51 |
# File 'lib/ruby_chart_engine/calculations/dignities.rb', line 44 def self.score(dignities) score = 0 score += 5 if dignities[:domicile] score += 4 if dignities[:exaltation] score -= 5 if dignities[:detriment] score -= 4 if dignities[:fall] score end |