halo-api 0.2.0 → 0.2.1

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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/halo-api.gemspec +1 -0
  4. data/lib/halo-api.rb +12 -12
  5. data/lib/halo-api/api_response.rb +0 -1
  6. data/lib/halo-api/client.rb +3 -7
  7. data/lib/halo-api/{modules/metadata → clients}/halo5_metadata_client.rb +2 -2
  8. data/lib/halo-api/{modules/profile → clients}/halo5_profile_client.rb +2 -2
  9. data/lib/halo-api/{modules/stats → clients}/halo5_stats_client.rb +2 -2
  10. data/lib/halo-api/{modules/ugc → clients}/halo5_ugc_client.rb +2 -2
  11. data/lib/halo-api/{modules/metadata → clients}/halo_wars2_metadata_client.rb +2 -2
  12. data/lib/halo-api/{modules/stats → clients}/halo_wars2_stats_client.rb +1 -1
  13. data/lib/halo-api/modules/metadata/halo5/campaign_missions.rb +2 -2
  14. data/lib/halo-api/modules/metadata/halo5/commendations.rb +2 -2
  15. data/lib/halo-api/modules/metadata/halo5/csr_designations.rb +2 -2
  16. data/lib/halo-api/modules/metadata/halo5/enemies.rb +2 -2
  17. data/lib/halo-api/modules/metadata/halo5/flexible_stats.rb +2 -2
  18. data/lib/halo-api/modules/metadata/halo5/game_base_variants.rb +2 -2
  19. data/lib/halo-api/modules/metadata/halo5/game_variant.rb +2 -2
  20. data/lib/halo-api/modules/metadata/halo5/impulses.rb +2 -2
  21. data/lib/halo-api/modules/metadata/halo5/map_variant.rb +2 -2
  22. data/lib/halo-api/modules/metadata/halo5/maps.rb +2 -2
  23. data/lib/halo-api/modules/metadata/halo5/medals.rb +2 -2
  24. data/lib/halo-api/modules/metadata/halo5/playlist.rb +2 -2
  25. data/lib/halo-api/modules/metadata/halo5/requisition.rb +2 -2
  26. data/lib/halo-api/modules/metadata/halo5/requisition_pack.rb +2 -2
  27. data/lib/halo-api/modules/metadata/halo5/seasons.rb +2 -2
  28. data/lib/halo-api/modules/metadata/halo5/skulls.rb +2 -2
  29. data/lib/halo-api/modules/metadata/halo5/spartan_ranks.rb +2 -2
  30. data/lib/halo-api/modules/metadata/halo5/team_colors.rb +2 -2
  31. data/lib/halo-api/modules/metadata/halo5/vehicles.rb +2 -2
  32. data/lib/halo-api/modules/metadata/halo5/weapons.rb +2 -2
  33. data/lib/halo-api/modules/metadata/halo_wars2/campaign_levels.rb +2 -2
  34. data/lib/halo-api/modules/metadata/halo_wars2/campaign_logs.rb +2 -2
  35. data/lib/halo-api/modules/metadata/halo_wars2/card_keywords.rb +2 -2
  36. data/lib/halo-api/modules/metadata/halo_wars2/cards.rb +2 -2
  37. data/lib/halo-api/modules/metadata/halo_wars2/csr_designations.rb +2 -2
  38. data/lib/halo-api/modules/metadata/halo_wars2/difficulties.rb +2 -2
  39. data/lib/halo-api/modules/metadata/halo_wars2/game_object_categories.rb +2 -2
  40. data/lib/halo-api/modules/metadata/halo_wars2/game_objects.rb +2 -2
  41. data/lib/halo-api/modules/metadata/halo_wars2/leader_powers.rb +2 -2
  42. data/lib/halo-api/modules/metadata/halo_wars2/leaders.rb +2 -2
  43. data/lib/halo-api/modules/metadata/halo_wars2/maps.rb +2 -2
  44. data/lib/halo-api/modules/metadata/halo_wars2/packs.rb +2 -2
  45. data/lib/halo-api/modules/metadata/halo_wars2/playlists.rb +2 -2
  46. data/lib/halo-api/modules/metadata/halo_wars2/seasons.rb +2 -2
  47. data/lib/halo-api/modules/metadata/halo_wars2/spartan_ranks.rb +2 -2
  48. data/lib/halo-api/modules/metadata/halo_wars2/techs.rb +2 -2
  49. data/lib/halo-api/modules/profile/halo5/player_appearance.rb +2 -2
  50. data/lib/halo-api/modules/profile/halo5/player_emblem_image.rb +2 -2
  51. data/lib/halo-api/modules/profile/halo5/player_spartan_image.rb +2 -2
  52. data/lib/halo-api/modules/stats/halo5/company.rb +2 -2
  53. data/lib/halo-api/modules/stats/halo5/company_commendations.rb +2 -2
  54. data/lib/halo-api/modules/stats/halo5/leaderboard_player_csr.rb +2 -2
  55. data/lib/halo-api/modules/stats/halo5/match_events.rb +2 -2
  56. data/lib/halo-api/modules/stats/halo5/match_result_arena.rb +2 -2
  57. data/lib/halo-api/modules/stats/halo5/match_result_campaign.rb +2 -2
  58. data/lib/halo-api/modules/stats/halo5/match_result_custom.rb +2 -2
  59. data/lib/halo-api/modules/stats/halo5/match_result_warzone.rb +2 -2
  60. data/lib/halo-api/modules/stats/halo5/pc_match_result_custom.rb +2 -2
  61. data/lib/halo-api/modules/stats/halo5/pc_player_match_history.rb +2 -2
  62. data/lib/halo-api/modules/stats/halo5/pc_player_service_records_custom.rb +2 -2
  63. data/lib/halo-api/modules/stats/halo5/player_commendations.rb +2 -2
  64. data/lib/halo-api/modules/stats/halo5/player_match_history.rb +2 -2
  65. data/lib/halo-api/modules/stats/halo5/player_service_records_arena.rb +2 -2
  66. data/lib/halo-api/modules/stats/halo5/player_service_records_campaign.rb +2 -2
  67. data/lib/halo-api/modules/stats/halo5/player_service_records_custom.rb +2 -2
  68. data/lib/halo-api/modules/stats/halo5/player_service_records_warzone.rb +2 -2
  69. data/lib/halo-api/modules/stats/halo_wars2/leaderboard_player_csr.rb +2 -2
  70. data/lib/halo-api/modules/stats/halo_wars2/match_events.rb +2 -2
  71. data/lib/halo-api/modules/stats/halo_wars2/match_result.rb +2 -2
  72. data/lib/halo-api/modules/stats/halo_wars2/player_campaign_progress.rb +2 -2
  73. data/lib/halo-api/modules/stats/halo_wars2/player_match_history.rb +2 -2
  74. data/lib/halo-api/modules/stats/halo_wars2/player_playlist_ratings.rb +2 -2
  75. data/lib/halo-api/modules/stats/halo_wars2/player_season_stats_summary.rb +2 -2
  76. data/lib/halo-api/modules/stats/halo_wars2/player_stats_summary.rb +2 -2
  77. data/lib/halo-api/modules/stats/halo_wars2/player_xp.rb +2 -2
  78. data/lib/halo-api/modules/ugc/halo5/player_game_variant.rb +2 -2
  79. data/lib/halo-api/modules/ugc/halo5/player_game_variants.rb +2 -2
  80. data/lib/halo-api/modules/ugc/halo5/player_map_variant.rb +2 -2
  81. data/lib/halo-api/modules/ugc/halo5/player_map_variants.rb +2 -2
  82. data/lib/halo-api/version.rb +1 -1
  83. metadata +27 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2946f96489461ebd8f3f73857f74cff7fe0b04dd
