triviacrack 0.5.1 → 0.6.0

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
  SHA256:
3
- metadata.gz: '0498c4a4b88170d5974faab06d1f49c7c3b5235ab6d4224b7b82a95c019d0026'
4
- data.tar.gz: a4dd24a8012cf642a970d95170f89f30523f0ab684d1d02278e78124dbbf5d1d
3
+ metadata.gz: bac625736e1fdbe91e229596d95e3af90c22ea6b7b2de6373717994301bfe3b9
4
+ data.tar.gz: 37afe95e8d8aa72297e85236c00af489bc6a8502c9f8b3d079062ed7157fec02
5
5
  SHA512:
6
- metadata.gz: a9afae76cf81e4b70b60e41ec26e8c472ec243b5b8e306c1940c5bd14d2ce7749e13ed5b70ba016804021f7ce6b1c72c0248a72460cb1d363db14621adfd27e5
7
- data.tar.gz: cb80258751e28d76cc0fa3aac24512afbaa290be20eff2850687d95ec46f8b576cb7247570d7c01380771cc717af946708591ee49a155185d9f7f70a699a1f92
6
+ metadata.gz: d5f407ab7c8f5ca194efe7bdea42f90943b5f41c80fc5e2485f8d891afc076bbca76a0b016b75c9da96d598e436371ee8db7763b3771fd21942052e76825ba0e
7
+ data.tar.gz: 28d4d34fb76d0fdaaa9c81b00fdf53bc7422406e701cf343275b0a81aebe0faabdb516dcdd1186309fba94bedfe33328111a70e03842c6f5acd17ea5af400fb9
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- triviacrack (0.5.1)
4
+ triviacrack (0.6.0)
5
5
  faraday (~> 1.7.2)
6
+ json (~> 2.5.1)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
@@ -65,7 +66,6 @@ PLATFORMS
65
66
  DEPENDENCIES
66
67
  bundler (~> 2.2.27)
67
68
  fuubar (~> 2.5.1)
68
- json (~> 2.5.1)
69
69
  rake (~> 13.0.6)
70
70
  rspec (~> 3.10.0)
71
71
  rspec-its (~> 1.3.0)
@@ -1,3 +1,4 @@
1
+ require "json"
1
2
  require "faraday"
2
3
 
3
4
  require "triviacrack/errors/request_error"
@@ -16,8 +17,7 @@ module TriviaCrack
16
17
  # Returns a Faraday Response object with the server's response.
17
18
  # Raises TriviaCrack:Errors::RequestError if the request fails.
18
19
  def get(url, parameters: nil)
19
- response = Faraday.get "#{API_HOST}#{url}", params: parameters,
20
- headers: default_headers
20
+ response = Faraday.get "#{API_HOST}#{url}", parameters, default_headers
21
21
 
22
22
  check_response url, response
23
23
  end
@@ -31,8 +31,7 @@ module TriviaCrack
31
31
  # Returns a Faraday Response object with the server's response.
32
32
  # Raises TriviaCrack:Errors::RequestError if the request fails.
33
33
  def post(url, parameters: nil)
34
- response = Faraday.post "#{API_HOST}#{url}", body: parameters,
35
- headers: default_headers
34
+ response = Faraday.post "#{API_HOST}#{url}", parameters, default_headers
36
35
 
37
36
  check_response url, response
38
37
  end
@@ -61,7 +60,7 @@ module TriviaCrack
61
60
  #
62
61
  # response - Faraday response returned by the API.
63
62
  #
64
- # Returns the response object.
63
+ # Returns the response body parsed from JSON
65
64
  # Raises TriviaCrack:Errors::RequestError if the request failed.
66
65
  def check_response(url, response)
67
66
  if not response.status.between? 200, 299
@@ -69,7 +68,7 @@ module TriviaCrack
69
68
  "Request to #{API_HOST}#{url} failed with code #{response.status}."
70
69
  end
71
70
 
72
- response
71
+ JSON.parse(response.body)
73
72
  end
74
73
  end
75
74
  end
@@ -1,3 +1,4 @@
1
+ require "json"
1
2
  require "triviacrack/api/common"
2
3
  require "triviacrack/parsers/game_parser"
3
4
 
@@ -21,7 +22,7 @@ module TriviaCrack
21
22
  def get_games
22
23
  response = get "/api/users/#{@session.user_id}/dashboard"
23
24
 
24
- games_data = response.body["list"]
25
+ games_data = response["list"]
25
26
 
26
27
  games = []
27
28
  if games_data
@@ -48,7 +49,7 @@ module TriviaCrack
48
49
  def get_game(game_id)
49
50
  response = get "/api/users/#{@session.user_id}/games/#{game_id}"
50
51
 
51
- TriviaCrack::Parsers::GameParser.parse response.body
52
+ TriviaCrack::Parsers::GameParser.parse response
52
53
  end
53
54
 
54
55
  # Public: Uses the Trivia Crack API to start a new game for the current
@@ -62,9 +63,9 @@ module TriviaCrack
62
63
  # Raises TriviaCrack::Errors::RequestError if the request fails
63
64
  def start_new_game
64
65
  response = post "/api/users/#{@session.user_id}/games",
65
- parameters: { language: "EN" }.to_s
66
+ parameters: { language: "EN" }.to_json
66
67
 
67
- TriviaCrack::Parsers::GameParser.parse response.body
68
+ TriviaCrack::Parsers::GameParser.parse response
68
69
  end
69
70
 
70
71
  end
@@ -1,3 +1,4 @@
1
+ require "json"
1
2
  require "triviacrack/api/common"
2
3
  require "triviacrack/parsers/session_parser"
3
4
 
@@ -25,9 +26,9 @@ module TriviaCrack
25
26
  response = post "/api/login", parameters: { email: email,
26
27
  password: password,
27
28
  language: "en"
28
- }.to_s
29
+ }.to_json
29
30
 
30
- @session = TriviaCrack::Parsers::SessionParser.parse response.body
31
+ @session = TriviaCrack::Parsers::SessionParser.parse response
31
32
  end
32
33
 
33
34
  end
@@ -21,7 +21,7 @@ module TriviaCrack
21
21
  def get_profile(user_id)
22
22
  response = get "/api/users/#{@session.user_id}/profiles/#{user_id}"
23
23
 
24
- TriviaCrack::Parsers::ProfileParser.parse response.body
24
+ TriviaCrack::Parsers::ProfileParser.parse response
25
25
  end
26
26
 
27
27
  # Public: Uses the Trivia Crack API to get the profile of current user.
@@ -36,7 +36,7 @@ module TriviaCrack
36
36
  response =
37
37
  get "/api/users/#{@session.user_id}/profiles/#{@session.user_id}"
38
38
 
39
- TriviaCrack::Parsers::ProfileParser.parse response.body
39
+ TriviaCrack::Parsers::ProfileParser.parse response
40
40
  end
41
41
 
42
42
  end
@@ -1,3 +1,4 @@
1
+ require "json"
1
2
  require "triviacrack/api/common"
2
3
  require "triviacrack/parsers/game_parser"
3
4
 
@@ -31,9 +32,9 @@ module TriviaCrack
31
32
  answer: answer,
32
33
  category: question.category.upcase
33
34
  }]
34
- }.to_s
35
+ }.to_json
35
36
 
36
- game = TriviaCrack::Parsers::GameParser.parse response.body
37
+ game = TriviaCrack::Parsers::GameParser.parse response
37
38
 
38
39
  [game, answer == question.correct_answer]
39
40
  end
@@ -72,9 +73,9 @@ module TriviaCrack
72
73
 
73
74
  response =
74
75
  post "/api/users/#{@session.user_id}/games/#{game_id}/answers",
75
- parameters: { type: questions.first.type.upcase, answers: answers }.to_s
76
+ parameters: { type: questions.first.type.upcase, answers: answers }.to_json
76
77
 
77
- game = TriviaCrack::Parsers::GameParser.parse response.body
78
+ game = TriviaCrack::Parsers::GameParser.parse response
78
79
 
79
80
  [game, correct_answers]
80
81
  end
@@ -26,9 +26,7 @@ module TriviaCrack
26
26
  username = username[1..-1]
27
27
  end
28
28
 
29
- response = get "/api/search?username=#{username}"
30
-
31
- body = response.body
29
+ body = get "/api/search?username=#{username}"
32
30
 
33
31
  user_id = false
34
32
  body["list"].each do |user|
@@ -48,7 +46,7 @@ module TriviaCrack
48
46
  def get_user
49
47
  response = get "/api/users/#{@session.user_id}"
50
48
 
51
- TriviaCrack::Parsers::UserParser.parse response.body
49
+ TriviaCrack::Parsers::UserParser.parse response
52
50
  end
53
51
 
54
52
  end
@@ -1,4 +1,4 @@
1
1
  # Public: The version of this gem.
2
2
  module TriviaCrack
3
- VERSION = "0.5.1"
3
+ VERSION = "0.6.0"
4
4
  end
@@ -9,7 +9,7 @@ describe TriviaCrack::Parsers::CategoryStatisticsParser do
9
9
  let(:category_data) { raw_data["statistics"]["player_one_statistics"]["category_questions"] }
10
10
 
11
11
  context 'when given data from the games API' do
12
- let(:raw_data) { SpecData.get "game.json" }
12
+ let(:raw_data) { SpecData.get_json "game.json" }
13
13
 
14
14
  it { is_expected.to be_a TriviaCrack::CategoryStatistics }
15
15
  its(:category) { is_expected.to be :geography }
@@ -19,7 +19,7 @@ describe TriviaCrack::Parsers::CategoryStatisticsParser do
19
19
  end
20
20
 
21
21
  context 'when given data from the dashboard API' do
22
- let(:raw_data) { SpecData.get("dashboard.json")["list"][3] }
22
+ let(:raw_data) { SpecData.get_json("dashboard.json")["list"][3] }
23
23
 
24
24
  it { is_expected.to be_a TriviaCrack::CategoryStatistics }
25
25
  its(:category) { is_expected.to eq :arts }
@@ -29,7 +29,7 @@ describe TriviaCrack::Parsers::CategoryStatisticsParser do
29
29
  end
30
30
 
31
31
  context 'when given data from the answers API' do
32
- let(:raw_data) { SpecData.get "answer.json" }
32
+ let(:raw_data) { SpecData.get_json "answer.json" }
33
33
 
34
34
  it { is_expected.to be_a TriviaCrack::CategoryStatistics }
35
35
  its(:category) { is_expected.to eq :sports }
@@ -6,13 +6,13 @@ describe TriviaCrack::Parsers::GameParser do
6
6
 
7
7
  subject { TriviaCrack::Parsers::GameParser.parse raw_data }
8
8
 
9
- let(:game_data) { SpecData.get "game.json" }
10
- let(:dashboard_data) { SpecData.get "dashboard.json" }
11
- let(:answer_data) { SpecData.get "answer.json" }
12
- let(:new_game_data) { SpecData.get "new_game.json" }
9
+ let(:game_data) { SpecData.get_json "game.json" }
10
+ let(:dashboard_data) { SpecData.get_json "dashboard.json" }
11
+ let(:answer_data) { SpecData.get_json "answer.json" }
12
+ let(:new_game_data) { SpecData.get_json "new_game.json" }
13
13
 
14
14
  context 'when given data from the games API' do
15
- let(:raw_data) { SpecData.get "game.json" }
15
+ let(:raw_data) { SpecData.get_json "game.json" }
16
16
 
17
17
  it { is_expected.to be_a TriviaCrack::Game }
18
18
  its(:id) { is_expected.to be 1111 }
@@ -37,7 +37,7 @@ describe TriviaCrack::Parsers::GameParser do
37
37
  end
38
38
 
39
39
  context 'when given data from the dashboard API' do
40
- let(:raw_data) { SpecData.get("dashboard.json")["list"][3] }
40
+ let(:raw_data) { SpecData.get_json("dashboard.json")["list"][3] }
41
41
 
42
42
  it { is_expected.to be_a TriviaCrack::Game }
43
43
  its(:id) { is_expected.to be 1115 }
@@ -62,7 +62,7 @@ describe TriviaCrack::Parsers::GameParser do
62
62
  end
