open_dota_api 0.1.0 → 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 +4 -4
- data/lib/open_dota_api.rb +1 -1
- data/lib/open_dota_api/client.rb +7 -0
- data/lib/open_dota_api/hero.rb +1 -1
- data/lib/open_dota_api/pro_player.rb +94 -0
- data/lib/open_dota_api/team.rb +1 -1
- data/lib/open_dota_api/version.rb +1 -1
- data/spec/data/pro_players.json +24146 -0
- data/spec/lib/open_dota_api/client_spec.rb +15 -0
- data/spec/lib/open_dota_api/hero_spec.rb +1 -1
- data/spec/lib/open_dota_api/match_spec.rb +1 -1
- data/spec/lib/open_dota_api/pro_player_spec.rb +133 -0
- metadata +8 -3
| @@ -9,6 +9,7 @@ describe OpenDotaApi::Client do | |
| 9 9 | 
             
              let(:teams_file) { File.read('spec/data/teams.json') }
         | 
| 10 10 | 
             
              let(:match_file) { File.read('spec/data/match.json') }
         | 
| 11 11 | 
             
              let(:heroes_file) { File.read('spec/data/heroes.json') }
         | 
| 12 | 
            +
              let(:pro_players_file) { File.read('spec/data/pro_players.json') }
         | 
| 12 13 | 
             
              let(:data_file) {  }
         | 
| 13 14 | 
             
              let(:headers) do
         | 
