triviacrack 0.6.0 → 0.7.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 +4 -4
- data/.github/workflows/ci.yml +7 -2
- data/.github/workflows/publish.yml +8 -3
- data/.rubocop.yml +23 -0
- data/.ruby-version +1 -1
- data/Gemfile +1 -2
- data/Gemfile.lock +31 -10
- data/Rakefile +4 -2
- data/lib/triviacrack/api/client.rb +7 -7
- data/lib/triviacrack/api/common.rb +10 -11
- data/lib/triviacrack/api/game.rb +11 -13
- data/lib/triviacrack/api/login.rb +7 -8
- data/lib/triviacrack/api/profile.rb +4 -4
- data/lib/triviacrack/api/question.rb +14 -15
- data/lib/triviacrack/api/user.rb +9 -11
- data/lib/triviacrack/category_statistics.rb +2 -2
- data/lib/triviacrack/errors/parse_error.rb +2 -0
- data/lib/triviacrack/errors/request_error.rb +5 -3
- data/lib/triviacrack/game.rb +3 -3
- data/lib/triviacrack/game_statistics.rb +3 -3
- data/lib/triviacrack/parsers/category_statistics_parser.rb +13 -15
- data/lib/triviacrack/parsers/game_parser.rb +39 -39
- data/lib/triviacrack/parsers/game_statistics_parser.rb +15 -15
- data/lib/triviacrack/parsers/profile_parser.rb +28 -28
- data/lib/triviacrack/parsers/question_parser.rb +11 -11
- data/lib/triviacrack/parsers/session_parser.rb +10 -10
- data/lib/triviacrack/parsers/time_parser.rb +4 -4
- data/lib/triviacrack/parsers/user_parser.rb +21 -21
- data/lib/triviacrack/profile.rb +3 -3
- data/lib/triviacrack/question.rb +3 -3
- data/lib/triviacrack/session.rb +2 -2
- data/lib/triviacrack/user.rb +3 -3
- data/lib/triviacrack/version.rb +3 -1
- data/lib/triviacrack.rb +12 -10
- data/spec/api/game_spec.rb +49 -29
- data/spec/api/login_spec.rb +22 -15
- data/spec/api/profile_spec.rb +34 -20
- data/spec/api/question_spec.rb +49 -30
- data/spec/api/user_spec.rb +31 -20
- data/spec/game_spec.rb +4 -4
- data/spec/parsers/category_statistics_parser_spec.rb +8 -8
- data/spec/parsers/game_parser_spec.rb +21 -19
- data/spec/parsers/game_statistics_parser_spec.rb +11 -11
- data/spec/parsers/profile_parser_spec.rb +10 -10
- data/spec/parsers/question_parser_spec.rb +15 -11
- data/spec/parsers/session_parser_spec.rb +8 -8
- data/spec/parsers/time_parser_spec.rb +5 -5
- data/spec/parsers/user_parser_spec.rb +11 -11
- data/spec/spec_helper.rb +30 -32
- data/spec/user_spec.rb +4 -4
- data/triviacrack.gemspec +21 -20
- metadata +32 -45
@@ -1,18 +1,18 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe ".parse" do
|
3
|
+
require 'spec_helper'
|
6
4
|
|
5
|
+
describe TriviaCrack::Parsers::GameParser do
|
6
|
+
describe '.parse' do
|
7
7
|
subject { TriviaCrack::Parsers::GameParser.parse raw_data }
|
8
8
|
|
9
|
-
let(:game_data) { SpecData.get_json
|
10
|
-
let(:dashboard_data) { SpecData.get_json
|
11
|
-
let(:answer_data) { SpecData.get_json
|
12
|
-
let(:new_game_data) { SpecData.get_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_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 }
|
@@ -31,13 +31,13 @@ describe TriviaCrack::Parsers::GameParser do
|
|
31
31
|
its(:status_version) { is_expected.to be 23 }
|
32
32
|
its(:available_crowns) { is_expected.to contain_exactly(:entertainment, :arts, :sports) }
|
33
33
|
its('questions.first') { is_expected.to be_a TriviaCrack::Question }
|
34
|
-
its('questions.first.id') { is_expected.to be
|
34
|
+
its('questions.first.id') { is_expected.to be 16_653_413 }
|
35
35
|
its(:my_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
36
36
|
its(:opponent_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
37
37
|
end
|
38
38
|
|
39
39
|
context 'when given data from the dashboard API' do
|
40
|
-
let(:raw_data) { SpecData.get_json(
|
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 }
|
@@ -56,13 +56,13 @@ describe TriviaCrack::Parsers::GameParser do
|
|
56
56
|
its(:status_version) { is_expected.to be 24 }
|
57
57
|
its(:available_crowns) { is_expected.to contain_exactly(:entertainment, :arts, :sports) }
|
58
58
|
its('questions.first') { is_expected.to be_a TriviaCrack::Question }
|
59
|
-
its('questions.first.id') { is_expected.to be
|
59
|
+
its('questions.first.id') { is_expected.to be 15_593_975 }
|
60
60
|
its(:my_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
61
61
|
its(:opponent_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
62
62
|
end
|
63
63
|
|
64
64
|
context 'when given data from the answers API' do
|
65
|
-
let(:raw_data) { SpecData.get_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 }
|
@@ -81,13 +81,13 @@ describe TriviaCrack::Parsers::GameParser do
|
|
81
81
|
its(:status_version) { is_expected.to be 24 }
|
82
82
|
its(:available_crowns) { is_expected.to contain_exactly(:entertainment, :arts, :sports) }
|
83
83
|
its('questions.first') { is_expected.to be_a TriviaCrack::Question }
|
84
|
-
its('questions.first.id') { is_expected.to be
|
84
|
+
its('questions.first.id') { is_expected.to be 15_593_975 }
|
85
85
|
its(:my_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
86
86
|
its(:opponent_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
87
87
|
end
|
88
88
|
|
89
89
|
context 'when given data from the new game API' do
|
90
|
-
let(:raw_data) { SpecData.get_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 }
|
@@ -104,15 +104,17 @@ describe TriviaCrack::Parsers::GameParser do
|
|
104
104
|
its(:is_random) { is_expected.to be true }
|
105
105
|
its(:unread_messages) { is_expected.to be 0 }
|
106
106
|
its(:status_version) { is_expected.to be 0 }
|
107
|
-
its(:available_crowns)
|
107
|
+
its(:available_crowns) do
|
108
|
+
is_expected.to contain_exactly(:arts, :entertainment, :geography, :history, :science, :sports)
|
109
|
+
end
|
108
110
|
its('questions.first') { is_expected.to be_a TriviaCrack::Question }
|
109
|
-
its('questions.first.id') { is_expected.to be
|
111
|
+
its('questions.first.id') { is_expected.to be 12_785 }
|
110
112
|
its(:my_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
111
113
|
its(:opponent_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
112
114
|
end
|
113
115
|
|
114
116
|
context 'when given data from the games API and the game is a duel' do
|
115
|
-
let(:raw_data) { SpecData.get_json
|
117
|
+
let(:raw_data) { SpecData.get_json 'game_duel.json' }
|
116
118
|
|
117
119
|
it { is_expected.to be_a TriviaCrack::Game }
|
118
120
|
its(:id) { is_expected.to be 1119 }
|
@@ -132,7 +134,7 @@ describe TriviaCrack::Parsers::GameParser do
|
|
132
134
|
its(:available_crowns) { is_expected.to contain_exactly(:entertainment, :science, :history, :sports) }
|
133
135
|
its('questions.size') { is_expected.to eq(7) }
|
134
136
|
its('questions.first') { is_expected.to be_a TriviaCrack::Question }
|
135
|
-
its('questions.first.id') { is_expected.to be
|
137
|
+
its('questions.first.id') { is_expected.to be 17_881_223 }
|
136
138
|
its(:my_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
137
139
|
its(:opponent_statistics) { is_expected.to be_a TriviaCrack::GameStatistics }
|
138
140
|
end
|
@@ -1,16 +1,16 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe ".parse" do
|
3
|
+
require 'spec_helper'
|
6
4
|
|
5
|
+
describe TriviaCrack::Parsers::GameStatisticsParser do
|
6
|
+
describe '.parse' do
|
7
7
|
subject { TriviaCrack::Parsers::GameStatisticsParser.parse statistics_data }
|
8
8
|
|
9
|
-
let(:statistics_data) { raw_data[
|
10
|
-
before { statistics_data[
|
9
|
+
let(:statistics_data) { raw_data['statistics']['player_one_statistics'] }
|
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_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_json(
|
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_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,14 +43,14 @@ 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_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 }
|
50
50
|
its(:incorrect_answers) { is_expected.to be 0 }
|
51
51
|
its(:challenges_won) { is_expected.to be 0 }
|
52
52
|
its(:questions_answered) { is_expected.to be 0 }
|
53
|
-
its(:crowns) { is_expected.to be_empty}
|
53
|
+
its(:crowns) { is_expected.to be_empty }
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
@@ -1,21 +1,21 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe ".parse" do
|
3
|
+
require 'spec_helper'
|
6
4
|
|
5
|
+
describe TriviaCrack::Parsers::ProfileParser do
|
6
|
+
describe '.parse' 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_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 }
|
14
14
|
its(:is_friend) { is_expected.to be false }
|
15
15
|
its(:is_blocked) { is_expected.to be false }
|
16
|
-
its(:username) { is_expected.to eq
|
16
|
+
its(:username) { is_expected.to eq 'example' }
|
17
17
|
its(:country) { is_expected.to be :us }
|
18
|
-
its(:email) { is_expected.to eq
|
18
|
+
its(:email) { is_expected.to eq 'user@example.com' }
|
19
19
|
its(:last_play) { is_expected.to be_a Time }
|
20
20
|
its(:last_login) { is_expected.to be_a Time }
|
21
21
|
its(:games_won) { is_expected.to be 530 }
|
@@ -32,15 +32,15 @@ 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_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 }
|
39
39
|
its(:is_friend) { is_expected.to be false }
|
40
40
|
its(:is_blocked) { is_expected.to be false }
|
41
|
-
its(:username) { is_expected.to eq
|
41
|
+
its(:username) { is_expected.to eq 'example2' }
|
42
42
|
its(:country) { is_expected.to be :ca }
|
43
|
-
its(:email) { is_expected.to eq
|
43
|
+
its(:email) { is_expected.to eq 'user2@example.com' }
|
44
44
|
its(:last_play) { is_expected.to be_a Time }
|
45
45
|
its(:last_login) { is_expected.to be_a Time }
|
46
46
|
its(:games_won) { is_expected.to be 37 }
|
@@ -1,34 +1,38 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe ".parse" do
|
3
|
+
require 'spec_helper'
|
6
4
|
|
5
|
+
describe TriviaCrack::Parsers::QuestionParser do
|
6
|
+
describe '.parse' 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_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 }
|
14
14
|
its(:media_type) { is_expected.to be :normal }
|
15
|
-
its(:text) { is_expected.to eq
|
15
|
+
its(:text) { is_expected.to eq 'Who recorded this album?' }
|
16
16
|
its(:correct_answer) { is_expected.to be 3 }
|
17
17
|
its(:category) { is_expected.to be :entertainment }
|
18
|
-
its(:answers)
|
18
|
+
its(:answers) do
|
19
|
+
is_expected.to contain_exactly 'Creedence Cleawater Revival', 'Bob Marley', 'blink-182', 'Jimmy Hendrix'
|
20
|
+
end
|
19
21
|
end
|
20
22
|
|
21
23
|
context 'when given data with an image' do
|
22
|
-
let(:raw_data) { SpecData.get_json
|
24
|
+
let(:raw_data) { SpecData.get_json 'question_image.json' }
|
23
25
|
|
24
26
|
it { is_expected.to be_a TriviaCrack::Question }
|
25
27
|
its(:type) { is_expected.to be :normal }
|
26
28
|
its(:media_type) { is_expected.to be :image }
|
27
|
-
its(:text) { is_expected.to eq
|
29
|
+
its(:text) { is_expected.to eq 'Who recorded this album?' }
|
28
30
|
its(:correct_answer) { is_expected.to be 3 }
|
29
31
|
its(:category) { is_expected.to be :entertainment }
|
30
|
-
its(:image_url) { is_expected.to eq
|
31
|
-
its(:answers)
|
32
|
+
its(:image_url) { is_expected.to eq 'http://qimg.preguntados.com/ENT_3028' }
|
33
|
+
its(:answers) do
|
34
|
+
is_expected.to contain_exactly 'Creedence Cleawater Revival', 'Bob Marley', 'blink-182', 'Jimmy Hendrix'
|
35
|
+
end
|
32
36
|
end
|
33
37
|
end
|
34
38
|
end
|
@@ -1,19 +1,19 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe ".parse" do
|
3
|
+
require 'spec_helper'
|
6
4
|
|
5
|
+
describe TriviaCrack::Parsers::SessionParser do
|
6
|
+
describe '.parse' 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_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 }
|
14
|
-
its(:username) { is_expected.to eq
|
15
|
-
its(:session_id) { is_expected.to eq
|
16
|
-
its(:device_key) { is_expected.to eq
|
14
|
+
its(:username) { is_expected.to eq 'example' }
|
15
|
+
its(:session_id) { is_expected.to eq 'session123' }
|
16
|
+
its(:device_key) { is_expected.to eq 'device123' }
|
17
17
|
its(:expiration) { is_expected.to be_a Time }
|
18
18
|
end
|
19
19
|
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe ".parse" do
|
3
|
+
require 'spec_helper'
|
6
4
|
|
5
|
+
describe TriviaCrack::Parsers::TimeParser do
|
6
|
+
describe '.parse' do
|
7
7
|
subject { TriviaCrack::Parsers::TimeParser.parse raw_data }
|
8
8
|
|
9
|
-
let(:raw_data) {
|
9
|
+
let(:raw_data) { '02/18/2015 00:11:33 EST' }
|
10
10
|
|
11
11
|
it { is_expected.to be_a Time }
|
12
12
|
its(:day) { is_expected.to be 18 }
|
@@ -1,19 +1,19 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
describe ".parse" do
|
3
|
+
require 'spec_helper'
|
6
4
|
|
5
|
+
describe TriviaCrack::Parsers::UserParser do
|
6
|
+
describe '.parse' 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_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 }
|
14
|
-
its(:username) { is_expected.to eq
|
15
|
-
its(:facebook_id) { is_expected.to eq
|
16
|
-
its(:facebook_name) { is_expected.to eq
|
14
|
+
its(:username) { is_expected.to eq 'example' }
|
15
|
+
its(:facebook_id) { is_expected.to eq '1' }
|
16
|
+
its(:facebook_name) { is_expected.to eq 'Example Name' }
|
17
17
|
its(:coins) { is_expected.to be 111 }
|
18
18
|
its(:lives) { is_expected.to be 3 }
|
19
19
|
its(:max_lives) { is_expected.to be 3 }
|
@@ -28,12 +28,12 @@ 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_json(
|
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 }
|
35
|
-
its(:username) { is_expected.to eq
|
36
|
-
its(:facebook_id) { is_expected.to eq
|
35
|
+
its(:username) { is_expected.to eq 'example.2' }
|
36
|
+
its(:facebook_id) { is_expected.to eq '' }
|
37
37
|
its(:facebook_name) { is_expected.to be nil }
|
38
38
|
its(:coins) { is_expected.to be nil }
|
39
39
|
its(:lives) { is_expected.to be nil }
|
data/spec/spec_helper.rb
CHANGED
@@ -1,37 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'simplecov'
|
2
4
|
SimpleCov.start
|
3
5
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
|
7
|
-
require_relative
|
8
|
-
require_relative
|
9
|
-
require_relative
|
10
|
-
require_relative
|
11
|
-
require_relative
|
12
|
-
require_relative
|
13
|
-
require_relative
|
14
|
-
|
15
|
-
require_relative
|
16
|
-
require_relative
|
17
|
-
require_relative
|
18
|
-
require_relative
|
19
|
-
require_relative
|
20
|
-
require_relative
|
21
|
-
|
22
|
-
require_relative
|
23
|
-
require_relative
|
24
|
-
|
25
|
-
require_relative
|
26
|
-
require_relative
|
27
|
-
require_relative
|
28
|
-
require_relative
|
29
|
-
require_relative
|
30
|
-
require_relative
|
31
|
-
require_relative
|
6
|
+
require 'json'
|
7
|
+
require 'rspec/its'
|
8
|
+
|
9
|
+
require_relative '../lib/triviacrack/category_statistics'
|
10
|
+
require_relative '../lib/triviacrack/game'
|
11
|
+
require_relative '../lib/triviacrack/game_statistics'
|
12
|
+
require_relative '../lib/triviacrack/profile'
|
13
|
+
require_relative '../lib/triviacrack/question'
|
14
|
+
require_relative '../lib/triviacrack/session'
|
15
|
+
require_relative '../lib/triviacrack/user'
|
16
|
+
|
17
|
+
require_relative '../lib/triviacrack/api/client'
|
18
|
+
require_relative '../lib/triviacrack/api/game'
|
19
|
+
require_relative '../lib/triviacrack/api/login'
|
20
|
+
require_relative '../lib/triviacrack/api/profile'
|
21
|
+
require_relative '../lib/triviacrack/api/question'
|
22
|
+
require_relative '../lib/triviacrack/api/user'
|
23
|
+
|
24
|
+
require_relative '../lib/triviacrack/errors/parse_error'
|
25
|
+
require_relative '../lib/triviacrack/errors/request_error'
|
26
|
+
|
27
|
+
require_relative '../lib/triviacrack/parsers/category_statistics_parser'
|
28
|
+
require_relative '../lib/triviacrack/parsers/game_parser'
|
29
|
+
require_relative '../lib/triviacrack/parsers/game_statistics_parser'
|
30
|
+
require_relative '../lib/triviacrack/parsers/profile_parser'
|
31
|
+
require_relative '../lib/triviacrack/parsers/question_parser'
|
32
|
+
require_relative '../lib/triviacrack/parsers/session_parser'
|
33
|
+
require_relative '../lib/triviacrack/parsers/user_parser'
|
32
34
|
|
33
35
|
class SpecData
|
34
|
-
|
35
36
|
def self.get(filename)
|
36
37
|
File.read(File.expand_path("../data/#{filename}", __FILE__))
|
37
38
|
end
|
@@ -40,13 +41,10 @@ class SpecData
|
|
40
41
|
file = File.read(File.expand_path("../data/#{filename}", __FILE__))
|
41
42
|
JSON.parse(file)
|
42
43
|
end
|
43
|
-
|
44
44
|
end
|
45
45
|
|
46
46
|
class APIStub
|
47
|
-
|
48
47
|
def initialize(session = nil)
|
49
48
|
@session = session
|
50
49
|
end
|
51
|
-
|
52
50
|
end
|
data/spec/user_spec.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative 'spec_helper'
|
4
4
|
|
5
|
+
describe TriviaCrack::User do
|
5
6
|
let(:user_id) { 111 }
|
6
7
|
let(:user) { TriviaCrack::User.new id: user_id, lives: lives, unlimited_lives: unlimited_lives }
|
7
8
|
|
8
|
-
describe
|
9
|
-
|
9
|
+
describe '#start_new_game?' do
|
10
10
|
subject { user.start_new_game? }
|
11
11
|
|
12
12
|
context 'when the user has one or more live' do
|
data/triviacrack.gemspec
CHANGED
@@ -1,32 +1,33 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'triviacrack/version'
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
8
|
+
spec.name = 'triviacrack'
|
8
9
|
spec.version = TriviaCrack::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
10
|
+
spec.authors = ['David Kus']
|
11
|
+
spec.email = ['david@kus.dk']
|
12
|
+
spec.summary = 'A Ruby interface to the Trivia Crack API.'
|
13
|
+
spec.description = 'A Ruby interface to the Trivia Crack API.'
|
14
|
+
spec.homepage = 'https://github.com/davidkus/triviacrack'
|
15
|
+
spec.license = 'MIT'
|
15
16
|
|
16
17
|
spec.files = `git ls-files -z`.split("\x0")
|
17
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
-
spec.
|
19
|
-
spec.require_paths = ["lib"]
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.required_ruby_version =
|
21
|
+
spec.required_ruby_version = '>= 2.5'
|
22
22
|
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
23
|
+
spec.add_development_dependency 'bundler', '~> 2.3.18'
|
24
|
+
spec.add_development_dependency 'fuubar', '~> 2.5.1'
|
25
|
+
spec.add_development_dependency 'rake', '~> 13.0.6'
|
26
|
+
spec.add_development_dependency 'rspec', '~> 3.10.0'
|
27
|
+
spec.add_development_dependency 'rspec-its', '~> 1.3.0'
|
28
|
+
spec.add_development_dependency 'rubocop', '~> 1.31.2'
|
29
|
+
spec.add_development_dependency 'simplecov', '~> 0.21.2'
|
29
30
|
|
30
|
-
spec.add_dependency
|
31
|
-
spec.add_dependency
|
31
|
+
spec.add_dependency 'faraday', '~> 1.7.2'
|
32
|
+
spec.add_dependency 'json', '~> 2.5.1'
|
32
33
|
end
|