halo-api 0.2.1 → 0.3.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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -3
  3. data/lib/halo-api.rb +6 -31
  4. data/lib/halo-api/clients/halo5_client.rb +37 -0
  5. data/lib/halo-api/clients/halo_wars2_client.rb +27 -0
  6. data/lib/halo-api/modules/halo5/metadata.rb +93 -0
  7. data/lib/halo-api/modules/halo5/profile.rb +25 -0
  8. data/lib/halo-api/modules/halo5/stats.rb +80 -0
  9. data/lib/halo-api/modules/halo5/ugc.rb +30 -0
  10. data/lib/halo-api/modules/halo_wars2/metadata.rb +77 -0
  11. data/lib/halo-api/modules/halo_wars2/stats.rb +49 -0
  12. data/lib/halo-api/version.rb +1 -1
  13. metadata +10 -77
  14. data/lib/halo-api/clients/halo5_metadata_client.rb +0 -120
  15. data/lib/halo-api/clients/halo5_profile_client.rb +0 -36
  16. data/lib/halo-api/clients/halo5_stats_client.rb +0 -105
  17. data/lib/halo-api/clients/halo5_ugc_client.rb +0 -40
  18. data/lib/halo-api/clients/halo_wars2_metadata_client.rb +0 -100
  19. data/lib/halo-api/clients/halo_wars2_stats_client.rb +0 -65
  20. data/lib/halo-api/modules/metadata/halo5/campaign_missions.rb +0 -17
  21. data/lib/halo-api/modules/metadata/halo5/commendations.rb +0 -17
  22. data/lib/halo-api/modules/metadata/halo5/csr_designations.rb +0 -17
  23. data/lib/halo-api/modules/metadata/halo5/enemies.rb +0 -17
  24. data/lib/halo-api/modules/metadata/halo5/flexible_stats.rb +0 -17
  25. data/lib/halo-api/modules/metadata/halo5/game_base_variants.rb +0 -17
  26. data/lib/halo-api/modules/metadata/halo5/game_variant.rb +0 -17
  27. data/lib/halo-api/modules/metadata/halo5/impulses.rb +0 -17
  28. data/lib/halo-api/modules/metadata/halo5/map_variant.rb +0 -17
  29. data/lib/halo-api/modules/metadata/halo5/maps.rb +0 -17
  30. data/lib/halo-api/modules/metadata/halo5/medals.rb +0 -17
  31. data/lib/halo-api/modules/metadata/halo5/playlist.rb +0 -17
  32. data/lib/halo-api/modules/metadata/halo5/requisition.rb +0 -17
  33. data/lib/halo-api/modules/metadata/halo5/requisition_pack.rb +0 -17
  34. data/lib/halo-api/modules/metadata/halo5/seasons.rb +0 -17
  35. data/lib/halo-api/modules/metadata/halo5/skulls.rb +0 -17
  36. data/lib/halo-api/modules/metadata/halo5/spartan_ranks.rb +0 -17
  37. data/lib/halo-api/modules/metadata/halo5/team_colors.rb +0 -17
  38. data/lib/halo-api/modules/metadata/halo5/vehicles.rb +0 -17
  39. data/lib/halo-api/modules/metadata/halo5/weapons.rb +0 -17
  40. data/lib/halo-api/modules/metadata/halo_wars2/campaign_levels.rb +0 -17
  41. data/lib/halo-api/modules/metadata/halo_wars2/campaign_logs.rb +0 -17
  42. data/lib/halo-api/modules/metadata/halo_wars2/card_keywords.rb +0 -17
  43. data/lib/halo-api/modules/metadata/halo_wars2/cards.rb +0 -17
  44. data/lib/halo-api/modules/metadata/halo_wars2/csr_designations.rb +0 -17
  45. data/lib/halo-api/modules/metadata/halo_wars2/difficulties.rb +0 -17
  46. data/lib/halo-api/modules/metadata/halo_wars2/game_object_categories.rb +0 -17
  47. data/lib/halo-api/modules/metadata/halo_wars2/game_objects.rb +0 -17
  48. data/lib/halo-api/modules/metadata/halo_wars2/leader_powers.rb +0 -17
  49. data/lib/halo-api/modules/metadata/halo_wars2/leaders.rb +0 -17
  50. data/lib/halo-api/modules/metadata/halo_wars2/maps.rb +0 -17
  51. data/lib/halo-api/modules/metadata/halo_wars2/packs.rb +0 -17
  52. data/lib/halo-api/modules/metadata/halo_wars2/playlists.rb +0 -17
  53. data/lib/halo-api/modules/metadata/halo_wars2/seasons.rb +0 -17
  54. data/lib/halo-api/modules/metadata/halo_wars2/spartan_ranks.rb +0 -17
  55. data/lib/halo-api/modules/metadata/halo_wars2/techs.rb +0 -17
  56. data/lib/halo-api/modules/profile/halo5/player_appearance.rb +0 -17
  57. data/lib/halo-api/modules/profile/halo5/player_emblem_image.rb +0 -17
  58. data/lib/halo-api/modules/profile/halo5/player_spartan_image.rb +0 -17
  59. data/lib/halo-api/modules/stats/halo5/company.rb +0 -17
  60. data/lib/halo-api/modules/stats/halo5/company_commendations.rb +0 -17
  61. data/lib/halo-api/modules/stats/halo5/leaderboard_player_csr.rb +0 -17
  62. data/lib/halo-api/modules/stats/halo5/match_events.rb +0 -17
  63. data/lib/halo-api/modules/stats/halo5/match_result_arena.rb +0 -17
  64. data/lib/halo-api/modules/stats/halo5/match_result_campaign.rb +0 -17
  65. data/lib/halo-api/modules/stats/halo5/match_result_custom.rb +0 -17
  66. data/lib/halo-api/modules/stats/halo5/match_result_warzone.rb +0 -17
  67. data/lib/halo-api/modules/stats/halo5/pc_match_result_custom.rb +0 -17
  68. data/lib/halo-api/modules/stats/halo5/pc_player_match_history.rb +0 -17
  69. data/lib/halo-api/modules/stats/halo5/pc_player_service_records_custom.rb +0 -17
  70. data/lib/halo-api/modules/stats/halo5/player_commendations.rb +0 -17
  71. data/lib/halo-api/modules/stats/halo5/player_match_history.rb +0 -17
  72. data/lib/halo-api/modules/stats/halo5/player_service_records_arena.rb +0 -17
  73. data/lib/halo-api/modules/stats/halo5/player_service_records_campaign.rb +0 -17
  74. data/lib/halo-api/modules/stats/halo5/player_service_records_custom.rb +0 -17
  75. data/lib/halo-api/modules/stats/halo5/player_service_records_warzone.rb +0 -17
  76. data/lib/halo-api/modules/stats/halo_wars2/leaderboard_player_csr.rb +0 -17
  77. data/lib/halo-api/modules/stats/halo_wars2/match_events.rb +0 -17
  78. data/lib/halo-api/modules/stats/halo_wars2/match_result.rb +0 -17
  79. data/lib/halo-api/modules/stats/halo_wars2/player_campaign_progress.rb +0 -17
  80. data/lib/halo-api/modules/stats/halo_wars2/player_match_history.rb +0 -17
  81. data/lib/halo-api/modules/stats/halo_wars2/player_playlist_ratings.rb +0 -17
  82. data/lib/halo-api/modules/stats/halo_wars2/player_season_stats_summary.rb +0 -17
  83. data/lib/halo-api/modules/stats/halo_wars2/player_stats_summary.rb +0 -17
  84. data/lib/halo-api/modules/stats/halo_wars2/player_xp.rb +0 -17
  85. data/lib/halo-api/modules/ugc/halo5/player_game_variant.rb +0 -17
  86. data/lib/halo-api/modules/ugc/halo5/player_game_variants.rb +0 -17
  87. data/lib/halo-api/modules/ugc/halo5/player_map_variant.rb +0 -17
  88. data/lib/halo-api/modules/ugc/halo5/player_map_variants.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 160879805c22e91b7548e66fa7664c1967bfe792
