triviacrack 0.5.1 → 0.6.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 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: