ugcleague 1.1.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a2499d5c929d4992f5ac4e7b87bf138588be980
4
- data.tar.gz: 9ec6f975068ab165603c572ff58a36e0405ca786
3
+ metadata.gz: 74a0eabdbcc574f7f6a25747678807207ae0e93a
4
+ data.tar.gz: 38df875c17afc93365c2924edc2393feaa9e83dc
5
5
  SHA512:
6
- metadata.gz: d4924107b3af785468e7564ddbfd49fabab69c3a3f0424267a1d89103eca6896fe2aac08842eedbed419781c4d9fe079d4f2c0b4de25d57f3657e03c5b7c9507
7
- data.tar.gz: 84d14239a48a236578036061918501cca8e6f5a530fb354de2a4e9e71029ff203b7913058de93c57e840fbd54bdd7e119683c00e0ccdfc9a68b7ceed50a2d330
6
+ metadata.gz: f64dd37c9f112dc676e6996f636811a98252a59222d341eccf98537ebceb4252d369a9aecb32f8e1ea5a3d393b20c6de58ccbd8772be8e12f00dd79ae3547507
7
+ data.tar.gz: 2e0a5f21ccc570b31ab0363bb990b87fb17c23000f4401d8dc841e13c9c6a0ecbfdee7866fc8497b84382435b93290f0aaecb3781e04b509d309479e41e17c11
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/README.md CHANGED
@@ -26,6 +26,7 @@ require 'ugcleague'
26
26
  UGCLeague.configure do |config|
27
27
  config.api_key = "API Key" # Obtain from a UGC admin.
28
28
  config.user_agent = "User agent" # User agent to be sent with the request.
29
+ config.debug = false # Whether to print debug messages.
29
30
  end