4
- data.tar.gz: 113d6084e6798d33bbac99bb238a4b18c9a38ca5
3
+ metadata.gz: c1ce1d46c92a1d8fc7cb8efcee4f2f4a71733c5d
4
+ data.tar.gz: 8e8d22b2cf42e899c244c127ff58e109140f42c7
5
5
  SHA512:
6
- metadata.gz: fcf6ec4ae19b77839ff132ffe57ace8d26ab4b534615b501a6da151965db9aad5ddfa0e6b63a14a892d8a77a4f7ea4fb8d2c965b2e1edc2b0b723c57a9d9963f
7
- data.tar.gz: cea7f4dff7ece594b1616c0d23ecc9c6b900a5250ea79318913e9f4f2cd2f473031bc8a20cfb6c35cef9b92a0dc1f60ea8e9a00925153d92dcbae9f479f37a8f
6
+ metadata.gz: '05837cea2dc1a99ed2d2dd9d0687faf6d4743c9ae52e80bf68faf839c59c18e87c3d2b6f34556a1875e914aeb6c698e6245628dc34334c5bf8068e6b30b8c629'
7
+ data.tar.gz: 7a5f26195c8676ef75a888c05623f10cf2d66ac23fd6d8e33d25f4f08f624058bc20e406e64a4f4582c03a8b9a5096119330a740af104176b1e156f90fac1991
data/README.md CHANGED
@@ -25,7 +25,7 @@ Or install it yourself as:
25
25
 