63
63
 
64
64
  context 'when given data from the answers API' do
65
- let(:raw_data) { SpecData.get "answer.json" }
65
+ let(:raw_data) { SpecData.get_json "answer.json" }
66
66
 
67
67
  it { is_expected.to be_a TriviaCrack::Game }
68
68
  its(:id) { is_expected.to be 1111 }
@@ -87,7 +87,7 @@ describe TriviaCrack::Parsers::GameParser do
87
87
  end
88
88
 
89
89
  context 'when given data from the new game API' do
90
- let(:raw_data) { SpecData.get "new_game.json" }
90
+ let(:raw_data) { SpecData.get_json "new_game.json" }
91
91
 
92
92
  it { is_expected.to be_a TriviaCrack::Game }
93
93
  its(:id) { is_expected.to be 2222 }
@@ -112,7 +112,7 @@ describe TriviaCrack::Parsers::GameParser do
112
112
  end
113
113
 
114
114
  context 'when given data from the games API and the game is a duel' do
115
- let(:raw_data) { SpecData.get "game_duel.json" }
115
+ let(:raw_data) { SpecData.get_json "game_duel.json" }
116
116
 
117
117
  it { is_expected.to be_a TriviaCrack::Game }
118
118
  its(:id) { is_expected.to be 1119 }
@@ -10,7 +10,7 @@ describe TriviaCrack::Parsers::GameStatisticsParser do
10
10
  before { statistics_data["crowns"] = raw_data["player_one"]["crowns"] }
11
11
 
12
12
  context 'when given data from the games API' do
13
- let(:raw_data) { SpecData.get "game.json" }
13
+ let(:raw_data) { SpecData.get_json "game.json" }
14
14
 
15
15
  it { is_expected.to be_a TriviaCrack::GameStatistics }
16
16
  its(:correct_answers) { is_expected.to be 12 }
@@ -21,7 +21,7 @@ describe TriviaCrack::Parsers::GameStatisticsParser do
21
21
  end
22
22
 
23
23
  context 'when given data from the dashboard API' do
24
- let(:raw_data) { SpecData.get("dashboard.json")["list"][3] }
24
+ let(:raw_data) { SpecData.get_json("dashboard.json")["list"][3] }
25
25
 
26
26
  it { is_expected.to be_a TriviaCrack::GameStatistics }
27
27
  its(:correct_answers) { is_expected.to be 13 }
@@ -32,7 +32,7 @@ describe TriviaCrack::Parsers::GameStatisticsParser do
32
32
  end
33
33
 
34
34
  context 'when given data from the answer API' do
35
- let(:raw_data) { SpecData.get "answer.json" }
35
+ let(:raw_data) { SpecData.get_json "answer.json" }
36
36
 
37
37
  it { is_expected.to be_a TriviaCrack::GameStatistics }
38
38
  its(:correct_answers) { is_expected.to be 13 }
@@ -43,7 +43,7 @@ describe TriviaCrack::Parsers::GameStatisticsParser do
43
43
  end
44
44
 
45
45
  context 'when given data from the new game API' do
46
- let(:raw_data) { SpecData.get "new_game.json" }
46
+ let(:raw_data) { SpecData.get_json "new_game.json" }
47
47
 
48
48
  it { is_expected.to be_a TriviaCrack::GameStatistics }
49
49
  its(:correct_answers) { is_expected.to be 0 }
@@ -7,7 +7,7 @@ describe TriviaCrack::Parsers::ProfileParser do
7
7
  subject { TriviaCrack::Parsers::ProfileParser.parse raw_data }
8
8
 
9
9
  context 'when given data from the profile API' do
10
- let(:raw_data) { SpecData.get "profile.json" }
10
+ let(:raw_data) { SpecData.get_json "profile.json" }
11
11
 
12
12
  it { is_expected.to be_a TriviaCrack::Profile }
13
13
  its(:id) { is_expected.to be 111 }
@@ -32,7 +32,7 @@ describe TriviaCrack::Parsers::ProfileParser do
32
32
  end
33
33
 
34
34
  context 'when given data from the current user profile API' do
