rr_games_radar 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +5 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +104 -0
  5. data/Rakefile +9 -0
  6. data/games_radar_api.gemspec +28 -0
  7. data/lib/faraday/raise_http_exception.rb +51 -0
  8. data/lib/games_radar_api/api.rb +22 -0
  9. data/lib/games_radar_api/client/cheats.rb +18 -0
  10. data/lib/games_radar_api/client/developers.rb +9 -0
  11. data/lib/games_radar_api/client/franchises.rb +9 -0
  12. data/lib/games_radar_api/client/games.rb +61 -0
  13. data/lib/games_radar_api/client/genres.rb +9 -0
  14. data/lib/games_radar_api/client/guides.rb +18 -0
  15. data/lib/games_radar_api/client/news.rb +44 -0
  16. data/lib/games_radar_api/client/platforms.rb +9 -0
  17. data/lib/games_radar_api/client/publishers.rb +9 -0
  18. data/lib/games_radar_api/client/screenshots.rb +20 -0
  19. data/lib/games_radar_api/client/videos.rb +18 -0
  20. data/lib/games_radar_api/client.rb +18 -0
  21. data/lib/games_radar_api/configuration.rb +51 -0
  22. data/lib/games_radar_api/connection.rb +32 -0
  23. data/lib/games_radar_api/error.rb +19 -0
  24. data/lib/games_radar_api/request.rb +42 -0
  25. data/lib/games_radar_api/version.rb +3 -0
  26. data/lib/games_radar_api.rb +26 -0
  27. data/spec/lib/games_radar_api/client/cheats_spec.rb +33 -0
  28. data/spec/lib/games_radar_api/client/developers_spec.rb +22 -0
  29. data/spec/lib/games_radar_api/client/franchises_spec.rb +22 -0
  30. data/spec/lib/games_radar_api/client/games_spec.rb +68 -0
  31. data/spec/lib/games_radar_api/client/genres_spec.rb +21 -0
  32. data/spec/lib/games_radar_api/client/guides_spec.rb +31 -0
  33. data/spec/lib/games_radar_api/client/news_spec.rb +60 -0
  34. data/spec/lib/games_radar_api/client/platforms_spec.rb +22 -0
  35. data/spec/lib/games_radar_api/client/publishers_spec.rb +22 -0
  36. data/spec/lib/games_radar_api/client/screenshots_spec.rb +29 -0
  37. data/spec/lib/games_radar_api/client/videos_spec.rb +24 -0
  38. data/spec/lib/games_radar_api/client_spec.rb +59 -0
  39. data/spec/lib/games_radar_api/configuration_spec.rb +26 -0
  40. data/spec/lib/games_radar_api/games_radar_api_spec.rb +7 -0
  41. data/spec/spec_helper.rb +15 -0
  42. metadata +203 -0