4
- data.tar.gz: 2c09a344108386e70b3aced521c3e12cc70b73c8
3
+ metadata.gz: 160879805c22e91b7548e66fa7664c1967bfe792
4
+ data.tar.gz: 113d6084e6798d33bbac99bb238a4b18c9a38ca5
5
5
  SHA512:
6
- metadata.gz: a7f748a6b1f2903c919c86119e295dabb597959f63b1e4370ac7ca8fbdb111f33ff14c7bf272ea8a74da0e2beae9ecaecd99c55f4c3febe3579de616f35d3ac1
7
- data.tar.gz: 9d3770d344cfa344489f0f38738ba42a71849675fe69e4805caca6257f7edd956d2b97610b9eef4b4542caa0e7d4a34851f0f002f0ee667c5c695e046063d64a
6
+ metadata.gz: fcf6ec4ae19b77839ff132ffe57ace8d26ab4b534615b501a6da151965db9aad5ddfa0e6b63a14a892d8a77a4f7ea4fb8d2c965b2e1edc2b0b723c57a9d9963f
7
+ data.tar.gz: cea7f4dff7ece594b1616c0d23ecc9c6b900a5250ea79318913e9f4f2cd2f473031bc8a20cfb6c35cef9b92a0dc1f60ea8e9a00925153d92dcbae9f479f37a8f
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --format documentation
2
2
  --color
3
+ --require spec_helper
data/halo-api.gemspec CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.required_ruby_version = '>= 2.0.0'
27
27
 
28
28
  spec.add_runtime_dependency 'httparty', '~> 0.15.6'
29
+ spec.add_runtime_dependency 'addressable', '~> 2.5', '>= 2.5.2'
29
30
 
30
31
  spec.add_development_dependency 'bundler', '~> 1.15'