| 14 15 | 
             
                {
         | 
| @@ -21,6 +22,7 @@ describe OpenDotaApi::Client do | |
| 21 22 | 
             
              let(:expected_teams) { OpenDotaApi::Team.instantiate(response_json) }
         | 
| 22 23 | 
             
              let(:expected_match) { OpenDotaApi::Match.new(response_json) }
         | 
| 23 24 | 
             
              let(:expected_heroes) { OpenDotaApi::Hero.instantiate(response_json) }
         | 
| 25 | 
            +
              let(:expected_pro_players) { OpenDotaApi::ProPlayers.instantiate(response_json) }
         | 
| 24 26 |  | 
| 25 27 | 
             
              before do
         | 
| 26 28 | 
             
                stub_request(:get, "http://api.opendota.com/api/#{endpoint}/").
         | 
| @@ -85,5 +87,18 @@ describe OpenDotaApi::Client do | |
| 85 87 | 
             
                    expect(client.heroes.to_deep_hash).to eq expected_heroes.to_deep_hash
         | 
| 86 88 | 
             
                  end
         | 
| 87 89 | 
             
                end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                describe '#pro_players' do
         | 
| 92 | 
            +
                  let(:endpoint) { "#{OpenDotaApi::ProPlayer::ENDPOINT}" }
         | 
| 93 | 
            +
                  let(:data_file) { pro_players_file }
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                  it 'returns array of objects' do
         | 
| 96 | 
            +
                    expect(client.pro_players.all? { |hero| hero.kind_of? OpenDotaApi::ProPlayer }).to be_truthy
         | 
| 97 | 
            +
                  end
         | 
| 98 | 
            +
             | 
| 99 | 
            +
                  it 'returns list' do
         | 
| 100 | 
            +
                    expect(client.pro_players.to_deep_hash).to eq expected_heroes.to_deep_hash
         | 
| 101 | 
            +
                  end
         | 
| 102 | 
            +
                end
         | 
| 88 103 | 
             
              end
         | 
| 89 104 | 
             
            end
         | 
| @@ -6,7 +6,7 @@ describe OpenDotaApi::Hero do | |
| 6 6 | 
             
              let(:localized_name) { 'Anti-Mage' }
         | 
| 7 7 | 
             
              let(:primary_attr) { 'agi' }
         | 
| 8 8 | 
             
              let(:attack_type) { 'Melee' }
         | 
| 9 | 
            -
              let(:roles) { %w | 
| 9 | 
            +
              let(:roles) { %w(Carry Escape Nuker) }
         | 
| 10 10 | 
             
              let(:legs) { 2 }
         | 
| 11 11 |  | 
| 12 12 | 
             
              let(:heroes_file) { File.read('spec/data/heroes.json') }
         | 
| @@ -31,7 +31,7 @@ describe OpenDotaApi::Match do | |
| 31 31 | 
             
              end
         | 
| 32 32 |  | 
| 33 33 | 
             
              it 'is not instantiable' do
         | 
| 34 | 
            -
                expect{ described_class.instantiate }.to raise_error NotImplementedError
         | 
| 34 | 
            +
                expect { described_class.instantiate }.to raise_error NotImplementedError
         | 
| 35 35 | 
             
              end
         | 
| 36 36 |  | 
| 37 37 | 
             
              describe 'default attributes' do
         | 
| @@ -0,0 +1,133 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe OpenDotaApi::ProPlayer do
         | 
| 4 | 
            +
              let(:account_id) { 1_296_625 }
         | 
| 5 | 
            +
              let(:steam_id) { '76561197961562353' }
         | 
| 6 | 
            +
              let(:avatar) { 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/95/951e9165740fda890651d8475fc50f5368a847bb.jpg' }
         | 
| 7 | 
            +
              let(:avatar_medium) { 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/95/951e9165740fda890651d8475fc50f5368a847bb_medium.jpg' }
         | 
| 8 | 
            +
              let(:avatar_full) { 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/95/951e9165740fda890651d8475fc50f5368a847bb_full.jpg' }
         | 
| 9 | 
            +
              let(:profile_url) { 'http://steamcommunity.com/id/jnewsham/' }
         | 
| 10 | 
            +
              let(:persona_name) { 'Newsham' }
         | 
| 11 | 
            +
              let(:last_login) { Time.parse('2016-06-10 20:24:48.743000000 +0000').utc }
         | 
| 12 | 
            +
              let(:full_history_time) { Time.parse('2015-10-27 05:14:26.768000000 +0000') }
         | 
| 13 | 
            +
              let(:cheese) { 0 }
         | 
| 14 | 
            +
              let(:fh_unavailable) { false }
         | 
| 15 | 
            +
              let(:loc_country_code) { 'US' }
         | 
| 16 | 
            +
              let(:last_match_time) { Time.parse('2017-06-28 03:13:57.000000000 +0000') }
         | 
| 17 | 
            +
              let(:name) { 'Newsham' }
         | 
| 18 | 
            +
              let(:country_code) { 'us' }
         | 
| 19 | 
            +
              let(:fantasy_role) { 2 }
         | 
| 20 | 
            +
              let(:team_id) { 3_724_222 }
         | 
| 21 | 
            +
              let(:team_name) { 'Team Red' }
         | 
| 22 | 
            +
              let(:team_tag) { 'Red' }
         | 
| 23 | 
            +
              let(:is_locked) { true }
         | 
| 24 | 
            +
              let(:is_pro) { true }
         | 
| 25 | 
            +
              let(:locked_until) { 1_502_694_000 }
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              let(:pro_players_file) { File.read('spec/data/pro_players.json') }
         | 
| 28 | 
            +
              let(:response_json) { JSON.parse(pro_players_file) }
         | 
| 29 | 
            +
              let(:pro_players) { OpenDotaApi::ProPlayer.instantiate(response_json) }
         | 
| 30 | 
            +
              let(:pro_player) { pro_players[8] } # Red.Newsham
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              it 'returns endpoint' do
         | 
| 33 | 
            +
                expect(described_class::ENDPOINT).to eq 'proPlayers'
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
              it 'inherits entity object' do
         | 
| 37 | 
            +
                expect(pro_player).to be_a OpenDotaApi::Entity
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
              it 'is instantiable' do
         | 
| 41 | 
            +
                expect(pro_player).to be_a OpenDotaApi::Entities::Instantiatable
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              describe 'default attributes' do
         | 
| 45 | 
            +
                it 'returns account id' do
         | 
| 46 | 
            +
                  expect(pro_player.account_id).to eq account_id
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                it 'returns steam id' do
         | 
| 50 | 
            +
                  expect(pro_player.steam_id).to eq steam_id
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                it 'returns avatar' do
         | 
| 54 | 
            +
                  expect(pro_player.avatar).to eq avatar
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                it 'returns avatar medium' do
         | 
| 58 | 
            +
                  expect(pro_player.avatar_medium).to eq avatar_medium
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                it 'returns avatar full' do
         | 
| 62 | 
            +
                  expect(pro_player.avatar_full).to eq avatar_full
         | 
| 63 | 
            +
                end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                it 'returns profile url' do
         | 
| 66 | 
            +
                  expect(pro_player.profile_url).to eq profile_url
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                it 'returns persona name' do
         | 
| 70 | 
            +
                  expect(pro_player.persona_name).to eq persona_name
         | 
| 71 | 
            +
                end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                it 'returns last login' do
         | 
| 74 | 
            +
                  expect(pro_player.last_login).to eq last_login
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                it 'returns full history time' do
         | 
| 78 | 
            +
                  expect(pro_player.full_history_time).to eq full_history_time
         | 
| 79 | 
            +
                end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                it 'returns cheese' do
         | 
| 82 | 
            +
                  expect(pro_player.cheese).to eq cheese
         | 
| 83 | 
            +
                end
         | 
| 84 | 
            +
             | 
| 85 | 
            +
                it 'returns fh unavailable' do
         | 
| 86 | 
            +
                  expect(pro_player.fh_unavailable).to eq fh_unavailable
         | 
| 87 | 
            +
                end
         | 
| 88 | 
            +
             | 
| 89 | 
            +
                it 'returns location country code' do
         | 
| 90 | 
            +
                  expect(pro_player.loc_country_code).to eq loc_country_code
         | 
| 91 | 
            +
                end
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                it 'returns last match time' do
         | 
| 94 | 
            +
                  expect(pro_player.last_match_time).to eq last_match_time
         | 
| 95 | 
            +
                end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
                it 'returns name' do
         | 
| 98 | 
            +
                  expect(pro_player.name).to eq name
         | 
| 99 | 
            +
                end
         | 
| 100 | 
            +
             | 
| 101 | 
            +
                it 'returns country code' do
         | 
| 102 | 
            +
                  expect(pro_player.country_code).to eq country_code
         | 
| 103 | 
            +
                end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                it 'returns fantasy role' do
         | 
| 106 | 
            +
                  expect(pro_player.fantasy_role).to eq fantasy_role
         | 
| 107 | 
            +
                end
         | 
| 108 | 
            +
             | 
| 109 | 
            +
                it 'returns team id' do
         | 
| 110 | 
            +
                  expect(pro_player.team_id).to eq team_id
         | 
| 111 | 
            +
                end
         | 
| 112 | 
            +
             | 
| 113 | 
            +
                it 'returns team name' do
         | 
| 114 | 
            +
                  expect(pro_player.team_name).to eq team_name
         | 
| 115 | 
            +
                end
         | 
| 116 | 
            +
             | 
| 117 | 
            +
                it 'returns team tag' do
         | 
| 118 | 
            +
                  expect(pro_player.team_tag).to eq team_tag
         | 
| 119 | 
            +
                end
         | 
| 120 | 
            +
             | 
| 121 | 
            +
                it 'returns if it is locked' do
         | 
| 122 | 
            +
                  expect(pro_player.is_locked).to eq is_locked
         | 
| 123 | 
            +
                end
         | 
| 124 | 
            +
             | 
| 125 | 
            +
                it 'returns if it is pro' do
         | 
| 126 | 
            +
                  expect(pro_player.is_pro).to eq is_pro
         | 
| 127 | 
            +
                end
         | 
| 128 | 
            +
             | 
| 129 | 
            +
                it 'returns locked until' do
         | 
| 130 | 
            +
                  expect(pro_player.locked_until).to eq locked_until
         | 
| 131 | 
            +
                end
         | 
| 132 | 
            +
              end
         | 
| 133 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: open_dota_api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Yaroslav Oslavskiy
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017-07- | 
| 11 | 
            +
            date: 2017-07-26 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: httparty
         | 
| @@ -140,11 +140,13 @@ files: | |
| 140 140 | 
             
            - lib/open_dota_api/league.rb
         | 
| 141 141 | 
             
            - lib/open_dota_api/match.rb
         | 
| 142 142 | 
             
            - lib/open_dota_api/matches/player.rb
         | 
| 143 | 
            +
            - lib/open_dota_api/pro_player.rb
         | 
| 143 144 | 
             
            - lib/open_dota_api/team.rb
         | 
| 144 145 | 
             
            - lib/open_dota_api/version.rb
         | 
| 145 146 | 
             
            - spec/data/heroes.json
         | 
| 146 147 | 
             
            - spec/data/leagues.json
         | 
| 147 148 | 
             
            - spec/data/match.json
         | 
| 149 | 
            +
            - spec/data/pro_players.json
         | 
| 148 150 | 
             
            - spec/data/teams.json
         | 
| 149 151 | 
             
            - spec/lib/open_dota_api/client_spec.rb
         | 
| 150 152 | 
             
            - spec/lib/open_dota_api/connection_spec.rb
         | 
| @@ -152,6 +154,7 @@ files: | |
| 152 154 | 
             
            - spec/lib/open_dota_api/league_spec.rb
         | 
| 153 155 | 
             
            - spec/lib/open_dota_api/match_spec.rb
         | 
| 154 156 | 
             
            - spec/lib/open_dota_api/matches/player_spec.rb
         | 
| 157 | 
            +
            - spec/lib/open_dota_api/pro_player_spec.rb
         | 
| 155 158 | 
             
            - spec/lib/open_dota_api/team_spec.rb
         | 
| 156 159 | 
             
            - spec/lib/open_dota_api_spec.rb
         | 
| 157 160 | 
             
            - spec/spec_helper.rb
         | 
| @@ -175,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 175 178 | 
             
                  version: '0'
         | 
| 176 179 | 
             
            requirements: []
         | 
| 177 180 | 
             
            rubyforge_project: 
         | 
| 178 | 
            -
            rubygems_version: 2. | 
| 181 | 
            +
            rubygems_version: 2.6.12
         | 
| 179 182 | 
             
            signing_key: 
         | 
| 180 183 | 
             
            specification_version: 4
         | 
| 181 184 | 
             
            summary: Ruby wrapper for Open Dota API
         | 
| @@ -183,6 +186,7 @@ test_files: | |
| 183 186 | 
             
            - spec/data/heroes.json
         | 
| 184 187 | 
             
            - spec/data/leagues.json
         | 
| 185 188 | 
             
            - spec/data/match.json
         | 
| 189 | 
            +
            - spec/data/pro_players.json
         | 
| 186 190 | 
             
            - spec/data/teams.json
         | 
| 187 191 | 
             
            - spec/lib/open_dota_api/client_spec.rb
         | 
| 188 192 | 
             
            - spec/lib/open_dota_api/connection_spec.rb
         | 
| @@ -190,6 +194,7 @@ test_files: | |
| 190 194 | 
             
            - spec/lib/open_dota_api/league_spec.rb
         | 
| 191 195 | 
             
            - spec/lib/open_dota_api/match_spec.rb
         | 
| 192 196 | 
             
            - spec/lib/open_dota_api/matches/player_spec.rb
         | 
| 197 | 
            +
            - spec/lib/open_dota_api/pro_player_spec.rb
         | 
| 193 198 | 
             
            - spec/lib/open_dota_api/team_spec.rb
         | 
| 194 199 | 
             
            - spec/lib/open_dota_api_spec.rb
         | 
| 195 200 | 
             
            - spec/spec_helper.rb
         |