blizzard_api 0.2.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.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.gitlab-ci.yml +28 -0
- data/.rubocop.yml +13 -0
- data/.rubocop_todo.yml +7 -0
- data/.travis.yml +7 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +44 -0
- data/LICENSE.txt +21 -0
- data/README.md +208 -0
- data/Rakefile +12 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/blizzard_api.gemspec +42 -0
- data/lib/blizzard_api.rb +14 -0
- data/lib/blizzard_api/configuration.rb +82 -0
- data/lib/blizzard_api/diablo.rb +76 -0
- data/lib/blizzard_api/diablo/community/act.rb +35 -0
- data/lib/blizzard_api/diablo/community/artisan.rb +38 -0
- data/lib/blizzard_api/diablo/community/character.rb +38 -0
- data/lib/blizzard_api/diablo/community/follower.rb +25 -0
- data/lib/blizzard_api/diablo/community/item.rb +26 -0
- data/lib/blizzard_api/diablo/community/item_type.rb +35 -0
- data/lib/blizzard_api/diablo/community/profile.rb +77 -0
- data/lib/blizzard_api/diablo/game_data/era.rb +21 -0
- data/lib/blizzard_api/diablo/game_data/generic_data_endpoint.rb +58 -0
- data/lib/blizzard_api/diablo/game_data/season.rb +21 -0
- data/lib/blizzard_api/diablo/request.rb +15 -0
- data/lib/blizzard_api/exception.rb +12 -0
- data/lib/blizzard_api/request.rb +182 -0
- data/lib/blizzard_api/starcraft.rb +40 -0
- data/lib/blizzard_api/starcraft/community/account.rb +23 -0
- data/lib/blizzard_api/starcraft/community/ladder.rb +34 -0
- data/lib/blizzard_api/starcraft/community/profile.rb +76 -0
- data/lib/blizzard_api/starcraft/game_data/league.rb +27 -0
- data/lib/blizzard_api/starcraft/request.rb +36 -0
- data/lib/blizzard_api/version.rb +6 -0
- data/lib/blizzard_api/wow.rb +167 -0
- data/lib/blizzard_api/wow/community/achievements.rb +45 -0
- data/lib/blizzard_api/wow/community/auction.rb +25 -0
- data/lib/blizzard_api/wow/community/boss.rb +35 -0
- data/lib/blizzard_api/wow/community/challenge.rb +35 -0
- data/lib/blizzard_api/wow/community/character.rb +103 -0
- data/lib/blizzard_api/wow/community/guild.rb +67 -0
- data/lib/blizzard_api/wow/community/item.rb +46 -0
- data/lib/blizzard_api/wow/community/mount.rb +24 -0
- data/lib/blizzard_api/wow/community/pets.rb +85 -0
- data/lib/blizzard_api/wow/community/pvp.rb +34 -0
- data/lib/blizzard_api/wow/community/quest.rb +25 -0
- data/lib/blizzard_api/wow/community/recipe.rb +25 -0
- data/lib/blizzard_api/wow/community/spell.rb +25 -0
- data/lib/blizzard_api/wow/community/zone.rb +35 -0
- data/lib/blizzard_api/wow/game_data/connected_realm.rb +37 -0
- data/lib/blizzard_api/wow/game_data/generic_data_endpoint.rb +58 -0
- data/lib/blizzard_api/wow/game_data/mythic_keystone_affix.rb +23 -0
- data/lib/blizzard_api/wow/game_data/playable_class.rb +62 -0
- data/lib/blizzard_api/wow/game_data/playable_specialization.rb +70 -0
- data/lib/blizzard_api/wow/game_data/power_type.rb +23 -0
- data/lib/blizzard_api/wow/game_data/race.rb +51 -0
- data/lib/blizzard_api/wow/game_data/realm.rb +48 -0
- data/lib/blizzard_api/wow/game_data/region.rb +49 -0
- data/lib/blizzard_api/wow/request.rb +16 -0
- metadata +198 -0
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft guild data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.guild
|
12
|
+
class Guild < Wow::Request
|
13
|
+
# Valid fields for guild profile request
|
14
|
+
VALID_FIELDS = %w[achievements challenge members news].freeze
|
15
|
+
|
16
|
+
##
|
17
|
+
# Helper method for checking valid fields. Use this to validate an array of fields if you are not sure about their
|
18
|
+
# names.
|
19
|
+
#
|
20
|
+
# @param fields [Array<String>] Array containing desired fields to include
|
21
|
+
#
|
22
|
+
# @raise ArgumentError
|
23
|
+
def validate_fields(fields)
|
24
|
+
fields.each do |field|
|
25
|
+
raise ArgumentError, "Unrecognized field #{field}" unless VALID_FIELDS.include? field
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
##
|
30
|
+
# Return a list with all possible rewards.
|
31
|
+
#
|
32
|
+
# @!macro request_options
|
33
|
+
#
|
34
|
+
# @!macro response
|
35
|
+
def rewards(options = {})
|
36
|
+
api_request "#{base_url(:community)}/data/guild/rewards", { ttl: CACHE_TRIMESTER }.merge(options)
|
37
|
+
end
|
38
|
+
|
39
|
+
##
|
40
|
+
# Return a list with all possible perks
|
41
|
+
#
|
42
|
+
# @!macro request_options
|
43
|
+
#
|
44
|
+
# @!macro response
|
45
|
+
def perks(options = {})
|
46
|
+
api_request "#{base_url(:community)}/data/guild/perks", { ttl: CACHE_TRIMESTER }.merge(options)
|
47
|
+
end
|
48
|
+
|
49
|
+
##
|
50
|
+
# Return data about the specified guild
|
51
|
+
#
|
52
|
+
# @param realm [String] The guild realm's slug
|
53
|
+
# @param guild [String] The guild's name
|
54
|
+
# @param fields [Array<String>] An array containing all the fields you want to be included in the response.
|
55
|
+
# @!macro request_options
|
56
|
+
#
|
57
|
+
# @!macro response
|
58
|
+
def get(realm, guild, fields = [], options = {})
|
59
|
+
validate_fields fields if options.include? :validate_fields
|
60
|
+
|
61
|
+
opts = { ttl: CACHE_DAY, fields: fields.join(',') }.merge(options)
|
62
|
+
|
63
|
+
api_request "#{base_url(:community)}/guild/#{realm}/#{guild}", opts
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft item data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.item
|
12
|
+
class Item < Wow::Request
|
13
|
+
##
|
14
|
+
# Return complete data of an item by id
|
15
|
+
#
|
16
|
+
# @param id [Integer] Item id
|
17
|
+
# @!macro request_options
|
18
|
+
#
|
19
|
+
# @!macro response
|
20
|
+
def get(id, options = {})
|
21
|
+
api_request "#{base_url(:community)}/item/#{id}", { ttl: CACHE_TRIMESTER }.merge(options)
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# Return complete data of an item set by id
|
26
|
+
#
|
27
|
+
# @param set_id [Integer] Item set id
|
28
|
+
# @!macro request_options
|
29
|
+
#
|
30
|
+
# @!macro response
|
31
|
+
def item_set(set_id, options = {})
|
32
|
+
api_request "#{base_url(:community)}/item/set/#{set_id}", { ttl: CACHE_TRIMESTER }.merge(options)
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Return a list of item classes
|
37
|
+
#
|
38
|
+
# @!macro request_options
|
39
|
+
#
|
40
|
+
# @!macro response
|
41
|
+
def classes(options = {})
|
42
|
+
api_request "#{base_url(:community)}/data/item/classes", { ttl: CACHE_TRIMESTER }.merge(options)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft mount data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.mount
|
12
|
+
class Mount < Wow::Request
|
13
|
+
##
|
14
|
+
# Return a list with all available mounts
|
15
|
+
#
|
16
|
+
# @!macro request_options
|
17
|
+
#
|
18
|
+
# @!macro response
|
19
|
+
def index(options = {})
|
20
|
+
api_request "#{base_url(:community)}/mount/", { ttl: CACHE_TRIMESTER }.merge(options)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft pet data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.pet
|
12
|
+
class Pet < Wow::Request
|
13
|
+
# Poor (gray) quality pet
|
14
|
+
PET_QUALITY_POOR = 0
|
15
|
+
# Common (white) quality pet
|
16
|
+
PET_QUALITY_COMMON = 1
|
17
|
+
# Uncommon (green) quality pet
|
18
|
+
PET_QUALITY_UNCOMMON = 2
|
19
|
+
# Rare (blue) quality pet
|
20
|
+
PET_QUALITY_RARE = 3
|
21
|
+
# Epic (purple) quality pet
|
22
|
+
PET_QUALITY_EPIC = 4
|
23
|
+
# Legendary (orange) quality pet
|
24
|
+
PET_QUALITY_LEGENDARY = 5
|
25
|
+
|
26
|
+
##
|
27
|
+
# Return a list of all available pets
|
28
|
+
#
|
29
|
+
# @!macro request_options
|
30
|
+
#
|
31
|
+
# @!macro response
|
32
|
+
def index(options = {})
|
33
|
+
api_request "#{base_url(:community)}/pet/", { ttl: CACHE_TRIMESTER }.merge(options)
|
34
|
+
end
|
35
|
+
|
36
|
+
##
|
37
|
+
# Return complete data about a pet ability by its id
|
38
|
+
#
|
39
|
+
# @param id [Integer] Pet ability id
|
40
|
+
# @!macro request_options
|
41
|
+
#
|
42
|
+
# @!macro response
|
43
|
+
def ability(id, options = {})
|
44
|
+
api_request "#{base_url(:community)}/pet/ability/#{id}", { ttl: CACHE_TRIMESTER }.merge(options)
|
45
|
+
end
|
46
|
+
|
47
|
+
##
|
48
|
+
# Return complete data about a pet species by its id
|
49
|
+
#
|
50
|
+
# @param id [Integer] Pet species id
|
51
|
+
# @!macro request_options
|
52
|
+
#
|
53
|
+
# @!macro response
|
54
|
+
def species(id, options = {})
|
55
|
+
api_request "#{base_url(:community)}/pet/species/#{id}", { ttl: CACHE_TRIMESTER }.merge(options)
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# Return complete data about a pet stats based on its attributes
|
60
|
+
#
|
61
|
+
# @param id [Integer] Pet id (Obtained by the {#index} or {Character#get} with the fields *pets* or *petSlots*)
|
62
|
+
# @param level [Integer] Pet's level (1 - 25)
|
63
|
+
# @param breed_id [Integer]
|
64
|
+
# @param quality_id [Integer] Pets quality ID where 0 = Poor and 5 = legendary. You can use the
|
65
|
+
# constants PET_QUALITY_*
|
66
|
+
# @!macro request_options
|
67
|
+
#
|
68
|
+
# @!macro response
|
69
|
+
def stats(id, level = 25, breed_id = 3, quality_id = 1, options = {})
|
70
|
+
opts = { level: level, breedId: breed_id, qualityId: quality_id, ttl: CACHE_TRIMESTER }.merge(options)
|
71
|
+
api_request "#{base_url(:community)}/pet/stats/#{id}", opts
|
72
|
+
end
|
73
|
+
|
74
|
+
##
|
75
|
+
# Return a complete list of pet types
|
76
|
+
#
|
77
|
+
# @!macro request_options
|
78
|
+
#
|
79
|
+
# @!macro response
|
80
|
+
def types(options = {})
|
81
|
+
api_request "#{base_url(:community)}/data/pet/types", { ttl: CACHE_TRIMESTER }.merge(options)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft PvP data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.pvp
|
12
|
+
class PvP < Wow::Request
|
13
|
+
# Arena 2v2
|
14
|
+
BRACKET_2V2 = '2v2'
|
15
|
+
# Arena 3x3
|
16
|
+
BRACKET_3V3 = '3v3'
|
17
|
+
# Arena 5x5
|
18
|
+
BRACKET_5V5 = '5v5'
|
19
|
+
# Rated battlegrounds
|
20
|
+
BRACKET_RBG = 'rbg'
|
21
|
+
|
22
|
+
##
|
23
|
+
# Returns the current pvp leaderboard for the current region
|
24
|
+
#
|
25
|
+
# @param bracket [String] PvP leaderboard category. You can use the constants BRACKET_*
|
26
|
+
# @!macro request_options
|
27
|
+
#
|
28
|
+
# @!macro response
|
29
|
+
def get(bracket, options = {})
|
30
|
+
api_request "#{base_url(:community)}/leaderboard/#{bracket}", { ttl: CACHE_DAY }.merge(options)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft quest data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.quest
|
12
|
+
class Quest < Wow::Request
|
13
|
+
##
|
14
|
+
# Return information about a quest by its id
|
15
|
+
#
|
16
|
+
# @param id [Integer] Quest id
|
17
|
+
# @!macro request_options
|
18
|
+
#
|
19
|
+
# @!macro response
|
20
|
+
def get(id, options = {})
|
21
|
+
api_request "#{base_url(:community)}/quest/#{id}", { ttl: CACHE_TRIMESTER }.merge(options)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft recipe data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.recipe
|
12
|
+
class Recipe < Wow::Request
|
13
|
+
##
|
14
|
+
# Return information about a recipe by its id
|
15
|
+
#
|
16
|
+
# @param id [Integer] Recipe id
|
17
|
+
# @!macro request_options
|
18
|
+
#
|
19
|
+
# @!macro response
|
20
|
+
def get(id, options = {})
|
21
|
+
api_request "#{base_url(:community)}/recipe/#{id}", { ttl: CACHE_TRIMESTER }.merge(options)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft spell data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.spell
|
12
|
+
class Spell < Wow::Request
|
13
|
+
##
|
14
|
+
# Return information about a spell by its id
|
15
|
+
#
|
16
|
+
# @param id [Integer] Spell id
|
17
|
+
# @!macro request_options
|
18
|
+
#
|
19
|
+
# @!macro response
|
20
|
+
def get(id, options = {})
|
21
|
+
api_request "#{base_url(:community)}/spell/#{id}", { ttl: CACHE_TRIMESTER }.merge(options)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft zone data
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-community-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.zone
|
12
|
+
class Zone < Wow::Request
|
13
|
+
##
|
14
|
+
# Return a list of all zones
|
15
|
+
#
|
16
|
+
# @!macro request_options
|
17
|
+
#
|
18
|
+
# @!macro response
|
19
|
+
def index(options = {})
|
20
|
+
api_request "#{base_url(:community)}/zone/", { ttl: CACHE_TRIMESTER }.merge(options)
|
21
|
+
end
|
22
|
+
|
23
|
+
##
|
24
|
+
# Return complete information about a zone by its id
|
25
|
+
#
|
26
|
+
# @param id [Integer] Zone id
|
27
|
+
# @!macro request_options
|
28
|
+
#
|
29
|
+
# @!macro response
|
30
|
+
def get(id, options = {})
|
31
|
+
api_request "#{base_url(:community)}/zone/#{id}", { ttl: CACHE_TRIMESTER }.merge(options)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# This class allows access to World of Warcraft connected realms
|
7
|
+
#
|
8
|
+
# @see https://develop.battle.net/documentation/api-reference/world-of-warcraft-game-data-api
|
9
|
+
#
|
10
|
+
# You can get an instance of this class using the default region as follows:
|
11
|
+
# api_instance = BlizzardApi::Wow.connected_realms
|
12
|
+
class ConnectedRealm < Wow::GenericDataEndpoint
|
13
|
+
##
|
14
|
+
# @!macro complete
|
15
|
+
def complete(options = {})
|
16
|
+
[].tap do |data|
|
17
|
+
index_data = index options
|
18
|
+
index_data[:connected_realms].each do |realm|
|
19
|
+
realm_id = %r{connected-realm/([0-9]+)}.match(realm[:href])[1]
|
20
|
+
realm_data = get realm_id, options
|
21
|
+
realm_data.delete :_links
|
22
|
+
data.push realm_data
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
|
29
|
+
def endpoint_setup
|
30
|
+
@endpoint = 'connected-realm'
|
31
|
+
@namespace = endpoint_namespace :dynamic
|
32
|
+
@collection = 'connected_realms'
|
33
|
+
@ttl = CACHE_TRIMESTER
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BlizzardApi
|
4
|
+
module Wow
|
5
|
+
##
|
6
|
+
# Generic endpoint to support most data requests with minor configurations
|
7
|
+
class GenericDataEndpoint < Wow::Request
|
8
|
+
##
|
9
|
+
# @!macro regions
|
10
|
+
def initialize(region = nil)
|
11
|
+
super region
|
12
|
+
endpoint_setup
|
13
|
+
@ttl ||= CACHE_DAY
|
14
|
+
end
|
15
|
+
|
16
|
+
##
|
17
|
+
# Fetch a list of all resources available for this endpoint
|
18
|
+
#
|
19
|
+
# @!macro request_options
|
20
|
+
# @!macro response
|
21
|
+
def index(options = {})
|
22
|
+
api_request "#{base_url(:game_data)}/#{@endpoint}/index", default_options.merge(options)
|
23
|
+
end
|
24
|
+
|
25
|
+
##
|
26
|
+
# Fetch all possible data for one of items listed by the {#index} using its *id*
|
27
|
+
#
|
28
|
+
# @param id [Integer] One of the IDs returned by the {#index}
|
29
|
+
# @!macro request_options
|
30
|
+
#
|
31
|
+
# @!macro response
|
32
|
+
def get(id, options = {})
|
33
|
+
api_request "#{base_url(:game_data)}/#{@endpoint}/#{id}", default_options.merge(options)
|
34
|
+
end
|
35
|
+
|
36
|
+
##
|
37
|
+
# @!macro complete
|
38
|
+
def complete(options = {})
|
39
|
+
index_data = index options
|
40
|
+
index_data[@collection.to_sym].tap do |collection|
|
41
|
+
collection.each do |item|
|
42
|
+
item.delete 'key'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
protected
|
48
|
+
|
49
|
+
def endpoint_setup
|
50
|
+
raise NotImplementedError, 'You must override this method to properly set up the endpoint'
|
51
|
+
end
|
52
|
+
|
53
|
+
def default_options
|
54
|
+
{ namespace: @namespace, ttl: @ttl }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|