31
32
  spec.add_development_dependency 'rake', '~> 12.0'
data/lib/halo-api.rb CHANGED
@@ -3,12 +3,12 @@ require 'halo-api/configuration'
3
3
  require 'halo-api/client'
4
4
  require 'halo-api/api_response'
5
5
 
6
- require 'halo-api/modules/metadata/halo5_metadata_client'
7
- require 'halo-api/modules/metadata/halo_wars2_metadata_client'
8
- require 'halo-api/modules/profile/halo5_profile_client'
9
- require 'halo-api/modules/stats/halo5_stats_client'
10
- require 'halo-api/modules/stats/halo_wars2_stats_client'
11
- require 'halo-api/modules/ugc/halo5_ugc_client'
6
+ require 'halo-api/clients/halo5_metadata_client'
7
+ require 'halo-api/clients/halo_wars2_metadata_client'
8
+ require 'halo-api/clients/halo5_profile_client'
9
+ require 'halo-api/clients/halo5_stats_client'
10
+ require 'halo-api/clients/halo_wars2_stats_client'
11
+ require 'halo-api/clients/halo5_ugc_client'
12
12
 
13
13
 
14
14
  module Halo
@@ -17,32 +17,32 @@ module Halo
17
17
  class << self
18
18
  # Halo 5 Metadata Client
19
19
  def h5_metadata(options = {})
20
- Halo::Metadata::Halo5MetadataClient.new(options)
20
+ Halo::Clients::Halo5MetadataClient.new(options)
21
21
  end
22
22
 
23
23
  # Halo Wars 2 Metadata Client
24
24
  def hw2_metadata(options = {})
25
- Halo::Metadata::HaloWars2MetadataClient.new(options)
25
+ Halo::Clients::HaloWars2MetadataClient.new(options)
26
26
  end
27
27
 
28
28
  # Halo 5 Profile Client
29
29
  def h5_profile(options = {})
30
- Halo::Profile::Halo5ProfileClient.new(options)
30
+ Halo::Clients::Halo5ProfileClient.new(options)
31
31
  end
32
32
 
33
33
  # Halo 5 Stats Client
34
34
  def h5_stats(options = {})
35
- Halo::Stats::Halo5StatsClient.new(options)
35
+ Halo::Clients::Halo5StatsClient.new(options)
36
36
  end
37
37
 
38
38
  # Halo Wars 2 Stats Client
39
39
  def hw2_stats(options = {})
40
- Halo::Stats::HaloWars2StatsClient.new(options)
40
+ Halo::Clients::HaloWars2StatsClient.new(options)
41
41
  end
42
42
 
43
43
  # Halo 5 UGC Client
44
44
  def h5_ugc(options = {})
45
- Halo::Ugc::Halo5UgcClient.new(options)
45
+ Halo::Clients::Halo5UgcClient.new(options)
46
46
  end
47
47
  end
48
48
 
@@ -6,7 +6,6 @@ module Halo
6
6
  def initialize(options = {})
7
7
  @data = []
8
8
  @client = options[:client]
9
- @endpoint = options[:client].endpoint
10
9
  end
11
10
 
12
11
  def get_data(path, options)
@@ -1,6 +1,7 @@
1
1
  require 'halo-api/version'
2
2
  require 'halo-api/api_response'
3
3
  require 'httparty'
4
+ require 'addressable/uri'
4
5
 
5
6
 
6
7
  module Halo
@@ -19,11 +20,8 @@ module Halo
19
20
  Halo::Configuration::OPTIONS.each do |key|
20
21
  send("#{key}=", options[key])
21
22
  end
22
- end
23
23
 
24
- def endpoint
25
- raise 'Invalid API Endpoint' if @endpoint.nil?
26
- @endpoint
24
+ self.class.base_uri "https://www.haloapi.com#{@endpoint}"
27
25
  end
28
26
 
29
27
  def get(path, params = {})
@@ -37,12 +35,10 @@ module Halo
37
35
  'Accept-Language' => @region
38
36
  }
39
37
 
40
- url = "https://www.haloapi.com#{path}"
41
-
42
38
  options[:headers] = headers unless headers.empty?
43
39
  options[:query] = params unless params.empty?
44
40
 
45
- self.class.send(verb, url, options)
41
+ self.class.send(verb, Addressable::URI.encode(path), options)
46
42
  end
47
43
 
48
44
 
@@ -23,9 +23,9 @@ require 'halo-api/modules/metadata/halo5/weapons'
23
23
 
24
24
 
25
25
  module Halo
26
- module Metadata
26
+ module Clients
27
27
 
28
- # Halo 5 Metadata endpoints
28
+ # Halo 5 Metadata Client
29
29
  class Halo5MetadataClient < Client
30
30
 
31
31
  def initialize(options = {})