35
- let(:raw_data) { SpecData.get "my_profile.json" }
35
+ let(:raw_data) { SpecData.get_json "my_profile.json" }
36
36
 
37
37
  it { is_expected.to be_a TriviaCrack::Profile }
38
38
  its(:id) { is_expected.to be 222 }
@@ -7,7 +7,7 @@ describe TriviaCrack::Parsers::QuestionParser do
7
7
  subject { TriviaCrack::Parsers::QuestionParser.parse raw_data }
8
8
 
9
9
  context 'when given data without an image' do
10
- let(:raw_data) { SpecData.get "question.json" }
10
+ let(:raw_data) { SpecData.get_json "question.json" }
11
11
 
12
12
  it { is_expected.to be_a TriviaCrack::Question }
13
13
  its(:type) { is_expected.to be :normal }
@@ -19,7 +19,7 @@ describe TriviaCrack::Parsers::QuestionParser do
19
19
  end
20
20
 
21
21
  context 'when given data with an image' do
22
- let(:raw_data) { SpecData.get "question_image.json" }
22
+ let(:raw_data) { SpecData.get_json "question_image.json" }
23
23
 
24
24
  it { is_expected.to be_a TriviaCrack::Question }
25
25
  its(:type) { is_expected.to be :normal }
@@ -7,7 +7,7 @@ describe TriviaCrack::Parsers::SessionParser do
7
7
  subject { TriviaCrack::Parsers::SessionParser.parse raw_data }
8
8
 
9
9
  context 'when given data from the login API' do
10
- let(:raw_data) { SpecData.get "login.json" }
10
+ let(:raw_data) { SpecData.get_json "login.json" }
11
11
 
12
12
  it { is_expected.to be_a TriviaCrack::Session }
13
13
  its(:user_id) { is_expected.to be 111 }
@@ -7,7 +7,7 @@ describe TriviaCrack::Parsers::UserParser do
7
7
  subject { TriviaCrack::Parsers::UserParser.parse raw_data }
8
8
 
9
9
  context 'when given data from the user API' do
10
- let(:raw_data) { SpecData.get "user.json" }
10
+ let(:raw_data) { SpecData.get_json "user.json" }
11
11
 
12
12
  it { is_expected.to be_a TriviaCrack::User }
13
13
  its(:id) { is_expected.to be 111 }
@@ -28,7 +28,7 @@ describe TriviaCrack::Parsers::UserParser do
28
28
  end
29
29
 
30
30
  context 'when given opponent data from the game API' do
31
- let(:raw_data) { SpecData.get("game.json")["opponent"] }
31
+ let(:raw_data) { SpecData.get_json("game.json")["opponent"] }
32
32
 
33
33
  it { is_expected.to be_a TriviaCrack::User }
34
34
  its(:id) { is_expected.to be 111 }
data/spec/spec_helper.rb CHANGED
@@ -33,6 +33,10 @@ require_relative "../lib/triviacrack/parsers/user_parser"
33
33
  class SpecData
34
34
 
35
35
  def self.get(filename)
36
+ File.read(File.expand_path("../data/#{filename}", __FILE__))
37
+ end
38
+
39
+ def self.get_json(filename)
36
40
  file = File.read(File.expand_path("../data/#{filename}", __FILE__))
37
41
  JSON.parse(file)
38
42
  end
data/triviacrack.gemspec CHANGED
@@ -25,8 +25,8 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "rake", "~> 13.0.6"
26
26
  spec.add_development_dependency "rspec", "~> 3.10.0"
27
27
  spec.add_development_dependency "rspec-its", "~> 1.3.0"
28
- spec.add_development_dependency "json", "~> 2.5.1"
29
28
  spec.add_development_dependency "fuubar", "~> 2.5.1"
30
29
 
30
+ spec.add_dependency "json", "~> 2.5.1"
31
31
  spec.add_dependency "faraday", "~> 1.7.2"
32
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: triviacrack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Kus
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.3.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: json
84
+ name: fuubar
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
@@ -95,13 +95,13 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: 2.5.1
97
97
  - !ruby/object:Gem::Dependency
98
- name: fuubar
98
+ name: json
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 2.5.1
104
- type: :development
104
+ type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements: