Class: Astroapi::Categories::Data

Inherits:
BaseCategory show all
Defined in:
lib/astroapi/categories/data.rb

Overview

Data category client for planetary positions, aspects, house cusps, etc.

Instance Attribute Summary

Attributes inherited from BaseCategory

#http

Instance Method Summary collapse

Methods inherited from BaseCategory

#initialize

Constructor Details

This class inherits a constructor from Astroapi::Categories::BaseCategory

Instance Method Details

#get_aspects(request) ⇒ Hash

Get planetary aspects

Parameters:

  • request (Hash)

    Subject birth data

Returns:

  • (Hash)

    Planetary aspects



50
51
52
53
# File 'lib/astroapi/categories/data.rb', line 50

def get_aspects(request)
  Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
  http.post(build_url('aspects'), body: request)
end

#get_current_momentHash

Get current moment (planetary positions at current time)

Returns:

  • (Hash)

    Current planetary positions



89
90
91
# File 'lib/astroapi/categories/data.rb', line 89

def get_current_moment
  http.get(build_url('now'))
end

#get_enhanced_aspects(request) ⇒ Hash

Get enhanced planetary aspects

Parameters:

  • request (Hash)

    Subject birth data

Returns:

  • (Hash)

    Enhanced planetary aspects



58
59
60
61
# File 'lib/astroapi/categories/data.rb', line 58

def get_enhanced_aspects(request)
  Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
  http.post(build_url('aspects', 'enhanced'), body: request)
end

#get_enhanced_lunar_metrics(request) ⇒ Hash

Get enhanced lunar metrics

Parameters:

  • request (Hash)

    Subject birth data

Returns:

  • (Hash)

    Enhanced lunar metrics



82
83
84
85
# File 'lib/astroapi/categories/data.rb', line 82

def get_enhanced_lunar_metrics(request)
  Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
  http.post(build_url('lunar-metrics', 'enhanced'), body: request)
end

#get_enhanced_positions(request) ⇒ Hash

Get enhanced planetary positions with additional data

Parameters:

  • request (Hash)

    Subject birth data

Returns:

  • (Hash)

    Enhanced planetary positions



34
35
36
37
# File 'lib/astroapi/categories/data.rb', line 34

def get_enhanced_positions(request)
  Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
  http.post(build_url('positions', 'enhanced'), body: request)
end

#get_global_positions(request = {}) ⇒ Hash

Get global planetary positions (without subject)

Parameters:

  • request (Hash) (defaults to: {})

    Request options

Options Hash (request):

  • :date (String)

    ISO date string (optional)

Returns:

  • (Hash)

    Global planetary positions



43
44
45
# File 'lib/astroapi/categories/data.rb', line 43

def get_global_positions(request = {})
  http.post(build_url('global-positions'), body: request)
end

#get_house_cusps(request) ⇒ Hash

Get house cusps

Parameters:

  • request (Hash)

    Subject birth data

Returns:

  • (Hash)

    House cusps data



66
67
68
69
# File 'lib/astroapi/categories/data.rb', line 66

def get_house_cusps(request)
  Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
  http.post(build_url('house-cusps'), body: request)
end

#get_lunar_metrics(request) ⇒ Hash

Get lunar metrics

Parameters:

  • request (Hash)

    Subject birth data

Returns:

  • (Hash)

    Lunar phase, illumination, etc.



74
75
76
77
# File 'lib/astroapi/categories/data.rb', line 74

def get_lunar_metrics(request)
  Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
  http.post(build_url('lunar-metrics'), body: request)
end

#get_positions(request) ⇒ Hash

Get planetary positions

Examples:

positions = client.data.get_positions(
  subject: {
    birth_data: {
      year: 1990, month: 5, day: 11,
      hour: 14, minute: 30,
      city: 'London', country_code: 'GB'
    }
  }
)

Parameters:

  • request (Hash)

    Subject birth data

Options Hash (request):

  • :subject (Hash)

    Subject with birth_data

Returns:

  • (Hash)

    Planetary positions with signs, degrees, retrograde status

Raises:



26
27
28
29
# File 'lib/astroapi/categories/data.rb', line 26

def get_positions(request)
  Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
  http.post(build_url('positions'), body: request)
end