26
26
  ## Usage
27
27
 
28
- Basic example:
28
+ Basic examples:
29
29
  ````ruby
30
30
  Halo.configure do |config|
31
31
  config.api_key = ENV['HALO_API_KEY']
@@ -34,9 +34,12 @@ end
34
34
  ````
35
35
 
36
36
  ````ruby
37
- metadata = Halo.h5_metadata
37
+ halo5_client = Halo.halo5
38
+ halo_wars2_client = Halo.halo_wars2
38
39
 
39
- missions = metadata.campaign_missions.all
40
+ h5_missions = halo5_client.metadata.campaign_missions
41
+ h5_player_appearance = halo5_client.profile(player: 'xarly bovi').player_appearance
42
+ h2w_campaign_levels = halo_wars2_client.metadata.campaign_levels
40
43
 
41
44
  ````
42
45
 
@@ -3,47 +3,22 @@ require 'halo-api/configuration'
3
3
  require 'halo-api/client'
4
4
  require 'halo-api/api_response'
5
5
 
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'
6
+ require 'halo-api/clients/halo5_client'
7
+ require 'halo-api/clients/halo_wars2_client'
12
8
 
13
9
 
14
10
  module Halo
15
11
  extend Configuration
16
12
 
17
13
  class << self
18
- # Halo 5 Metadata Client
19
- def h5_metadata(options = {})
20
- Halo::Clients::Halo5MetadataClient.new(options)
21
- end
22
-
23
- # Halo Wars 2 Metadata Client
24
- def hw2_metadata(options = {})
25
- Halo::Clients::HaloWars2MetadataClient.new(options)
26
- end
27
14
 
28
- # Halo 5 Profile Client
29
- def h5_profile(options = {})
30
- Halo::Clients::Halo5ProfileClient.new(options)
15
+ def halo5(options = {})
16
+ Halo::Clients::Halo5Client.new(options)
31
17
  end
32
18
 
33
- # Halo 5 Stats Client
34
- def h5_stats(options = {})
35
- Halo::Clients::Halo5StatsClient.new(options)
19
+ def halo_wars2(options = {})
20
+ Halo::Clients::HaloWars2Client.new(options)
36
21
  end
37
22
 
