gogcom 0.0.23 → 0.0.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -1
- data/lib/gogcom.rb +2 -2
- data/lib/gogcom/game.rb +12 -2
- data/lib/gogcom/sale.rb +23 -3
- data/lib/gogcom/version.rb +1 -1
- data/test/test_game.rb +8 -0
- data/test/test_sale.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3593702eb56104ba530291dc096d53ff42695c26
|
4
|
+
data.tar.gz: 523ff8f4b3387e23f77d8e37d5185b83ec8c579f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d738502b4be1ee7469de8781cb54e0f593af1fb397ef355b69314daa8cc097d8a422a86a419fc6439c5796c1bc68d7e4424937de6a1b521dbc1102fa6775f791
|
7
|
+
data.tar.gz: b3c29b325887c3ab4968340e2a3e7b9255667421e92c3f7b4755c78ef330dbea7a8b16f12972ad6713d11c72379fb9bfe40fe96f265c0566c154b5e438498489
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ This library is in early stages and not ready for general use.
|
|
9
9
|
|
10
10
|
#### Installation
|
11
11
|
```
|
12
|
-
gem 'gogcom', '~> 0.0.
|
12
|
+
gem 'gogcom', '~> 0.0.24'
|
13
13
|
bundle install
|
14
14
|
```
|
15
15
|
|
@@ -23,11 +23,13 @@ game.title # => "Spelunky"
|
|
23
23
|
game.genres # => ["Action", "Adventure", "Platformer"]
|
24
24
|
game.download_size # => "143 MB"
|
25
25
|
game.release_date # => 1375934400 (Unix time)
|
26
|
+
game.description # => "..."
|
26
27
|
game.price # => "$14.99"
|
27
28
|
game.avg_rating # => "4.6"
|
28
29
|
game.avg_ratings_count # => 268
|
29
30
|
game.platforms # => ["Windows"]
|
30
31
|
game.languages # => ["English", "French", "Italian", "German", "Spanish"]
|
32
|
+
game.pegiAge # => false
|
31
33
|
game.developer # => "Mossmouth"
|
32
34
|
game.publisher # => "Mossmouth"
|
33
35
|
game.game_modes # => ["Single-player", "Multi-player", "Co-op"]
|
@@ -46,6 +48,8 @@ end
|
|
46
48
|
require 'gogcom'
|
47
49
|
|
48
50
|
sale = Gogcom.sale
|
51
|
+
# sale = Gogcom.sale(:type => "games")
|
52
|
+
# sale = Gogcom.sale(:type => "movies")
|
49
53
|
|
50
54
|
sale.each do |game|
|
51
55
|
game.title
|
data/lib/gogcom.rb
CHANGED
data/lib/gogcom/game.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Gogcom
|
2
2
|
class Game
|
3
|
-
attr_accessor :title, :genres, :download_size, :release_date, :price, :avg_rating,
|
4
|
-
:avg_ratings_count, :platforms, :languages, :developer, :publisher,
|
3
|
+
attr_accessor :title, :genres, :download_size, :release_date, :description, :price, :avg_rating,
|
4
|
+
:avg_ratings_count, :platforms, :pegiAge, :languages, :developer, :publisher,
|
5
5
|
:game_modes, :reviews
|
6
6
|
|
7
7
|
def self.get_data(game_name)
|
@@ -33,6 +33,10 @@ module Gogcom
|
|
33
33
|
data["gameProductData"]["releaseDate"]
|
34
34
|
end
|
35
35
|
|
36
|
+
def self.get_description(data)
|
37
|
+
data["gameProductData"]["description"]["full"]
|
38
|
+
end
|
39
|
+
|
36
40
|
def self.get_price(data)
|
37
41
|
data["gameProductData"]["price"]["symbol"] + data["gameProductData"]["price"]["amount"]
|
38
42
|
end
|
@@ -96,6 +100,10 @@ module Gogcom
|
|
96
100
|
reviews
|
97
101
|
end
|
98
102
|
|
103
|
+
def self.get_pegiAge(data)
|
104
|
+
data["gameProductData"]["pegiAge"]
|
105
|
+
end
|
106
|
+
|
99
107
|
def self.get(game_name)
|
100
108
|
data = self.get_data(game_name)
|
101
109
|
game = Game.new
|
@@ -104,10 +112,12 @@ module Gogcom
|
|
104
112
|
game.genres = get_genres(data)
|
105
113
|
game.download_size = get_download_size(data)
|
106
114
|
game.release_date = get_release_date(data)
|
115
|
+
game.description = get_description(data)
|
107
116
|
game.price = get_price(data)
|
108
117
|
game.avg_rating = get_avg_rating(data)
|
109
118
|
game.avg_ratings_count = get_avg_ratings_count(data)
|
110
119
|
game.platforms = get_platforms(data)
|
120
|
+
game.pegiAge = get_pegiAge(data)
|
111
121
|
game.languages = get_languages(data)
|
112
122
|
game.developer = get_developer(data)
|
113
123
|
game.publisher = get_publisher(data)
|
data/lib/gogcom/sale.rb
CHANGED
@@ -29,10 +29,19 @@ module Gogcom
|
|
29
29
|
data["on_sale"][i]["price"]["symbol"] + data["on_sale"][i]["price"]["discountDifference"]
|
30
30
|
end
|
31
31
|
|
32
|
-
def self.
|
32
|
+
def self.is_game?(data, i)
|
33
|
+
data["on_sale"][i]["isGame"]
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.is_movie?(data, i)
|
37
|
+
data["on_sale"][i]["isMovie"]
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.get(options = {})
|
33
41
|
data = self.get_data
|
34
42
|
sale = []
|
35
43
|
count = 0
|
44
|
+
type = options[:type] || nil
|
36
45
|
|
37
46
|
data["on_sale"].each do |item|
|
38
47
|
game = Sale.new
|
@@ -42,8 +51,19 @@ module Gogcom
|
|
42
51
|
game.price_original = get_price_original(data, count)
|
43
52
|
game.discount_percentage = get_discount_percentage(data, count)
|
44
53
|
game.discount_amount = get_discount_amount(data, count)
|
45
|
-
|
46
|
-
|
54
|
+
|
55
|
+
if (type == "games")
|
56
|
+
if (is_game?(data, count))
|
57
|
+
sale.push(game)
|
58
|
+
end
|
59
|
+
elsif (type == "movies")
|
60
|
+
if (is_movie?(data, count))
|
61
|
+
sale.push(game)
|
62
|
+
end
|
63
|
+
else
|
64
|
+
sale.push(game)
|
65
|
+
end
|
66
|
+
|
47
67
|
count += 1
|
48
68
|
end
|
49
69
|
|
data/lib/gogcom/version.rb
CHANGED
data/test/test_game.rb
CHANGED
@@ -27,6 +27,10 @@ class GogcomGameTest < Minitest::Test
|
|
27
27
|
assert_equal Gogcom::Game.get_release_date(@data), 1347595200
|
28
28
|
end
|
29
29
|
|
30
|
+
def test_description
|
31
|
+
assert_kind_of String, Gogcom::Game.get_description(@data)
|
32
|
+
end
|
33
|
+
|
30
34
|
def test_price
|
31
35
|
assert_match /^\$\d+(\.\d{2})?$/, Gogcom::Game.get_price(@data)
|
32
36
|
end
|
@@ -43,6 +47,10 @@ class GogcomGameTest < Minitest::Test
|
|
43
47
|
assert_equal Gogcom::Game.get_platforms(@data), ["Windows", "Mac"]
|
44
48
|
end
|
45
49
|
|
50
|
+
def test_pegiAge
|
51
|
+
assert_equal Gogcom::Game.get_pegiAge(@data), false
|
52
|
+
end
|
53
|
+
|
46
54
|
def test_languages
|
47
55
|
assert_equal Gogcom::Game.get_languages(@data), ["English"]
|
48
56
|
end
|
data/test/test_sale.rb
CHANGED
@@ -33,6 +33,14 @@ class GogcomSaleTest < Minitest::Test
|
|
33
33
|
assert_equal Gogcom::Sale.get_discount_amount(@data, @game_id), "$6.00"
|
34
34
|
end
|
35
35
|
|
36
|
+
def test_is_game?
|
37
|
+
assert_equal Gogcom::Sale.is_game?(@data, @game_id), true
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_is_movie?
|
41
|
+
assert_equal Gogcom::Sale.is_movie?(@data, @game_id), false
|
42
|
+
end
|
43
|
+
|
36
44
|
def test_get
|
37
45
|
VCR.use_cassette('index') do
|
38
46
|
sale = Gogcom::Sale.get
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gogcom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rolandas Barysas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coveralls
|