valorant 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9a36f9f5ee4cd08482186eb82e1b4832f942c482d65ef3b3acb059d1377d1c96
4
+ data.tar.gz: 4ed8029b401abbfae509c107de62784083f4194b9c4da01808ae55f1c2b834dd
5
+ SHA512:
6
+ metadata.gz: b199bceb9378e2a15ab30e5400aa884a0fe709f44720a62367ea1f699d6344a6dfa87168bd5b7224d6d1f59c379459af3308d029f1b94674eb7ffc9e1923de29
7
+ data.tar.gz: e8da10bb9ec1cdfffd79ab75e4e91d3c0dc6a1dcaeccc820ef5681b08a3dc11ca5932e5f75cc1b50b10b17f965d5f3ff418441554814d6c7e93a37b76209fe69
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2022-11-16
4
+
5
+ - Initial release
data/Gemfile ADDED
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in valorant-api.gemspec
6
+ gemspec
7
+
8
+ gem 'rake', '~> 13.0'
9
+
10
+ gem 'rspec', '~> 3.0'
11
+
12
+ gem 'rubocop', '~> 1.21'
13
+
14
+ gem 'fast_jsonparser'
15
+
16
+ gem 'rest-client'
17
+
18
+ gem 'date'
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Valorant
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/valorant`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Install the gem and add to the application's Gemfile by executing:
10
+
11
+ $ bundle add valorant
12
+
13
+ If bundler is not being used to manage dependencies, install the gem by executing:
14
+
15
+ $ gem install valorant
16
+
17
+ ## Usage
18
+
19
+ TODO: Write usage instructions here
20
+
21
+ ## Development
22
+
23
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
24
+
25
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
26
+
27
+ ## Contributing
28
+
29
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/valorant.
data/Rakefile ADDED
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ require 'rubocop/rake_task'
9
+
10
+ desc 'Look for style guide offenses in your code'
11
+ task :rubocop do
12
+ sh 'rubocop lib/ --format simple || true'
13
+ end
14
+
15
+ desc 'Look for style guide offenses in your code and fix them.'
16
+ task :rubofix do
17
+ sh 'rubocop lib/ --fix --format simple || true'
18
+ end
19
+
20
+ desc 'Install required gems'
21
+ task :install do
22
+ sh 'bundle install'
23
+ end
24
+
25
+ task :console do
26
+ sh 'bin/console'
27
+ end
28
+
29
+ task default: %i[spec rubocop]
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "valorant"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'utils/user'
4
+ require_relative 'utils/utilities'
5
+
6
+ module Valorant
7
+ # This class is used to fetch data from the Valorant API -> ENDPOINT: /account
8
+ class AccountStats
9
+ def self.account_data(name, tag)
10
+ User.new(fetch_resposne("v1/account/#{name}/#{tag}"))
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'utils/match'
4
+ require_relative 'utils/matches_history'
5
+ require_relative 'utils/utilities'
6
+
7
+ module Valorant
8
+ # This class is used to fetch data from the Valorant API -> ENDPOINTS: /match, /matches
9
+ class MatchStats
10
+ def self.match_data(match_id)
11
+ Match.new(fetch_resposne("v2/match/#{match_id}"))
12
+ end
13
+
14
+ def self.matches_history(name, tag, region = 'eu', filter: '')
15
+ MatcheshHistory.new(fetch_resposne("v3/matches/#{region}/#{name}/#{tag}?filter=#{validate_filter(filter)}"))
16
+ end
17
+
18
+ def self.matches_history_by_puuid(puuid, region = 'eu', filter: '')
19
+ MatcheshHistory.new(fetch_resposne("v3/by-puuid/matches/#{region}/#{puuid}?filter=#{validate_filter(filter)}"))
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'utils/articles'
4
+ require_relative 'utils/leader_board'
5
+ require_relative 'utils/utilities'
6
+
7
+ module Valorant
8
+ # This class is used to fetch data from the Valorant API -> ENDPOINTS: /v1/website/, /v1/leaderboard/,
9
+ # v1/content/, v1/status/
10
+ class Misc
11
+ def self.articles(filter = '', locale = 'en-us')
12
+ Articles.new(fetch_resposne("v1/website/#{validate_locale(locale)}?filter=#{validate_filter(filter)}"))
13
+ end
14
+
15
+ def self.leader_board(region = 'eu', name = '', tag = '')
16
+ LeaderBoard.new(fetch_resposne("v1/leaderboard/#{region}?name=#{name}&tag=#{tag}", validate: false))
17
+ end
18
+
19
+ def self.content
20
+ fetch_resposne('v1/content')
21
+ end
22
+
23
+ def self.server_status(region)
24
+ fetch_resposne("v1/status/#{region}")['data'].transform_keys(&:to_sym)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'utils/mmr_v1'
4
+ require_relative 'utils/mmr_history'
5
+ require_relative 'utils/utilities'
6
+
7
+ module Valorant
8
+ # This class is used to fetch data from the Valorant API -> ENDPOINTS: /mmr, /by-puuid/mmr/,
9
+ # v1/mmr-history/, v1/by-puuid/mmr-history/
10
+ class MMRStats
11
+ def self.mmr_data(name, tag, region = 'eu', version: 'v1')
12
+ MMRV1.new(fetch_resposne("#{version}/mmr/#{region}/#{name}/#{tag}"))
13
+ end
14
+
15
+ def self.mmr_data_by_puuid(puuid, region = 'eu', version: 'v1')
16
+ MMRV1.new(fetch_resposne("#{version}/by-puuid/mmr/#{region}/#{puuid}"))
17
+ end
18
+
19
+ def self.mmr_history(name, tag, region = 'eu')
20
+ MMRHistory.new(fetch_resposne("v1/mmr-history/#{region}/#{name}/#{tag}"))
21
+ end
22
+
23
+ def self.mmr_history_by_puuid(puuid, region = 'eu')
24
+ MMRHistory.new(fetch_resposne("v1/by-puuid/mmr-history/#{region}/#{puuid}"))
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'date'
4
+ # This class is used to get the data for web articles.
5
+ class Article
6
+ attr_reader :banner_url, :category, :date, :external_link, :title, :url
7
+
8
+ def initialize(data)
9
+ @banner_url = data['banner_url']
10
+ @category = data['category']
11
+ @date = Date.parse(data['date'])
12
+ @external_link = data['external_link']
13
+ @title = data['title']
14
+ @url = data['url']
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'article'
4
+ # This class is used to store the data for web articles.
5
+ class Articles
6
+ attr_reader :articles
7
+
8
+ def initialize(hash)
9
+ data = hash['data']
10
+ @articles = data.each_with_object([]) do |article, arr|
11
+ arr << Article.new(article)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Leader class
4
+ class Leader
5
+ attr_accessor :leader_board_rank, :ranked_rating, :number_of_wins, :comptetitive_tier, :puuid, :game_name,
6
+ :tag_line, :player_card_id, :title_id, :is_banned, :is_anonymized
7
+
8
+ def initialize(data)
9
+ @leader_board_rank = data['leaderboardRank']
10
+ @ranked_rating = data['rankedRating']
11
+ @number_of_wins = data['numberOfWins']
12
+ @comptetitive_tier = data['competitiveTier']
13
+ fetch_player_data(data)
14
+ end
15
+
16
+ def fetch_player_data(data)
17
+ @puuid = data['puuid']
18
+ @game_name = data['gameName']
19
+ @tag_line = data['tagLine']
20
+ @player_card_id = data['PlayerCardID']
21
+ @title_id = data['TitleID']
22
+ @is_banned = data['IsBanned']
23
+ @is_anonymized = data['IsAnonymized']
24
+ end
25
+ end
26
+
27
+ # DOCUMENTATION
28
+
29
+ # @PlayerCardID
30
+ # @TitleID
31
+ # @IsBanned
32
+ # @IsAnonymized
33
+ # @puuid
34
+ # @gameName
35
+ # @tagLine
36
+ # @leaderboardRank
37
+ # @rankedRating
38
+ # @numberOfWins
39
+ # @competitiveTier
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'leader'
4
+ # Leaderboard class
5
+ class LeaderBoard
6
+ def initialize(data)
7
+ @board = data
8
+ leaders
9
+ end
10
+
11
+ def leaders
12
+ @board.map { |leader| Leader.new(leader) }
13
+ end
14
+ end
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'player'
4
+
5
+ # This class is used to get the data from a match
6
+ class Match
7
+ attr_reader :game_version, :game_start_patched, :season_id, :platform, :region,
8
+ :cluster, :map, :mode, :queue, :rounds_played, :matchid, :game_length,
9
+ :game_start, :winning_team, :red_rounds_won, :red_rounds_lost,
10
+ :blue_rounds_won, :blue_rounds_lost, :red_team, :blue_team, :all_players
11
+
12
+ def initialize(data)
13
+ @meta_data = data['data']['metadata']
14
+ @player_data = data['data']['players']
15
+ @team_data = data['data']['teams']
16
+
17
+ fetch_game_info
18
+ fetch_game_type
19
+ fetch_game_statistics
20
+
21
+ fetch_players
22
+ end
23
+
24
+ def mvp
25
+ @all_players.max_by(&:score)
26
+ end
27
+
28
+ def mvp_red
29
+ @red_team.max_by(&:score)
30
+ end
31
+
32
+ def mvp_blue
33
+ @blue_team.max_by(&:score)
34
+ end
35
+
36
+ def fetch_game_info
37
+ @game_version = @meta_data['game_version']
38
+ @game_start_patched = @meta_data['game_start_patched']
39
+ @season_id = @meta_data['season_id']
40
+ @platform = @meta_data['platform']
41
+ @region = @meta_data['region']
42
+ @cluster = @meta_data['cluster']
43
+ end
44
+
45
+ def fetch_game_type
46
+ @map = @meta_data['map']
47
+ @mode = @meta_data['mode']
48
+ @queue = @meta_data['queue']
49
+ end
50
+
51
+ def fetch_game_statistics
52
+ @rounds_played = @meta_data['rounds_played']
53
+ @matchid = @meta_data['matchid']
54
+ @game_length = @meta_data['game_length']
55
+ @game_start = @meta_data['game_start']
56
+ end
57
+
58
+ def fetch_players
59
+ fetch_all_players
60
+
61
+ return if @queue == 'Deathmatch'
62
+
63
+ fetch_red_team
64
+ fetch_blue_team
65
+ fetch_team_stats
66
+ end
67
+
68
+ def fetch_team_stats
69
+ @winning_team = @team_data['red']['has_won'] ? 'red' : 'blue'
70
+ @red_rounds_won = @team_data['red']['rounds_won']
71
+ @red_rounds_lost = @team_data['red']['rounds_lost']
72
+ @blue_rounds_won = @team_data['blue']['rounds_won']
73
+ @blue_rounds_lost = @team_data['blue']['rounds_lost']
74
+ end
75
+
76
+ def fetch_red_team
77
+ red_team = @player_data['red']
78
+ @red_team = []
79
+ red_team.each do |player|
80
+ @red_team << Player.new(player)
81
+ end
82
+ end
83
+
84
+ def fetch_blue_team
85
+ blue_team = @player_data['blue']
86
+ @blue_team = []
87
+ blue_team.each do |player|
88
+ @blue_team << Player.new(player)
89
+ end
90
+ end
91
+
92
+ def fetch_all_players
93
+ @all_players = @player_data['all_players'].each_with_object([]) do |player, array|
94
+ array << Player.new(player)
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'match'
4
+
5
+ # This class is used to get the data from the match history
6
+ class MatcheshHistory
7
+ attr_reader :matches
8
+
9
+ def initialize(hash)
10
+ @matches = fetch_matches(hash['data'])
11
+ end
12
+
13
+ private
14
+
15
+ def fetch_matches(matches_json)
16
+ matches_json.each_with_object([]) do |match, arr|
17
+ reformated_data = { 'data' => match }
18
+ arr << Match.new(reformated_data)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'mmr_v1'
4
+
5
+ # This class is used to get the data from the mmr history
6
+ class MMRHistory
7
+ attr_reader :data
8
+
9
+ def initialize(hash)
10
+ @data = fetch_mmr_v1(hash['data'])
11
+ end
12
+
13
+ private
14
+
15
+ def fetch_mmr_v1(mmr_v1_json)
16
+ mmr_v1_json.each_with_object([]) do |mmr_v1, arr|
17
+ reformated_data = { 'data' => mmr_v1 }
18
+ arr << MMRV1.new(reformated_data)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'date'
4
+
5
+ # This class is used to get the @data from MMR
6
+ class MMRV1
7
+ attr_reader :currenttier, :currenttierpatched, :images, :ranking_in_tier, :mmr_change_to_last_game, :elo, :name,
8
+ :tag, :old, :date
9
+
10
+ def initialize(hash)
11
+ @data = hash['data']
12
+ @currenttier = @data['currenttier']
13
+ @currenttierpatched = @data['currenttierpatched']
14
+ @images = @data['images']
15
+ @ranking_in_tier = @data['ranking_in_tier']
16
+ @mmr_change_to_last_game = @data['mmr_change_to_last_game']
17
+ @elo = @data['elo']
18
+ @old = @data['old']
19
+ fetch_date
20
+ fetch_nametag
21
+ end
22
+
23
+ private
24
+
25
+ def fetch_date
26
+ @date = if @data['date'].nil?
27
+ Time.now
28
+ else
29
+ Date.parse(@data['date'])
30
+ end
31
+ end
32
+
33
+ def fetch_nametag
34
+ @name = @data['name']
35
+ @tag = @data['tag']
36
+ end
37
+ end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This class is used to get the data from the player
4
+ class Player
5
+ attr_reader :puuid, :name, :tag, :team, :level, :character, :currenttier, :currenttier_patched, :party_id,
6
+ :player_card, :player_title, :assets_card, :assets_agent, :session_playtime, :behavior, :ability_casts,
7
+ :score, :kills, :deaths, :assists, :bodyshots, :headshots, :legshots, :spent_overall, :spent_average,
8
+ :damage_made, :damage_received
9
+
10
+ def initialize(data)
11
+ @data = data
12
+
13
+ fetch_general_data
14
+ fetch_aesthetics_data
15
+ fetch_session_data
16
+ fetch_performance_data
17
+ fetch_economy_data
18
+ fetch_damage_data
19
+ end
20
+
21
+ def name_tag
22
+ "#{@name} ##{@tag}"
23
+ end
24
+
25
+ def kd
26
+ (@kills.to_f / @deaths).round(2)
27
+ end
28
+
29
+ private
30
+
31
+ def fetch_general_data
32
+ @puuid = @data['puuid']
33
+ @name = @data['name']
34
+ @tag = @data['tag']
35
+ @team = @data['team']
36
+ @level = @data['level']
37
+ @character = @data['character']
38
+ @currenttier = @data['currenttier']
39
+ @currenttier_patched = @data['currenttier_patched']
40
+ @party_id = @data['party_id']
41
+ end
42
+
43
+ def fetch_aesthetics_data
44
+ @player_card = @data['player_card']
45
+ @player_title = @data['player_title']
46
+ @assets_card = keys_to_sim(@data['assets']['card']) # This is a hash
47
+ @assets_agent = keys_to_sim(@data['assets']['agent']) # This is a hash
48
+ end
49
+
50
+ def fetch_session_data
51
+ @session_playtime = @data['session_playtime']['seconds'].to_i
52
+ @behavior = keys_to_sim(@data['behavior']) # This is a hash
53
+ @ability_casts = keys_to_sim(@data['ability_casts']) # This is a hash
54
+ end
55
+
56
+ def fetch_performance_data
57
+ @score = @data['stats']['score']
58
+ @kills = @data['stats']['kills']
59
+ @deaths = @data['stats']['deaths']
60
+ @assists = @data['stats']['assists']
61
+ @bodyshots = @data['stats']['bodyshots']
62
+ @headshots = @data['stats']['headshots']
63
+ @legshots = @data['stats']['legshots']
64
+ end
65
+
66
+ def fetch_economy_data
67
+ @spent_overall = @data['economy']['spent']['overall'].to_i
68
+ @spent_average = @data['economy']['spent']['average'].to_i
69
+ end
70
+
71
+ def fetch_damage_data
72
+ @damage_made = @data['damage_made'].to_i
73
+ @damage_received = @data['damage_received'].to_i
74
+ return unless @damage_made.zero? || @damage_received.zero?
75
+
76
+ @damage_made = nil
77
+ @damage_received = nil
78
+ end
79
+
80
+ def session_platform_formatter(platform)
81
+ "#{platform['tpye']} #{platform['os'].values.join(' ')}"
82
+ end
83
+
84
+ def keys_to_sim(hash)
85
+ hash.transform_keys(&:to_sym)
86
+ end
87
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This class is used to get the data from the User
4
+ class User
5
+ attr_reader :puuid, :region, :name, :tag, :account_level, :card, :last_update, :last_update_raw
6
+
7
+ def initialize(hash)
8
+ data = hash['data']
9
+ @puuid = data['puuid']
10
+ @region = data['region']
11
+ @name = data['name']
12
+ @tag = data['tag']
13
+ @account_level = data['account_level']
14
+ @card = data['card']
15
+ @last_update = data['last_update']
16
+ @last_update_raw = data['last_update_raw']
17
+ end
18
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+ require 'rest-client'
5
+ require 'fast_jsonparser'
6
+
7
+ BASE_URL = 'https://api.henrikdev.xyz/valorant/'
8
+
9
+ def fetch_resposne(endpoint, validate: true)
10
+ response = RestClient.get(BASE_URL + endpoint)
11
+ return FastJsonparser.parse(validate_response(response), symbolize_keys: false) unless validate == false
12
+
13
+ FastJsonparser.parse(response, symbolize_keys: false)
14
+ end
15
+
16
+ def validate_response(response)
17
+ return response.body if response.code == 200
18
+
19
+ raise "Error: #{response.code} - #{response['message']}"
20
+ end
21
+
22
+ def validate_filter(filter)
23
+ return if filter.empty?
24
+
25
+ filters = %w[escalation spikerush deathmatch competitive unrated replication game_updates dev esports
26
+ announcments]
27
+ raise "Error: Invalid filter. Valid filters are: #{filters.join(', ')}" unless filters.include?(filter)
28
+
29
+ filter
30
+ end
31
+
32
+ def validate_locale(locale)
33
+ return if locale.empty?
34
+
35
+ locales = %w[en-us en-gb de-de es-es fr-fr it-it ru-ru tr-tr es-mx ja-jp ko-kr pt-br]
36
+ raise "Error: Invalid locale. Valid locales are: #{locales.join(', ')}" unless locales.include?(locale)
37
+
38
+ locale
39
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Valorant
4
+ class Api
5
+ VERSION = '0.1.0'
6
+ end
7
+ end
data/lib/valorant.rb ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Valorant
4
+ require_relative 'valorant/version'
5
+ require_relative 'valorant/account'
6
+ require_relative 'valorant/match'
7
+ require_relative 'valorant/mmr'
8
+ require_relative 'valorant/misc'
9
+ end
data/valorant.gemspec ADDED
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/valorant/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "valorant"
7
+ spec.version = Valorant::Api::VERSION
8
+ spec.authors = ["Gerard Hernandez"]
9
+ spec.email = ["ger.almenara@gmail.com"]
10
+
11
+ spec.summary = "An API wrapper for the Hendriks Valorant API 🍬"
12
+ spec.homepage = "https://github.com/jaredthejellyfish/ruby-hendriks-val"
13
+ spec.required_ruby_version = ">= 3.1.2"
14
+
15
+ spec.metadata["homepage_uri"] = spec.homepage
16
+ spec.metadata["source_code_uri"] = "https://github.com/jaredthejellyfish/ruby-hendriks-val"
17
+ spec.metadata["changelog_uri"] = "https://github.com/jaredthejellyfish/ruby-hendriks-val"
18
+
19
+ # Specify which files should be added to the gem when it is released.
20
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
+ require 'rake'
22
+ spec.files = FileList['lib/**/*.rb',
23
+ 'bin/*',
24
+ '[A-Z]*'].to_a
25
+ spec.bindir = "exe"
26
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
27
+ spec.require_paths = ["lib"]
28
+
29
+ # Uncomment to register a new dependency of your gem
30
+ # spec.add_dependency "example-gem", "~> 1.0"
31
+
32
+ # For more information and examples about making a new gem, check out our
33
+ # guide at: https://bundler.io/guides/creating_gem.html
34
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: valorant
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Gerard Hernandez
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2022-11-16 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email:
15
+ - ger.almenara@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - CHANGELOG.md
21
+ - Gemfile
22
+ - README.md
23
+ - Rakefile
24
+ - bin/console
25
+ - bin/setup
26
+ - lib/valorant.rb
27
+ - lib/valorant/account.rb
28
+ - lib/valorant/match.rb
29
+ - lib/valorant/misc.rb
30
+ - lib/valorant/mmr.rb
31
+ - lib/valorant/utils/article.rb
32
+ - lib/valorant/utils/articles.rb
33
+ - lib/valorant/utils/leader.rb
34
+ - lib/valorant/utils/leader_board.rb
35
+ - lib/valorant/utils/match.rb
36
+ - lib/valorant/utils/matches_history.rb
37
+ - lib/valorant/utils/mmr_history.rb
38
+ - lib/valorant/utils/mmr_v1.rb
39
+ - lib/valorant/utils/player.rb
40
+ - lib/valorant/utils/user.rb
41
+ - lib/valorant/utils/utilities.rb
42
+ - lib/valorant/version.rb
43
+ - valorant.gemspec
44
+ homepage: https://github.com/jaredthejellyfish/ruby-hendriks-val
45
+ licenses: []
46
+ metadata:
47
+ homepage_uri: https://github.com/jaredthejellyfish/ruby-hendriks-val
48
+ source_code_uri: https://github.com/jaredthejellyfish/ruby-hendriks-val
49
+ changelog_uri: https://github.com/jaredthejellyfish/ruby-hendriks-val
50
+ post_install_message:
51
+ rdoc_options: []
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: 3.1.2
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ requirements: []
65
+ rubygems_version: 3.3.7
66
+ signing_key:
67
+ specification_version: 4
68
+ summary: "An API wrapper for the Hendriks Valorant API \U0001F36C"
69
+ test_files: []