38
- # Halo Wars 2 Stats Client
39
- def hw2_stats(options = {})
40
- Halo::Clients::HaloWars2StatsClient.new(options)
41
- end
42
-
43
- # Halo 5 UGC Client
44
- def h5_ugc(options = {})
45
- Halo::Clients::Halo5UgcClient.new(options)
46
- end
47
23
  end
48
-
49
24
  end
@@ -0,0 +1,37 @@
1
+ require 'halo-api/client'
2
+
3
+ require 'halo-api/modules/halo5/metadata'
4
+ require 'halo-api/modules/halo5/profile'
5
+ require 'halo-api/modules/halo5/stats'
6
+ require 'halo-api/modules/halo5/ugc'
7
+
8
+
9
+ module Halo
10
+ module Clients
11
+
12
+ # Halo 5 Client
13
+ class Halo5Client < Client
14
+
15
+ def initialize(options = {})
16
+ super(options)
17
+ end
18
+
19
+ def metadata(options = {})
20
+ merge_options_and_return_obj(options, Halo::Halo5::Metadata)
21
+ end
22
+
23
+ def profile(options = {})
24
+ merge_options_and_return_obj(options, Halo::Halo5::Profile)
25
+ end
26
+
27
+ def stats(options = {})
28
+ merge_options_and_return_obj(options, Halo::Halo5::Stats)
29
+ end
30
+
31
+ def ugc(options = {})
32
+ merge_options_and_return_obj(options, Halo::Halo5::Ugc)
33
+ end
34
+
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,27 @@
1
+ require 'halo-api/client'
2
+
3
+ require 'halo-api/modules/halo_wars2/metadata'
4
+ require 'halo-api/modules/halo_wars2/stats'
5
+
6
+
7
+ module Halo
8
+ module Clients
9
+
10
+ # Halo Wars 2 Client
11
+ class HaloWars2Client < Client
12
+
13
+ def initialize(options = {})
14
+ super(options)
15
+ end
16
+
17
+ def metadata(options = {})
18
+ merge_options_and_return_obj(options, Halo::HaloWars2::Metadata)
19
+ end
20
+
21
+ def stats(options = {})
22
+ merge_options_and_return_obj(options, Halo::HaloWars2::Stats)
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,93 @@
1
+ module Halo
2
+ module Halo5
3
+ class Metadata < APIResponse
4
+
5
+ def initialize(options = {})
6
+ @endpoint = '/metadata/h5/metadata'
7
+
8
+ super(options)
9
+ end
10
+
11
+ def campaign_missions(options = {})
12
+ get_data("#{@endpoint}/campaign-missions", options)
13
+ end
14
+
15
+ def commendations(options = {})
16
+ get_data("#{@endpoint}/commendations", options)
17
+ end
18
+
19
+ def csr_designations(options = {})
20
+ get_data("#{@endpoint}/csr-designations", options)
21
+ end
22
+
23
+ def enemies(options = {})
24
+ get_data("#{@endpoint}/enemies", options)
25
+ end
26
+
27
+ def flexible_stats(options = {})
28
+ get_data("#{@endpoint}/flexible-stats", options)
29
+ end
30
+
31
+ def game_base_variants(options = {})
32
+ get_data("#{@endpoint}/game-base-variants", options)
33
+ end
34
+
35
+ def game_variant(id, options = {})
36
+ get_data("#{@endpoint}/game-variants/#{id}", options)
37
+ end
38
+
39
+ def impulses(options = {})
40
+ get_data("#{@endpoint}/impulses", options)
41
+ end
42
+
43
+ def map_variant(id, options = {})
44
+ get_data("#{@endpoint}/map-variants/#{id}", options)
45
+ end
46
+
47
+ def maps(options = {})
48
+ get_data("#{@endpoint}/maps", options)
49
+ end
50
+
51
+ def medals(options = {})
52
+ get_data("#{@endpoint}/medals", options)
53
+ end
54
+
55
+ def playlist(options = {})
56
+ get_data("#{@endpoint}/playlist", options)
57
+ end
58
+
59
+ def requisition(id, options = {})
60
+ get_data("#{@endpoint}/requisitions/#{id}", options)
61
+ end
62
+
63
+ def requisition_pack(options = {})
64
+ get_data("#{@endpoint}/requisition-packs/#{id}", options)
65
+ end
66
+
67
+ def seasons(options = {})
68
+ get_data("#{@endpoint}/seasons", options)
69
+ end
70
+
71
+ def skulls(options = {})
72
+ get_data("#{@endpoint}/skulls", options)
73
+ end
74
+
75
+ def spartan_ranks(options = {})
76
+ get_data("#{@endpoint}/spartan-ranks", options)
77
+ end
78
+
79
+ def team_colors(options = {})
80
+ get_data("#{@endpoint}/team-colors", options)
81
+ end
82
+
83
+ def vehicles(options = {})
84
+ get_data("#{@endpoint}/vehicles", options)
85
+ end
86
+
87
+ def weapons(options = {})
88
+ get_data("#{@endpoint}/weapons", options)
89
+ end
90
+
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,25 @@
1
+ module Halo
2
+ module Halo5
3
+ class Profile < APIResponse
4
+
5
+ def initialize(options = {})
6
+ @player = options.delete(:player)
7
+ @endpoint = "/profile/h5/profiles/#{@player}"
8
+
9
+ super(options)
10
+ end
11
+
12
+ def player_appearance(options = {})
13
+ get_data("#{@endpoint}/appearance", options)
14
+ end
15
+
16
+ def player_emblem_image(options = {})
17
+ get_data("#{@endpoint}/emblem", options)
18
+ end
19
+
20
+ def player_spartan_image(options = {})
21
+ get_data("#{@endpoint}/spartan", options)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,80 @@
1
+ module Halo
2
+ module Halo5
3
+ class Stats < APIResponse
4
+
5
+ def initialize(options = {})
6
+ @endpoint = '/stats/h5'
7
+ super(options)
8
+ end
9
+
10
+ def company(company_id, options = {})
11
+ get_data("#{@endpoint}/companies/#{company_id}", options)
12
+ end
13
+
14
+ def company_commendations(company_id, options = {})
15
+ get_data("#{@endpoint}/companies/#{company_id}/commendations", options)
16
+ end
17
+
18
+ def leaderboard_player_csr(season_id, playlist_id, options = {})
19
+ get_data("#{@endpoint}player-leaderboards/csr/#{season_id}/#{playlist_id}", options)
20
+ end
21
+
22
+ def match_events(match_id, options = {})
23
+ get_data("#{@endpoint}/matches/#{match_id}/events", options)
24
+ end
25
+
26
+ def match_result_arena(match_id, options = {})
27
+ get_data("#{@endpoint}/arena/matches/#{match_id}", options)
28
+ end
29
+
30
+ def match_result_campaign(match_id, options = {})
31
+ get_data("#{@endpoint}/campaign/matches/#{match_id}", options)
32
+ end
33
+
34
+ def match_result_custom(match_id, options = {})
35
+ get_data("#{@endpoint}/custom/matches/#{match_id}", options)
36
+ end
37
+
38
+ def match_result_warzone(match_id, options = {})
39
+ get_data("#{@endpoint}/warzone/matches/#{match_id}", options)
40
+ end
41
+
42
+ def player_commendations(player, options = {})
43
+ get_data("#{@endpoint}/players/#{player}/commendations", options)
44
+ end
45
+
46
+ def player_match_history(player, options = {})
47
+ get_data("#{@endpoint}/players/#{player}/matches", options)
48
+ end
49
+
50
+ def psr_arena(players, options = {})
51
+ get_data("#{@endpoint}/servicerecords/arena", options.merge(players: players))
52
+ end
53
+
54
+ def psr_campaign(players, options = {})
55
+ get_data("#{@endpoint}/servicerecords/campaign", options.merge(players: players))
56
+ end
57
+
58
+ def psr_custom(players, options = {})
59
+ get_data("#{@endpoint}/servicerecords/custom", options.merge(players: players))
60
+ end
61
+
62
+ def psr_warzone(players, options = {})
63
+ get_data("#{@endpoint}/servicerecords/warzone", options.merge(players: players))
64
+ end
65
+
66
+ def pc_match_result_custom(match_id, options = {})
67
+ get_data("#{@endpoint}pc/custom/matches/#{match_id}", options)
68
+ end
69
+
70
+ def pc_player_match_history(player, options = {})
71
+ get_data("#{@endpoint}pc/players/#{player}/matches", options)
72
+ end
73
+
74
+ def pc_psr_custom(players, options = {})
75
+ get_data("#{@endpoint}pc/servicerecords/custom", options.merge(players: players))
76
+ end
77
+
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,30 @@
1
+ module Halo
2
+ module Halo5
3
+ class Ugc < APIResponse
4
+
5
+ def initialize(options = {})
6
+ @player = options.delete(:player)
7
+ @endpoint = "/ugc/h5/players/#{@player}"
8
+
9
+ super(options)
10
+ end
11
+
12
+ def player_game_variant(variant, options = {})
13
+ get_data("#{@endpoint}gamevariants/#{variant}", options)
14
+ end
15
+
16
+ def player_game_variants(options = {})
17
+ get_data("#{@endpoint}/gamevariants", options)
18
+ end
19
+
20
+ def player_map_variant(variant, options = {})
21
+ get_data("#{@endpoint}/mapvariants/#{variant}", options)
22
+ end
23
+
24
+ def player_map_variants(options = {})
25
+ get_data("#{@endpoint}/mapvariants", options)
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,77 @@
1
+ module Halo
2
+ module HaloWars2
3
+ class Metadata < APIResponse
4
+
5
+ def initialize(options = {})
6
+ @endpoint = '/metadata/hw2'
7
+
8
+ super(options)
9
+ end
10
+
11
+ def campaign_levels(options = {})
12
+ get_data("#{@endpoint}/campaign-levels", options)
13
+ end
14
+
15
+ def campaign_logs(options = {})
16
+ get_data("#{@endpoint}/campaign-logs", options)
17
+ end
18
+
19
+ def card_keywords(options = {})
20
+ get_data("#{@endpoint}/card-keywords", options)
21
+ end
22
+
23
+ def cards(options = {})
24
+ get_data("#{@endpoint}/cards", options)
25
+ end
26
+
27
+ def csr_designations(options = {})
28
+ get_data("#{@endpoint}/csr-designations", options)
29
+ end
30
+
31
+ def difficulties(options = {})
32
+ get_data("#{@endpoint}/difficulties", options)
33
+ end
34
+
35
+ def game_object_categories(options = {})
36
+ get_data("#{@endpoint}/game-object-categories", options)
37
+ end
38
+
39
+ def game_objects(options = {})
40
+ get_data("#{@endpoint}/game-objects", options)
41
+ end
42
+
43
+ def leader_powers(options = {})
44
+ get_data("#{@endpoint}/leader-powers", options)
45
+ end
46
+
47
+ def leaders(options = {})
48
+ get_data("#{@endpoint}/leaders", options)
49
+ end
50
+
51
+ def maps(options = {})
52
+ get_data("#{@endpoint}/maps", options)
53
+ end
54
+
55
+ def packs(options = {})
56
+ get_data("#{@endpoint}/packs", options)
57
+ end
58
+
59
+ def playlists(options = {})
60
+ get_data("#{@endpoint}/playlists", options)
61
+ end
62
+
63
+ def seasons(options = {})
64
+ get_data("#{@endpoint}/seasons", options)
65
+ end
66
+
67
+ def spartan_ranks(options = {})
68
+ get_data("#{@endpoint}/spartan-ranks", options)
69
+ end
70
+
71
+ def techs(options = {})
72
+ get_data("#{@endpoint}/techs", options)
73
+ end
74
+
75
+ end
76
+ end
77
+ end