30
31
  ```
31
32
 
@@ -38,6 +39,12 @@ UGCLeague.api_key = "API Key"
38
39
  # Set the user agent.
39
40
  UGCLeague.user_agent = "User agent"
40
41
 
42
+ # Set debug.
43
+ UGCLeague.debug = true
44
+
45
+ # Checks if the player has a profile on UGC.
46
+ UGCLeague.player_has_profile(76561198063808035)
47
+
41
48
  # Get a player's team history.
42
49
  UGCLeague.player_history(76561198063808035)
43
50
 
@@ -1,4 +1,4 @@
1
- class UGC::Client
1
+ class UGCLeague::Client
2
2
  module Players
3
3
 
4
4
  def player_has_profile(steamid)
@@ -1,7 +1,7 @@
1
1
  module UGCLeague
2
2
  module Configuration
3
3
 
4
- VALID_OPTIONS_KEYS = [:api_key, :user_agent].freeze
4
+ VALID_OPTIONS_KEYS = [:api_key, :user_agent, :debug].freeze
5
5
 
6
6
  DEFAULT_USER_AGENT = "UGC League Ruby Gem #{UGCLeague::VERSION}".freeze
7
7
 
@@ -2,9 +2,7 @@ module UGCLeague
2
2
  module Error
3
3
 
4
4
  class Error < StandardError; end
5
-
6
5
  class Parsing < Error; end
7
-
8
6
  class Unauthorized < Error; end
9
7
 
10
8
  end
@@ -13,10 +13,6 @@ module UGCLeague
13
13
  attr_accessor :api_key
14
14
 
15
15
  def self.parse(body)
16
- case body
17
- when "Access denied."; raise Error::Unauthorized.new "Invalid API key"
18
- end
19
-
20
16
  begin
21
17
  JSON.load body
22
18
  rescue JSON::ParserError
@@ -27,9 +23,23 @@ module UGCLeague
27
23
  def get(options={})
28
24
  options[:key] = @api_key unless !@api_key
29
25
  query_string = Rack::Utils.build_query(options)
26
+
27
+ debug_message("GET request for \"http://www.ugcleague.com/api/api.php?#{query_string}\" sent (using useragent \"#{@user_agent}\")")
30
28
  validate self.class.get("http://www.ugcleague.com/api/api.php?#{query_string}")
31
29
  end
32
30
 
31
+ def validate(response)
32
+ case response.body
33
+ when "Access denied."; raise Error::Unauthorized.new "Invalid API key"
34
+ end
35
+
36
+ response.parsed_response
37
+ end
38
+
39
+ def debug_message(message)
40
+ puts "DEBUG: #{message}" if @debug
41
+ end
42
+
33
43
  private
34
44
 
35
45
  def error_message(response)
@@ -41,3 +51,4 @@ module UGCLeague
41
51
 
42
52
  end
43
53
  end
54
+
@@ -1,3 +1,3 @@
1
1
  module UGCLeague
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -0,0 +1,25 @@
1
+ {
2
+ "ugc_page": "http://www.ugcleague.com/players_page.cfm?player_id=76561198063808035",
3
+ "team": [
4
+ {
5
+ "name": "Diruo Division",
6
+ "tag": "_esportsTM",
7
+ "format": "9v9",
8
+ "division": "AUS/NZ Platinum",
9
+ "status": "DR",
10
+ "last_updated": "2014-07-21 00:00:57",
11
+ "joined": "2013-08-20 04:51:12",
12
+ "active": "true"
13
+ },
14
+ {
15
+ "name": "Take Five!",
16
+ "tag": "Take Five, !",
17
+ "format": "4v4",
18
+ "division": "Silver N.Amer",
19
+ "status": "I",
20
+ "last_updated": "2014-08-20 02:57:59",
21
+ "joined": "2013-12-23 15:12:38",
22
+ "active": "false"
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "ugc_page": "http://www.ugcleague.com/players_page.cfm?player_id=76561198063808035",
3
+ "team": [
4
+ {
5
+ "name": "Diruo Division",
6
+ "tag": "_esportsTM",
7
+ "format": "9v9",
8
+ "division": "AUS/NZ Platinum",
9
+ "status": "A",
10
+ "last_updated": "2014-07-21 00:00:57",
11
+ "joined": "2013-08-20 04:51:12",
12
+ "active": "true"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "ugc_page": "http://www.ugcleague.com/players_page.cfm?player_id=76561198063808035",
3
+ "team": [
4
+ {
5
+ "name": "Diruo Division",
6
+ "tag": "_esportsTM",
7
+ "format": "9v9",
8
+ "division": "AUS/NZ Platinum",
9
+ "status": "HP",
10
+ "last_updated": "2014-07-21 00:00:57",
11
+ "joined": "2013-08-20 04:51:12",
12
+ "active": "true"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "exists": true
3
+ }
@@ -0,0 +1,21 @@
1
+ require 'rspec'
2
+ require 'webmock/rspec'
3
+
4
+ def load_fixture(fixture)
5
+ File.new(File.dirname(__FILE__) + "/fixtures/#{fixture}.json")
6
+ end
7
+
8
+ require File.expand_path("../../lib/ugcleague", __FILE__)
9
+
10
+ RSpec.configure do |config|
11
+ end
12
+
13
+ def stub_get(url, fixture)
14
+ stub_request(:get, "http://www.ugcleague.com#{url}")
15
+ .with(:headers => {:Accept => 'application/json'})
16
+ .to_return(:body => load_fixture(fixture))
17
+ end
18
+
19
+ def a_get(url)
20
+ a_request(:get, "http://www.ugcleague.com#{url}")
21
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe UGCLeague::Client do
4
+
5
+ describe "#player_has_profile" do
6
+ before do
7
+ stub_get("/api/api.php?exists=123", "player_exists")
8
+ @player = UGCLeague.player_has_profile(123)
9
+ end
10
+
11
+ it "should return the correct resource" do
12
+ expect(a_get("/api/api.php?exists=123")).to have_been_made
13
+ end
14
+
15
+ it "should return a hash" do
16
+ expect(@player).to be_a Hash
17
+ end
18
+ end
19
+
20
+ describe "#player_history" do
21
+ before do
22
+ stub_get("/api/api.php?player=123", "player")
23
+ @player = UGCLeague.player_history(123)
24
+ end
25
+
26
+ it "should return the correct resource" do
27
+ expect(a_get("/api/api.php?player=123")).to have_been_made
28
+ end
29
+
30
+ it "should return a hash" do
31
+ expect(@player).to be_a Hash
32
+ end
33
+ end
34
+
35
+ describe "#player_current" do
36
+ before do
37
+ stub_get("/api/api.php?active=123", "player_active")
38
+ @player = UGCLeague.player_current(123)
39
+ end
40
+
41
+ it "should return the correct resource" do
42
+ expect(a_get("/api/api.php?active=123")).to have_been_made
43
+ end
44
+ end
45
+
46
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe UGCLeague::Request do
4
+
5
+ it { should respond_to :get }
6
+
7
+ before do
8
+ @request = UGCLeague::Request.new
9
+ end
10
+
11
+ describe "#parse" do
12
+ it "should return JSON" do
13
+ body = "{\"exists\": true}"
14
+ expect(UGCLeague::Request.parse(body)).to be_a Hash
15
+ expect { UGCLeague::Request.parse("Not JSON") }.to raise_error(UGCLeague::Error::Parsing)
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ describe UGCLeague do
4
+ after { UGCLeague.reset }
5
+
6
+ describe "#client" do
7
+
8
+ it "should be a UGCLeague::Client" do
9
+ expect(UGCLeague.client).to be_a UGCLeague::Client
10
+ end
11
+
12
+ it "should not override other clients" do
13
+ client_1 = UGCLeague.client(api_key: '001', user_agent: 'Client 1')
14
+ client_2 = UGCLeague.client(api_key: '002', user_agent: 'Client 2')
15
+
16
+ expect(client_1.api_key).to eq('001')
17
+ expect(client_2.api_key).to eq('002')
18
+
19
+ expect(client_1.user_agent).to eq('Client 1')
20
+ expect(client_2.user_agent).to eq('Client 2')
21
+ end
22
+
23
+ end
24
+
25
+ describe "#api_key=" do
26
+ it "should set the api key" do
27
+ UGCLeague.api_key = '123'
28
+ expect(UGCLeague.api_key).to eq('123')
29
+ end
30
+ end
31
+
32
+ describe "#user_agent=" do
33
+ it "should set the user agent" do
34
+ UGCLeague.user_agent = 'Test'
35
+ expect(UGCLeague.user_agent).to eq('Test')
36
+ end
37
+ end
38
+
39
+ describe "#user_agent" do
40
+ it "should return the default user agent" do
41
+ expect(UGCLeague.user_agent).to eq(UGCLeague::Configuration::DEFAULT_USER_AGENT)
42
+ end
43
+ end
44
+
45
+ describe "#debug=" do
46
+ it "should set the debug option" do
47
+ UGCLeague.debug = true
48
+ expect(UGCLeague.debug).to eq(true)
49
+ end
50
+ end
51
+
52
+ describe "#configure" do
53
+ UGCLeague::Configuration::VALID_OPTIONS_KEYS.each do |key|
54
+ it "should set #{key}" do
55
+ UGCLeague.configure do |config|
56
+ config.send("#{key}=", key)
57
+ expect(UGCLeague.send(key)).to eq(key)
58
+ end
59
+ end
60
+ end
61
+ end
62
+
63
+ end
@@ -12,7 +12,13 @@ Gem::Specification.new do |gem|
12
12
  gem.homepage = "https://github.com/Ranndom/UGCLeague"
13
13
 
14
14
  gem.files = `git ls-files`.split($/)
15
+ gem.test_files = gem.files.grep(%r{^(test|spec)/})
15
16
  gem.require_paths = ["lib"]
16
17
 
17
18
  gem.add_runtime_dependency 'httparty'
19
+ gem.add_runtime_dependency "rack"
20
+
21
+ gem.add_development_dependency 'rake'
22
+ gem.add_development_dependency 'rspec'
23
+ gem.add_development_dependency 'webmock'
18
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ugcleague
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ranndom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-25 00:00:00.000000000 Z
11
+ date: 2015-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -24,6 +24,62 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: webmock
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
27
83
  description: Ruby client for UGC League API
28
84
  email:
29
85
  - Ranndom@rnndm.xyz
@@ -31,6 +87,7 @@ executables: []
31
87
  extensions: []
32
88
  extra_rdoc_files: []
33
89
  files:
90
+ - ".rspec"
34
91
  - Gemfile
35
92
  - README.md
36
93
  - Rakefile
@@ -42,6 +99,17 @@ files:
42
99
  - lib/ugcleague/error.rb
43
100
  - lib/ugcleague/request.rb
44
101
  - lib/ugcleague/version.rb
102
+ - spec/fixtures/player.json
103
+ - spec/fixtures/player_active.json
104
+ - spec/fixtures/player_current.json
105
+ - spec/fixtures/player_exists.json
106
+ - spec/spec_helper.rb
107
+ - spec/ugcleague/client/players_spec.rb
108
+ - spec/ugcleague/client/teams_spec.rb
109
+ - spec/ugcleague/configuration_spec.rb
110
+ - spec/ugcleague/error_spec.rb
111
+ - spec/ugcleague/request_spec.rb
112
+ - spec/ugcleague_spec.rb
45
113
  - ugcleague_api.gemspec
46
114
  homepage: https://github.com/Ranndom/UGCLeague
47
115
  licenses: []
@@ -66,4 +134,15 @@ rubygems_version: 2.4.5.1
66
134
  signing_key:
67
135
  specification_version: 4
68
136
  summary: Ruby client for UGC League API
69
- test_files: []
137
+ test_files:
138
+ - spec/fixtures/player.json
139
+ - spec/fixtures/player_active.json
140
+ - spec/fixtures/player_current.json
141
+ - spec/fixtures/player_exists.json
142
+ - spec/spec_helper.rb
143
+ - spec/ugcleague/client/players_spec.rb
144
+ - spec/ugcleague/client/teams_spec.rb
145
+ - spec/ugcleague/configuration_spec.rb
146
+ - spec/ugcleague/error_spec.rb
147
+ - spec/ugcleague/request_spec.rb
148
+ - spec/ugcleague_spec.rb