@@ -6,9 +6,9 @@ require 'halo-api/modules/profile/halo5/player_spartan_image'
6
6
 
7
7
 
8
8
  module Halo
9
- module Profile
9
+ module Clients
10
10
 
11
- # Halo 5 Profile endpoints
11
+ # Halo 5 Profile Client
12
12
  class Halo5ProfileClient < Client
13
13
 
14
14
  def initialize(options = {})
@@ -20,9 +20,9 @@ require 'halo-api/modules/stats/halo5/pc_player_service_records_custom'
20
20
 
21
21
 
22
22
  module Halo
23
- module Stats
23
+ module Clients
24
24
 
25
- # Halo 5 Stats endpoints
25
+ # Halo 5 Stats Client
26
26
  class Halo5StatsClient < Client
27
27
 
28
28
  def initialize(options = {})
@@ -7,9 +7,9 @@ require 'halo-api/modules/ugc/halo5/player_map_variants'
7
7
 
8
8
 
9
9
  module Halo
10
- module Ugc
10
+ module Clients
11
11
 
12
- # Halo 5 Ugc endpoints
12
+ # Halo 5 Ugc Client
13
13
  class Halo5UgcClient < Client
14
14
 
15
15
  def initialize(options = {})
@@ -19,13 +19,13 @@ require 'halo-api/modules/metadata/halo_wars2/techs'
19
19
 
20
20
 
21
21
  module Halo
22
- module Metadata
22
+ module Clients
23
23
 
24
24
  # Halo Wars 2 Metadata Client
25
25
  class HaloWars2MetadataClient < Client
26
26
 
27
27
  def initialize(options = {})
28
- client_settings = {endpoint: '/metadata/hw2'}
28
+ client_settings = { endpoint: '/metadata/hw2' }
29
29
  client_settings = client_settings.merge(options)
30
30
 
31
31
  super(client_settings)
@@ -12,7 +12,7 @@ require 'halo-api/modules/stats/halo_wars2/player_xp'
12
12
 
13
13
 
14
14
  module Halo
15
- module Stats
15
+ module Clients
16
16
 
17
17
  # Halo Wars 2 Stats Client
18
18
  class HaloWars2StatsClient < Client
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class CampaignMissions < Halo::APIResponse
4
+ class CampaignMissions < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/campaign-missions", options)
11
+ get_data('/campaign-missions', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class Commendations < Halo::APIResponse
4
+ class Commendations < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/commendations", options)
11
+ get_data('/commendations', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class CsrDesignations < Halo::APIResponse
4
+ class CsrDesignations < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/csr-designations", options)
11
+ get_data('/csr-designations', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class Enemies < Halo::APIResponse
4
+ class Enemies < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/enemies", options)
11
+ get_data('/enemies', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class FlexibleStats < Halo::APIResponse
4
+ class FlexibleStats < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/flexible-stats", options)
11
+ get_data('/flexible-stats', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class GameBaseVariants < Halo::APIResponse
4
+ class GameBaseVariants < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/game-base-variants", options)
11
+ get_data('/game-base-variants', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class GameVariant < Halo::APIResponse
4
+ class GameVariant < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def find(id, options = {})
11
- get_data("#{@endpoint}/game-variants/#{id}", options)
11
+ get_data("/game-variants/#{id}", options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class Impulses < Halo::APIResponse
4
+ class Impulses < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/impulses", options)
11
+ get_data('/impulses', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class MapVariant < Halo::APIResponse
4
+ class MapVariant < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def find(id, options = {})
11
- get_data("#{@endpoint}/map-variants/#{id}", options)
11
+ get_data("/map-variants/#{id}", options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class Maps < Halo::APIResponse
4
+ class Maps < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/maps", options)
11
+ get_data('/maps', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class Medals < Halo::APIResponse
4
+ class Medals < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/medals", options)
11
+ get_data('/medals', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class Playlist < Halo::APIResponse
4
+ class Playlist < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def all(options = {})
11
- get_data("#{@endpoint}/playlist", options)
11
+ get_data('/playlist', options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class Requisition < Halo::APIResponse
4
+ class Requisition < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def find(id, options = {})
11
- get_data("#{@endpoint}/requisitions/#{id}", options)
11
+ get_data("/requisitions/#{id}", options)
12
12
  end
13
13
 
14
14
  end
@@ -1,14 +1,14 @@
1
1
  module Halo
2
2
  module Metadata
3
3
  module Halo5
4
- class RequisitionPack < Halo::APIResponse
4
+ class RequisitionPack < APIResponse
5
5
 
6
6
  def initialize(options = {})
7
7
  super(options)
8
8
  end
9
9
 
10
10
  def find(id, options = {})
11
- get_data("#{@endpoint}/requisitions/#{id}", options)
11
+ get_data("/requisition-packs/#{id}", options)
12
12
  end
13
13
 
14
14
  end