astroapi-ruby 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/lib/astroapi/categories/analysis.rb +219 -0
  3. data/lib/astroapi/categories/astrocartography.rb +119 -0
  4. data/lib/astroapi/categories/base_category.rb +30 -0
  5. data/lib/astroapi/categories/charts.rb +119 -0
  6. data/lib/astroapi/categories/chinese.rb +72 -0
  7. data/lib/astroapi/categories/data.rb +100 -0
  8. data/lib/astroapi/categories/eclipses.rb +40 -0
  9. data/lib/astroapi/categories/enhanced.rb +53 -0
  10. data/lib/astroapi/categories/fengshui.rb +44 -0
  11. data/lib/astroapi/categories/fixed_stars.rb +47 -0
  12. data/lib/astroapi/categories/glossary.rb +114 -0
  13. data/lib/astroapi/categories/horary.rb +58 -0
  14. data/lib/astroapi/categories/horoscope.rb +144 -0
  15. data/lib/astroapi/categories/human_design.rb +77 -0
  16. data/lib/astroapi/categories/insights/business.rb +62 -0
  17. data/lib/astroapi/categories/insights/financial.rb +62 -0
  18. data/lib/astroapi/categories/insights/pet.rb +53 -0
  19. data/lib/astroapi/categories/insights/relationship.rb +67 -0
  20. data/lib/astroapi/categories/insights/wellness.rb +67 -0
  21. data/lib/astroapi/categories/insights.rb +41 -0
  22. data/lib/astroapi/categories/kabbalah.rb +69 -0
  23. data/lib/astroapi/categories/lunar.rb +51 -0
  24. data/lib/astroapi/categories/numerology.rb +37 -0
  25. data/lib/astroapi/categories/palmistry.rb +44 -0
  26. data/lib/astroapi/categories/pdf.rb +47 -0
  27. data/lib/astroapi/categories/render.rb +47 -0
  28. data/lib/astroapi/categories/svg.rb +48 -0
  29. data/lib/astroapi/categories/tarot.rb +156 -0
  30. data/lib/astroapi/categories/traditional.rb +93 -0
  31. data/lib/astroapi/categories/vedic.rb +190 -0
  32. data/lib/astroapi/categories/ziwei.rb +25 -0
  33. data/lib/astroapi/client.rb +103 -0
  34. data/lib/astroapi/configuration.rb +44 -0
  35. data/lib/astroapi/error.rb +74 -0
  36. data/lib/astroapi/http/client.rb +108 -0
  37. data/lib/astroapi/http/middleware/authentication.rb +22 -0
  38. data/lib/astroapi/http/middleware/logger.rb +43 -0
  39. data/lib/astroapi/http/middleware/response_unwrapper.rb +25 -0
  40. data/lib/astroapi/validators/base_validator.rb +72 -0
  41. data/lib/astroapi/validators/subject_validator.rb +87 -0
  42. data/lib/astroapi/version.rb +5 -0
  43. data/lib/astroapi.rb +18 -0
  44. metadata +218 -0
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../base_category'
4
+ require_relative '../../validators/subject_validator'
5
+
6
+ module Astroapi
7
+ module Categories
8
+ module Insights
9
+ # Financial insights sub-client
10
+ class Financial < BaseCategory
11
+ # Get market timing
12
+ # @param request [Hash] Date range and market
13
+ # @return [Hash] Market timing analysis
14
+ def get_market_timing(request)
15
+ http.post(build_url('market-timing'), body: request)
16
+ end
17
+
18
+ # Analyze personal trading
19
+ # @param request [Hash] Subject birth data
20
+ # @return [Hash] Personal trading style analysis
21
+ def analyze_personal_trading(request)
22
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
23
+ http.post(build_url('personal-trading'), body: request)
24
+ end
25
+
26
+ # Get Gann analysis
27
+ # @param request [Hash] Market and date
28
+ # @return [Hash] W.D. Gann analysis
29
+ def get_gann_analysis(request)
30
+ http.post(build_url('gann-analysis'), body: request)
31
+ end
32
+
33
+ # Get Bradley Siderograph
34
+ # @param request [Hash] Date range
35
+ # @return [Hash] Bradley Siderograph data
36
+ def get_bradley_siderograph(request)
37
+ http.post(build_url('bradley-siderograph'), body: request)
38
+ end
39
+
40
+ # Get crypto timing
41
+ # @param request [Hash] Cryptocurrency and date range
42
+ # @return [Hash] Crypto timing analysis
43
+ def get_crypto_timing(request)
44
+ http.post(build_url('crypto-timing'), body: request)
45
+ end
46
+
47
+ # Get forex timing
48
+ # @param request [Hash] Currency pair and date range
49
+ # @return [Hash] Forex timing analysis
50
+ def get_forex_timing(request)
51
+ http.post(build_url('forex-timing'), body: request)
52
+ end
53
+
54
+ protected
55
+
56
+ def api_prefix
57
+ '/api/v3/insights/financial'
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../base_category'
4
+
5
+ module Astroapi
6
+ module Categories
7
+ module Insights
8
+ # Pet insights sub-client
9
+ class Pet < BaseCategory
10
+ # Get pet personality
11
+ # @param request [Hash] Pet birth data
12
+ # @return [Hash] Pet personality analysis
13
+ def get_personality(request)
14
+ http.post(build_url('personality'), body: request)
15
+ end
16
+
17
+ # Get owner-pet compatibility
18
+ # @param request [Hash] Owner and pet birth data
19
+ # @return [Hash] Compatibility analysis
20
+ def get_compatibility(request)
21
+ http.post(build_url('compatibility'), body: request)
22
+ end
23
+
24
+ # Get training windows
25
+ # @param request [Hash] Pet birth data and date range
26
+ # @return [Hash] Optimal training times
27
+ def get_training_windows(request)
28
+ http.post(build_url('training-windows'), body: request)
29
+ end
30
+
31
+ # Get health sensitivities
32
+ # @param request [Hash] Pet birth data
33
+ # @return [Hash] Health sensitivity analysis
34
+ def get_health_sensitivities(request)
35
+ http.post(build_url('health-sensitivities'), body: request)
36
+ end
37
+
38
+ # Get multi-pet dynamics
39
+ # @param request [Hash] Multiple pets' birth data
40
+ # @return [Hash] Multi-pet interaction analysis
41
+ def get_multi_pet_dynamics(request)
42
+ http.post(build_url('multi-pet-dynamics'), body: request)
43
+ end
44
+
45
+ protected
46
+
47
+ def api_prefix
48
+ '/api/v3/insights/pet'
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../base_category'
4
+
5
+ module Astroapi
6
+ module Categories
7
+ module Insights
8
+ # Relationship insights sub-client
9
+ class Relationship < BaseCategory
10
+ # Get compatibility
11
+ # @param request [Hash] Two subjects' birth data
12
+ # @return [Hash] Compatibility analysis
13
+ def get_compatibility(request)
14
+ http.post(build_url('compatibility'), body: request)
15
+ end
16
+
17
+ # Get compatibility score
18
+ # @param request [Hash] Two subjects' birth data
19
+ # @return [Hash] Numeric compatibility score
20
+ def get_compatibility_score(request)
21
+ http.post(build_url('compatibility-score'), body: request)
22
+ end
23
+
24
+ # Get love languages
25
+ # @param request [Hash] Two subjects' birth data
26
+ # @return [Hash] Love language analysis
27
+ def get_love_languages(request)
28
+ http.post(build_url('love-languages'), body: request)
29
+ end
30
+
31
+ # Get Davison report
32
+ # @param request [Hash] Two subjects' birth data
33
+ # @return [Hash] Davison relationship chart
34
+ def get_davison_report(request)
35
+ http.post(build_url('davison'), body: request)
36
+ end
37
+
38
+ # Get timing
39
+ # @param request [Hash] Two subjects and date range
40
+ # @return [Hash] Relationship timing analysis
41
+ def get_timing(request)
42
+ http.post(build_url('timing'), body: request)
43
+ end
44
+
45
+ # Get red flags
46
+ # @param request [Hash] Two subjects' birth data
47
+ # @return [Hash] Potential relationship challenges
48
+ def get_red_flags(request)
49
+ http.post(build_url('red-flags'), body: request)
50
+ end
51
+
52
+ # Discover relationship insights
53
+ # @param params [Hash] Query parameters
54
+ # @return [Hash] Available relationship insights
55
+ def discover(params = {})
56
+ http.get(build_url, params: params)
57
+ end
58
+
59
+ protected
60
+
61
+ def api_prefix
62
+ '/api/v3/insights/relationship'
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../base_category'
4
+ require_relative '../../validators/subject_validator'
5
+
6
+ module Astroapi
7
+ module Categories
8
+ module Insights
9
+ # Wellness insights sub-client
10
+ class Wellness < BaseCategory
11
+ # Get body mapping
12
+ # @param request [Hash] Subject birth data
13
+ # @return [Hash] Body-astrology correspondences
14
+ def get_body_mapping(request)
15
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
16
+ http.post(build_url('body-mapping'), body: request)
17
+ end
18
+
19
+ # Get biorhythms
20
+ # @param request [Hash] Subject and date range
21
+ # @return [Hash] Physical/emotional/intellectual cycles
22
+ def get_biorhythms(request)
23
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
24
+ http.post(build_url('biorhythms'), body: request)
25
+ end
26
+
27
+ # Get wellness timing
28
+ # @param request [Hash] Subject and date range
29
+ # @return [Hash] Optimal wellness activity timing
30
+ def get_wellness_timing(request)
31
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
32
+ http.post(build_url('wellness-timing'), body: request)
33
+ end
34
+
35
+ # Get energy patterns
36
+ # @param request [Hash] Subject birth data
37
+ # @return [Hash] Energy level patterns
38
+ def get_energy_patterns(request)
39
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
40
+ http.post(build_url('energy-patterns'), body: request)
41
+ end
42
+
43
+ # Get wellness score
44
+ # @param request [Hash] Subject and current date
45
+ # @return [Hash] Current wellness score
46
+ def get_wellness_score(request)
47
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
48
+ http.post(build_url('wellness-score'), body: request)
49
+ end
50
+
51
+ # Get moon wellness
52
+ # @param request [Hash] Subject and lunar phase
53
+ # @return [Hash] Lunar wellness recommendations
54
+ def get_moon_wellness(request)
55
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
56
+ http.post(build_url('moon-wellness'), body: request)
57
+ end
58
+
59
+ protected
60
+
61
+ def api_prefix
62
+ '/api/v3/insights/wellness'
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_category'
4
+ require_relative 'insights/relationship'
5
+ require_relative 'insights/pet'
6
+ require_relative 'insights/wellness'
7
+ require_relative 'insights/financial'
8
+ require_relative 'insights/business'
9
+
10
+ module Astroapi
11
+ module Categories
12
+ # Insights category client with specialized sub-clients
13
+ class InsightsCategory < BaseCategory
14
+ attr_reader :relationship, :pet, :wellness, :financial, :business
15
+
16
+ def initialize(http_client)
17
+ super(http_client)
18
+
19
+ # Initialize sub-clients
20
+ @relationship = Insights::Relationship.new(http_client)
21
+ @pet = Insights::Pet.new(http_client)
22
+ @wellness = Insights::Wellness.new(http_client)
23
+ @financial = Insights::Financial.new(http_client)
24
+ @business = Insights::Business.new(http_client)
25
+ end
26
+
27
+ # Discover available insights
28
+ # @param params [Hash] Query parameters
29
+ # @return [Hash] List of available insights
30
+ def discover(params = {})
31
+ http.get(build_url, params: params)
32
+ end
33
+
34
+ protected
35
+
36
+ def api_prefix
37
+ '/api/v3/insights'
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_category'
4
+ require_relative '../validators/subject_validator'
5
+
6
+ module Astroapi
7
+ module Categories
8
+ # Kabbalah category client
9
+ class Kabbalah < BaseCategory
10
+ # Get birth angels
11
+ # @param request [Hash] Subject birth data
12
+ # @return [Hash] Guardian angels based on birth
13
+ def get_birth_angels(request)
14
+ Validators::SubjectValidator.validate!(request)
15
+ http.post(build_url('birth-angels'), body: request)
16
+ end
17
+
18
+ # Calculate gematria
19
+ # @param request [Hash] Name or text for analysis
20
+ # @return [Hash] Gematria calculation
21
+ def calculate_gematria(request)
22
+ http.post(build_url('gematria'), body: request)
23
+ end
24
+
25
+ # Get tikkun
26
+ # @param request [Hash] Subject birth data
27
+ # @return [Hash] Soul correction analysis
28
+ def get_tikkun(request)
29
+ Validators::SubjectValidator.validate!(request)
30
+ http.post(build_url('tikkun'), body: request)
31
+ end
32
+
33
+ # Get Tree of Life chart
34
+ # @param request [Hash] Subject birth data
35
+ # @return [Hash] Kabbalistic Tree of Life mapping
36
+ def get_tree_of_life_chart(request)
37
+ Validators::SubjectValidator.validate!(request)
38
+ http.post(build_url('tree-of-life-chart'), body: request)
39
+ end
40
+
41
+ # Get 72 Angels glossary
42
+ # @param params [Hash] Query parameters
43
+ # @return [Hash] Angels reference
44
+ def get_angels_glossary(params = {})
45
+ http.get(build_url('glossary', 'angels-72'), params: params)
46
+ end
47
+
48
+ # Get Hebrew letters glossary
49
+ # @param params [Hash] Query parameters
50
+ # @return [Hash] Hebrew letters reference
51
+ def get_hebrew_letters_glossary(params = {})
52
+ http.get(build_url('glossary', 'hebrew-letters'), params: params)
53
+ end
54
+
55
+ # Get Sephiroth glossary
56
+ # @param params [Hash] Query parameters
57
+ # @return [Hash] Sephiroth reference
58
+ def get_sephiroth_glossary(params = {})
59
+ http.get(build_url('glossary', 'sephiroth'), params: params)
60
+ end
61
+
62
+ protected
63
+
64
+ def api_prefix
65
+ '/api/v3/kabbalah'
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_category'
4
+
5
+ module Astroapi
6
+ module Categories
7
+ # Lunar category client for Moon phases and lunar data
8
+ class Lunar < BaseCategory
9
+ # Get moon phases in date range
10
+ # @param request [Hash] Date range
11
+ # @return [Hash] Moon phases
12
+ def get_phases(request)
13
+ http.post(build_url('phases'), body: request)
14
+ end
15
+
16
+ # Get lunar events
17
+ # @param request [Hash] Date range
18
+ # @return [Hash] Lunar ingresses and aspects
19
+ def get_events(request)
20
+ http.post(build_url('events'), body: request)
21
+ end
22
+
23
+ # Get lunar mansions
24
+ # @param request [Hash] Date and location
25
+ # @return [Hash] 28 lunar mansions
26
+ def get_mansions(request)
27
+ http.post(build_url('mansions'), body: request)
28
+ end
29
+
30
+ # Get void of course periods
31
+ # @param request [Hash] Date range
32
+ # @return [Hash] Void-of-course periods
33
+ def get_void_of_course(request)
34
+ http.post(build_url('void-of-course'), body: request)
35
+ end
36
+
37
+ # Get annual lunar calendar
38
+ # @param year [Integer] Year
39
+ # @return [Hash] Lunar calendar
40
+ def get_calendar(year)
41
+ http.get(build_url('calendar', year.to_s))
42
+ end
43
+
44
+ protected
45
+
46
+ def api_prefix
47
+ '/api/v3/lunar'
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_category'
4
+
5
+ module Astroapi
6
+ module Categories
7
+ # Numerology category client for numerology calculations
8
+ class Numerology < BaseCategory
9
+ # Get core numbers
10
+ # @param request [Hash] Name and birth data
11
+ # @return [Hash] Life Path, Expression, Soul Urge
12
+ def get_core_numbers(request)
13
+ http.post(build_url('core-numbers'), body: request)
14
+ end
15
+
16
+ # Get comprehensive report
17
+ # @param request [Hash] Name and birth data
18
+ # @return [Hash] Full numerology report
19
+ def get_comprehensive_report(request)
20
+ http.post(build_url('comprehensive'), body: request)
21
+ end
22
+
23
+ # Analyze compatibility
24
+ # @param request [Hash] Two people's names and birth data
25
+ # @return [Hash] Numerology compatibility
26
+ def analyze_compatibility(request)
27
+ http.post(build_url('compatibility'), body: request)
28
+ end
29
+
30
+ protected
31
+
32
+ def api_prefix
33
+ '/api/v3/numerology'
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_category'
4
+
5
+ module Astroapi
6
+ module Categories
7
+ # Palmistry category client
8
+ class Palmistry < BaseCategory
9
+ # Palm analysis (raw data)
10
+ # @param request [Hash] Palm image or data
11
+ # @return [Hash] Raw palm analysis data
12
+ def analyze(request)
13
+ http.post(build_url('analysis'), body: request)
14
+ end
15
+
16
+ # Palm reading (full interpretation)
17
+ # @param request [Hash] Palm image or data
18
+ # @return [Hash] Full palm reading
19
+ def get_reading(request)
20
+ http.post(build_url('reading'), body: request)
21
+ end
22
+
23
+ # Palm-astrology integration
24
+ # @param request [Hash] Palm data and birth data
25
+ # @return [Hash] Combined palm-astrology analysis
26
+ def get_astro_integration(request)
27
+ http.post(build_url('astro'), body: request)
28
+ end
29
+
30
+ # Palm compatibility analysis
31
+ # @param request [Hash] Two palms data
32
+ # @return [Hash] Compatibility analysis
33
+ def get_compatibility(request)
34
+ http.post(build_url('compatibility'), body: request)
35
+ end
36
+
37
+ protected
38
+
39
+ def api_prefix
40
+ '/api/v3/palmistry'
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_category'
4
+ require_relative '../validators/subject_validator'
5
+
6
+ module Astroapi
7
+ module Categories
8
+ # PDF generation category client
9
+ class Pdf < BaseCategory
10
+ # Generate natal report PDF
11
+ # @param request [Hash] Subject birth data
12
+ # @return [Hash] PDF generation result
13
+ def generate_natal_report(request)
14
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
15
+ http.post(build_url('natal-report'), body: request)
16
+ end
17
+
18
+ # Generate daily horoscope PDF
19
+ # @param request [Hash] Sign and date
20
+ # @return [Hash] PDF generation result
21
+ def generate_daily_horoscope(request)
22
+ http.post(build_url('horoscope', 'daily'), body: request)
23
+ end
24
+
25
+ # Generate weekly horoscope PDF
26
+ # @param request [Hash] Sign and date range
27
+ # @return [Hash] PDF generation result
28
+ def generate_weekly_horoscope(request)
29
+ http.post(build_url('horoscope', 'weekly'), body: request)
30
+ end
31
+
32
+ # Get daily horoscope data
33
+ # @param sign [String] Zodiac sign
34
+ # @param target_date [String] Target date
35
+ # @return [Hash] Horoscope data for PDF
36
+ def get_horoscope_data(sign, target_date)
37
+ http.get(build_url('horoscope', 'data', sign, target_date))
38
+ end
39
+
40
+ protected
41
+
42
+ def api_prefix
43
+ '/api/v3/pdf'
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_category'
4
+ require_relative '../validators/subject_validator'
5
+
6
+ module Astroapi
7
+ module Categories
8
+ # Chart rendering category client (PNG images)
9
+ class Render < BaseCategory
10
+ # Render natal chart
11
+ # @param request [Hash] Subject birth data and render options
12
+ # @return [Hash] Rendered chart image data
13
+ def render_natal(request)
14
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
15
+ http.post(build_url('natal'), body: request)
16
+ end
17
+
18
+ # Render synastry chart
19
+ # @param request [Hash] Two subjects' birth data and render options
20
+ # @return [Hash] Rendered synastry chart
21
+ def render_synastry(request)
22
+ http.post(build_url('synastry'), body: request)
23
+ end
24
+
25
+ # Render composite chart
26
+ # @param request [Hash] Two subjects' birth data and render options
27
+ # @return [Hash] Rendered composite chart
28
+ def render_composite(request)
29
+ http.post(build_url('composite'), body: request)
30
+ end
31
+
32
+ # Render transit chart
33
+ # @param request [Hash] Subject and transit data with render options
34
+ # @return [Hash] Rendered transit chart
35
+ def render_transit(request)
36
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
37
+ http.post(build_url('transit'), body: request)
38
+ end
39
+
40
+ protected
41
+
42
+ def api_prefix
43
+ '/api/v3/render'
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'base_category'
4
+ require_relative '../validators/subject_validator'
5
+
6
+ module Astroapi
7
+ module Categories
8
+ # SVG category client for SVG chart image generation
9
+ # Note: Returns SVG strings (text), not JSON
10
+ class Svg < BaseCategory
11
+ # Get natal chart SVG
12
+ # @param request [Hash] Subject birth data and options
13
+ # @return [String] SVG chart as text
14
+ def get_natal_chart_svg(request)
15
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
16
+ http.post(build_url('natal'), body: request)
17
+ end
18
+
19
+ # Get synastry chart SVG
20
+ # @param request [Hash] Two subjects' birth data and options
21
+ # @return [String] SVG chart as text
22
+ def get_synastry_chart_svg(request)
23
+ http.post(build_url('synastry'), body: request)
24
+ end
25
+
26
+ # Get composite chart SVG
27
+ # @param request [Hash] Two subjects' birth data and options
28
+ # @return [String] SVG chart as text
29
+ def get_composite_chart_svg(request)
30
+ http.post(build_url('composite'), body: request)
31
+ end
32
+
33
+ # Get transit chart SVG
34
+ # @param request [Hash] Subject, transit date and options
35
+ # @return [String] SVG chart as text
36
+ def get_transit_chart_svg(request)
37
+ Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
38
+ http.post(build_url('transit'), body: request)
39
+ end
40
+
41
+ protected
42
+
43
+ def api_prefix
44
+ '/api/v3/svg'
45
+ end
46
+ end
47
+ end
48
+ end