halo-api 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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