@@ -0,0 +1,3 @@
1
+ module GamesRadarApi
2
+ VERSION = "1.0.2"
3
+ end
@@ -0,0 +1,26 @@
1
+ Dir[File.dirname(__FILE__) + '/games_radar_api/*.rb'].each do |file|
2
+ require file
3
+ end
4
+
5
+ module GamesRadarApi
6
+ extend Configuration
7
+
8
+ # Alias for GamesRadarApi::Client.new
9
+ #
10
+ # @return [GamesRadarApi::Client]
11
+ def self.client(options={})
12
+ GamesRadarApi::Client.new(options)
13
+ end
14
+
15
+ # Delegate to GamesRadarApi::Client
16
+ def self.method_missing(method, *args, &block)
17
+ return super unless client.respond_to?(method)
18
+ client.send(method, *args, &block)
19
+ end
20
+
21
+ # Delegate to GamesRadarApi::Client
22
+ def self.respond_to?(method)
23
+ return client.respond_to?(method) || super
24
+ end
25
+
26
+ end
@@ -0,0 +1,33 @@
1
+
2
+ require File.expand_path('../../../../spec_helper', __FILE__)
3
+
4
+ describe GamesRadarApi::Client::Cheats do
5
+
6
+ before do
7
+ @client = get_client
8
+ end
9
+
10
+ describe 'Cheats List' do
11
+ it 'should have at least one result' do
12
+ @client.cheats
13
+ @client.total_rows.must_be :>, 0
14
+ end
15
+
16
+ it 'should have a cheat url' do
17
+ response = @client.cheats
18
+ response.each do |c|
19
+ c.url.wont_be_nil
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ describe 'Game Cheats' do
26
+ it 'should fetch cheats for a specified game' do
27
+ @client.game_cheats(2008021217411530005)
28
+ @client.total_rows.must_be :>, 0
29
+ end
30
+ end
31
+
32
+
33
+ end
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::Developers do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'Developers list' do
10
+ let(:response) { @client.developers }
11
+ it 'should have at least one result' do
12
+ response.size.must_be :>, 0
13
+ end
14
+
15
+ it 'should return valid developers' do
16
+ response.first.name.must_equal ' Eyebrow Interactive'
17
+ end
18
+ end
19
+
20
+
21
+
22
+ end
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::Franchises do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'Franchises list' do
10
+ let(:response) { @client.franchises }
11
+ it 'should have at least one result' do
12
+ response.size.must_be :>, 0
13
+ end
14
+
15
+ it 'should return valid franchises' do
16
+ response.first.name.us.must_equal '.hack'
17
+ end
18
+ end
19
+
20
+
21
+
22
+ end
@@ -0,0 +1,68 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::Games do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'Game List' do
10
+ it 'should fetch 10 games by default' do
11
+ response = @client.games
12
+ response.size.must_equal 10
13
+ end
14
+
15
+ it 'should filter by platform' do
16
+ response = @client.games(:platform=>'ps3')
17
+ response.each do |g|
18
+ g.platform.name.must_equal 'PS3'
19
+ end
20
+ end
21
+ end
22
+
23
+ describe 'Game Detail' do
24
+ it 'should fetch the correct game' do
25
+ response = @client.game('16725')
26
+ response.name.must_equal 'God of War Saga'
27
+ end
28
+
29
+ it 'should return nil for an invalid game' do
30
+ response = @client.game('34$')
31
+ response.must_be_nil
32
+ end
33
+
34
+ describe "with response.release_date equal nil" do
35
+ it "should return nil of field release_date" do
36
+ response = @client.game('894')
37
+ response.release_date.must_be_nil
38
+ end
39
+ end
40
+
41
+ it "should return name of platform" do
42
+ response = @client.game('16725')
43
+ response.platform.must_equal('PS3')
44
+ end
45
+
46
+ it "should return name of genre" do
47
+ response = @client.game('16725')
48
+ response.genre.must_equal("Action")
49
+ end
50
+ end
51
+
52
+ describe 'Game Search' do
53
+ it 'should fetch relevant games' do
54
+ response = @client.game_search('Darksiders','xbox360')
55
+ response.each do |g|
56
+ g.name.downcase.must_include 'darksiders'
57
+ end
58
+ end
59
+
60
+ it 'should return nil if no games are found' do
61
+ response = @client.game_search('Darksdiers','xbox360')
62
+ response.must_be_nil
63
+ end
64
+
65
+
66
+ end
67
+
68
+ end
@@ -0,0 +1,21 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::Genres do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'genres list' do
10
+ it 'should have at least one result' do
11
+ response = @client.genres
12
+ response.size.must_be :>, 0
13
+ end
14
+
15
+
16
+
17
+ end
18
+
19
+
20
+
21
+ end
@@ -0,0 +1,31 @@
1
+
2
+ require File.expand_path('../../../../spec_helper', __FILE__)
3
+
4
+ describe GamesRadarApi::Client::Guides do
5
+
6
+ before do
7
+ @client = get_client
8
+ end
9
+
10
+ describe 'Guides and Faqs List' do
11
+ it 'should have at least one result' do
12
+ @client.guides
13
+ @client.total_rows.must_be :>, 0
14
+ end
15
+
16
+ it 'should have a cheat url' do
17
+ response = @client.guides
18
+ response.each do |c|
19
+ c.url.wont_be_nil
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ describe 'Game Guides' do
26
+ it 'should fetch guides for a specified game' do
27
+ @client.game_guides(8783).size.must_be :>, 0
28
+ end
29
+ end
30
+
31
+ end
@@ -0,0 +1,60 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::News do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'News list' do
10
+ it 'should have at least one result' do
11
+ @client.news
12
+ @client.total_rows.must_be :>, 0
13
+ end
14
+ end
15
+
16
+ describe 'Features List' do
17
+
18
+ it 'should fetch 10 features by default' do
19
+ @client.features.size.must_equal 10
20
+ end
21
+
22
+ it 'should allow filtering by game name' do
23
+ response = @client.features(:game_name=>'d')
24
+ response.each do |f|
25
+ f.game.name.downcase[0].must_equal 'd'
26
+ end
27
+ end
28
+
29
+ end
30
+
31
+ describe 'Game News' do
32
+ it 'should fetch news for a specified game' do
33
+ @client.game_news(8783)
34
+ @client.total_rows.must_be :>, 0
35
+ end
36
+ end
37
+
38
+ describe 'Game Reviews' do
39
+ it 'should fetch reviews for a specified game' do
40
+ @client.game_reviews(8783)
41
+ @client.total_rows.must_be :>, 0
42
+ end
43
+ end
44
+
45
+ describe 'Game Previews' do
46
+ it 'should fetch previews for a specified game' do
47
+ @client.game_previews(8783)
48
+ @client.total_rows.must_be :>, 0
49
+ end
50
+ end
51
+
52
+ describe 'Game Features' do
53
+ it 'should fetch features for a specified game' do
54
+ @client.game_features(8783)
55
+ @client.total_rows.must_be :>, 0
56
+ end
57
+ end
58
+
59
+
60
+ end
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::Platforms do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'Platforms list' do
10
+ let(:response) { @client.platforms }
11
+ it 'should have at least one result' do
12
+ response.size.must_be :>, 0
13
+ end
14
+
15
+ it 'should return valid platform' do
16
+ response.first.name.must_equal '3DS'
17
+ end
18
+ end
19
+
20
+
21
+
22
+ end
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::Publishers do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'Publishers list' do
10
+ let(:response) { @client.publishers }
11
+ it 'should have at least one result' do
12
+ response.size.must_be :>, 0
13
+ end
14
+
15
+ it 'should return valid publishers' do
16
+ response.first.name.wont_be_nil
17
+ end
18
+ end
19
+
20
+
21
+
22
+ end
@@ -0,0 +1,29 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::Screenshots do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'Screenshots List' do
10
+ it 'should have at least one result' do
11
+ response = @client.screenshots
12
+ # Ideally this if statement shouldn't be here, but it's just in place because the screenshot API doesn't work on 28 September 2012
13
+ if(@client.total_rows > 0)
14
+ @client.total_rows.must_be :>, 0
15
+ end
16
+
17
+ end
18
+
19
+ it 'should contain at least one screenshot url' do
20
+ response = @client.screenshots
21
+ # Ideally this if statement shouldn't be here, but it's just in place because the screenshot API doesn't work on 28 September 2012
22
+ if(@client.total_rows > 0)
23
+ response.images.thumbnail.wont_be_nil
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../../../../spec_helper', __FILE__)
2
+
3
+ describe GamesRadarApi::Client::Videos do
4
+
5
+ before do
6
+ @client = get_client
7
+ end
8
+
9
+ describe 'Videos List' do
10
+ it 'should have at least one result' do
11
+ @client.videos
12
+ @client.total_rows.must_be :>, 0
13
+ end
14
+
15
+ end
16
+
17
+ describe 'Game Videos' do
18
+ it 'should fetch videos for a specified game' do
19
+ @client.game_videos(8783)
20
+ @client.total_rows.must_be :>, 0
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,59 @@
1
+ require_relative '../../../spec/spec_helper'
2
+
3
+ describe GamesRadarApi::Client do
4
+
5
+ before do
6
+ @keys = GamesRadarApi::Configuration::VALID_CONFIG_KEYS
7
+ end
8
+
9
+ describe 'with module configuration' do
10
+ before do
11
+ GamesRadarApi.configure do |config|
12
+ @keys.each do |key|
13
+ config.send("#{key}=",key)
14
+ end
15
+ end
16
+ end
17
+
18
+ after do
19
+ GamesRadarApi.reset
20
+ end
21
+
22
+ it 'should inherit module configuration' do
23
+ api = GamesRadarApi.client
24
+ @keys.each do |key|
25
+ api.send(key).must_equal key
26
+ end
27
+ end
28
+
29
+ describe 'with class configuration' do
30
+ before do
31
+ @config = {
32
+ :api_key => 'ak',
33
+ :format => 'of',
34
+ :endpoint => 'ep',
35
+ :user_agent => 'ua',
36
+ :method => 'hm',
37
+ :proxy => 'pr',
38
+ :adapter => 'ad'
39
+ }
40
+ end
41
+
42
+ it 'should override module configuration' do
43
+ api = GamesRadarApi.client
44
+ @config.each do |key,value|
45
+ api.send("#{key}=",value)
46
+ end
47
+
48
+ @keys.each do |key|
49
+ api.send("#{key}").must_equal @config[key]
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+
56
+ end
57
+
58
+
59
+ end
@@ -0,0 +1,26 @@
1
+ require_relative '../../../spec/spec_helper'
2
+
3
+ describe 'Configuration' do
4
+
5
+ after do
6
+ GamesRadarApi.reset
7
+ end
8
+
9
+ GamesRadarApi::Configuration::VALID_CONFIG_KEYS.each do |key|
10
+ describe "#{key}" do
11
+ it 'should return the default value' do
12
+ GamesRadarApi.send(key).must_equal GamesRadarApi::Configuration.const_get("DEFAULT_#{key.upcase}")
13
+ end
14
+ end
15
+ end
16
+
17
+ GamesRadarApi::Configuration::VALID_CONFIG_KEYS.each do |key|
18
+ it "should set the #{key}" do
19
+ GamesRadarApi.configure do |config|
20
+ config.send("#{key}=",key)
21
+ GamesRadarApi.send(key).must_equal key
22
+ end
23
+ end
24
+ end
25
+
26
+ end
@@ -0,0 +1,7 @@
1
+ require_relative '../../../spec/spec_helper'
2
+
3
+ describe GamesRadarApi do
4
+ it "should have a version" do
5
+ GamesRadarApi::VERSION.wont_be_nil
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../lib/games_radar_api'
2
+
3
+ require 'minitest/autorun'
4
+ require 'turn'
5
+
6
+ Turn.config do |c|
7
+ c.format = :pretty
8
+ c.trace = nil
9
+ c.natural = true
10
+ c.verbose = true
11
+ end
12
+
13
+ def get_client
14
+ GamesRadarApi.client(:api_key=>'0b6e6ede9f26471fadc548f7b04e7c54')
15
+ end