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,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'triviacrack/category_statistics'
|
2
4
|
|
3
5
|
# Internal: This module is used to parse data returned from the Trivia Crack API
|
4
6
|
# into a ruby object that represents category statistics for a Trivia Crack
|
@@ -6,7 +8,6 @@ require "triviacrack/category_statistics"
|
|
6
8
|
module TriviaCrack
|
7
9
|
module Parsers
|
8
10
|
module CategoryStatisticsParser
|
9
|
-
|
10
11
|
# Internal: Parses data returned from the Trivia Crack API to create
|
11
12
|
# TriviaCrack::CategoryStatistics objects.
|
12
13
|
#
|
@@ -20,26 +21,23 @@ module TriviaCrack
|
|
20
21
|
#
|
21
22
|
# Returns a hash of TriviaCrack::CategoryStatistics objects, keyed by
|
22
23
|
# category.
|
23
|
-
def self.parse(raw_data)
|
24
|
+
def self.parse(raw_data) # rubocop:disable Metrics/MethodLength
|
24
25
|
categories = {}
|
25
26
|
|
26
|
-
|
27
|
-
|
28
|
-
category_name = category["category"].downcase.to_sym
|
27
|
+
raw_data&.each do |category|
|
28
|
+
category_name = category['category'].downcase.to_sym
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
end
|
30
|
+
categories[category_name] =
|
31
|
+
TriviaCrack::CategoryStatistics.new(
|
32
|
+
category: category_name,
|
33
|
+
correct: category['correct'],
|
34
|
+
incorrect: category['incorrect'],
|
35
|
+
worst: category['worst']
|
36
|
+
)
|
38
37
|
end
|
39
38
|
|
40
39
|
categories
|
41
40
|
end
|
42
|
-
|
43
41
|
end
|
44
42
|
end
|
45
43
|
end
|
@@ -1,15 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'triviacrack/game'
|
4
|
+
require 'triviacrack/parsers/game_statistics_parser'
|
5
|
+
require 'triviacrack/parsers/question_parser'
|
6
|
+
require 'triviacrack/parsers/time_parser'
|
7
|
+
require 'triviacrack/parsers/user_parser'
|
6
8
|
|
7
9
|
# Internal: This module is used to parse data returned from the Trivia Crack API
|
8
10
|
# into a ruby object that represents a Trivia Crack game.
|
9
11
|
module TriviaCrack
|
10
12
|
module Parsers
|
11
13
|
module GameParser
|
12
|
-
|
13
14
|
# Internal: Parses data returned from the Trivia Crack API to create a
|
14
15
|
# TriviaCrack::Game object.
|
15
16
|
#
|
@@ -22,59 +23,58 @@ module TriviaCrack
|
|
22
23
|
# game = TriviaCrack::Parsers::GameParser.parse raw_data
|
23
24
|
#
|
24
25
|
# Returns a TriviaCrack::Game.
|
25
|
-
def self.parse(raw_data)
|
26
|
+
def self.parse(raw_data) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
|
26
27
|
questions = []
|
27
|
-
if raw_data[
|
28
|
-
raw_data[
|
29
|
-
q_data = q_data[
|
30
|
-
q_data[
|
28
|
+
if raw_data['spins_data']
|
29
|
+
raw_data['spins_data']['spins'][0]['questions'].each do |q_data|
|
30
|
+
q_data = q_data['question']
|
31
|
+
q_data['type'] = raw_data['spins_data']['spins'][0]['type']
|
31
32
|
question = TriviaCrack::Parsers::QuestionParser.parse q_data
|
32
33
|
questions << question
|
33
34
|
end
|
34
|
-
if raw_data[
|
35
|
-
q_data = raw_data[
|
36
|
-
q_data[
|
35
|
+
if raw_data['spins_data']['spins'][0]['type'] == 'DUEL'
|
36
|
+
q_data = raw_data['spins_data']['spins'][0]['tie_break_question']
|
37
|
+
q_data['type'] = raw_data['spins_data']['spins'][0]['type']
|
37
38
|
question = TriviaCrack::Parsers::QuestionParser.parse q_data
|
38
39
|
questions << question
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
42
|
-
if raw_data[
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
43
|
+
crowns = if raw_data['available_crowns']
|
44
|
+
raw_data['available_crowns'].map { |c| c.downcase.to_sym }
|
45
|
+
else
|
46
|
+
[]
|
47
|
+
end
|
47
48
|
|
48
|
-
me = raw_data[
|
49
|
-
them = raw_data[
|
49
|
+
me = raw_data['my_player_number'] == 1 ? 'player_one' : 'player_two'
|
50
|
+
them = raw_data['my_player_number'] == 1 ? 'player_two' : 'player_one'
|
50
51
|
|
51
|
-
my_statistics = raw_data[
|
52
|
-
my_statistics[
|
52
|
+
my_statistics = raw_data['statistics']["#{me}_statistics"]
|
53
|
+
my_statistics['crowns'] = raw_data[me]['crowns']
|
53
54
|
|
54
|
-
opponent_statistics = raw_data[
|
55
|
-
opponent_statistics[
|
55
|
+
opponent_statistics = raw_data['statistics']["#{them}_statistics"]
|
56
|
+
opponent_statistics['crowns'] = raw_data[them]['crowns']
|
56
57
|
|
57
58
|
TriviaCrack::Game.new(
|
58
|
-
id: raw_data[
|
59
|
-
opponent: UserParser.parse(raw_data[
|
60
|
-
game_status: raw_data[
|
61
|
-
language: raw_data[
|
62
|
-
created: TimeParser.parse(raw_data[
|
63
|
-
last_turn: TimeParser.parse(raw_data[
|
64
|
-
type: raw_data[
|
65
|
-
expiration_date: TimeParser.parse(raw_data[
|
66
|
-
my_turn: raw_data[
|
67
|
-
round_number: raw_data[
|
68
|
-
is_random: raw_data[
|
69
|
-
unread_messages: raw_data[
|
70
|
-
status_version: raw_data[
|
59
|
+
id: raw_data['id'],
|
60
|
+
opponent: UserParser.parse(raw_data['opponent']),
|
61
|
+
game_status: raw_data['game_status'].downcase.to_sym,
|
62
|
+
language: raw_data['language'].downcase.to_sym,
|
63
|
+
created: TimeParser.parse(raw_data['created']),
|
64
|
+
last_turn: TimeParser.parse(raw_data['last_turn']),
|
65
|
+
type: raw_data['type'].downcase.to_sym,
|
66
|
+
expiration_date: TimeParser.parse(raw_data['expiration_date']),
|
67
|
+
my_turn: raw_data['my_turn'],
|
68
|
+
round_number: raw_data['round_number'],
|
69
|
+
is_random: raw_data['is_random'],
|
70
|
+
unread_messages: raw_data['unread_messages'],
|
71
|
+
status_version: raw_data['status_version'],
|
71
72
|
available_crowns: crowns,
|
72
73
|
questions: questions,
|
73
74
|
my_statistics: GameStatisticsParser.parse(my_statistics),
|
74
75
|
opponent_statistics: GameStatisticsParser.parse(opponent_statistics)
|
75
76
|
)
|
76
77
|
end
|
77
|
-
|
78
78
|
end
|
79
79
|
end
|
80
80
|
end
|
@@ -1,12 +1,13 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'triviacrack/game_statistics'
|
4
|
+
require 'triviacrack/parsers/category_statistics_parser'
|
3
5
|
|
4
6
|
# Internal: This module is used to parse data returned from the Trivia Crack API
|
5
7
|
# into a ruby object that represents player statistics for a Trivia Crack game.
|
6
8
|
module TriviaCrack
|
7
9
|
module Parsers
|
8
10
|
module GameStatisticsParser
|
9
|
-
|
10
11
|
# Internal: Parses data returned from the Trivia Crack API to create a
|
11
12
|
# TriviaCrack::GameStatistics object.
|
12
13
|
#
|
@@ -19,26 +20,25 @@ module TriviaCrack
|
|
19
20
|
# stats = TriviaCrack::Parsers::GameStatisticsParser.parse raw_data
|
20
21
|
#
|
21
22
|
# Returns a TriviaCrack::GameStatistics.
|
22
|
-
def self.parse(raw_data)
|
23
|
+
def self.parse(raw_data) # rubocop:disable Metrics/MethodLength
|
23
24
|
categories =
|
24
|
-
CategoryStatisticsParser.parse raw_data[
|
25
|
+
CategoryStatisticsParser.parse raw_data['category_questions']
|
25
26
|
|
26
|
-
if raw_data[
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
crowns = if raw_data['crowns']
|
28
|
+
raw_data['crowns'].map { |c| c.downcase.to_sym }
|
29
|
+
else
|
30
|
+
[]
|
31
|
+
end
|
31
32
|
|
32
33
|
TriviaCrack::GameStatistics.new(
|
33
|
-
correct_answers: raw_data[
|
34
|
-
incorrect_answers: raw_data[
|
35
|
-
questions_answered: raw_data[
|
36
|
-
challenges_won: raw_data[
|
34
|
+
correct_answers: raw_data['correct_answers'],
|
35
|
+
incorrect_answers: raw_data['incorrect_answers'],
|
36
|
+
questions_answered: raw_data['questions_answered'],
|
37
|
+
challenges_won: raw_data['challenges_won'],
|
37
38
|
crowns: crowns,
|
38
39
|
categories: categories
|
39
40
|
)
|
40
41
|
end
|
41
|
-
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -1,13 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'triviacrack/profile'
|
4
|
+
require 'triviacrack/parsers/category_statistics_parser'
|
5
|
+
require 'triviacrack/parsers/time_parser'
|
4
6
|
|
5
7
|
# Internal: This module is used to parse data returned from the Trivia Crack API
|
6
8
|
# into a ruby object that represents a Trivia Crack user profile.
|
7
9
|
module TriviaCrack
|
8
10
|
module Parsers
|
9
11
|
module ProfileParser
|
10
|
-
|
11
12
|
# Internal: Parses data returned from the Trivia Crack API to create a
|
12
13
|
# TriviaCrack::Profile object.
|
13
14
|
#
|
@@ -20,36 +21,35 @@ module TriviaCrack
|
|
20
21
|
# profile = TriviaCrack::Parsers::ProfileParser.parse raw_data
|
21
22
|
#
|
22
23
|
# Returns a TriviaCrack::Profile.
|
23
|
-
def self.parse(raw_data)
|
24
|
-
stats = raw_data[
|
25
|
-
versus = raw_data[
|
24
|
+
def self.parse(raw_data) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
25
|
+
stats = raw_data['statistics']
|
26
|
+
versus = raw_data['versus']
|
26
27
|
|
27
|
-
categories = CategoryStatisticsParser.parse stats[
|
28
|
+
categories = CategoryStatisticsParser.parse stats['category_questions']
|
28
29
|
|
29
30
|
TriviaCrack::Profile.new(
|
30
|
-
id: raw_data[
|
31
|
-
facebook_name: raw_data[
|
32
|
-
is_friend: raw_data[
|
33
|
-
is_blocked: raw_data[
|
34
|
-
username: raw_data[
|
35
|
-
country: raw_data[
|
36
|
-
email: raw_data[
|
37
|
-
last_play: TimeParser.parse(raw_data[
|
38
|
-
last_login: TimeParser.parse(raw_data[
|
39
|
-
games_won: stats[
|
40
|
-
games_lost: stats[
|
41
|
-
games_resigned: stats[
|
42
|
-
consecutive_games_won: stats[
|
43
|
-
consecutive_answers_correct: stats[
|
44
|
-
level: raw_data[
|
45
|
-
challenges_won: stats[
|
46
|
-
challenges_lost: stats[
|
31
|
+
id: raw_data['id'],
|
32
|
+
facebook_name: raw_data['facebook_name'],
|
33
|
+
is_friend: raw_data['is_friend'],
|
34
|
+
is_blocked: raw_data['is_blocked'],
|
35
|
+
username: raw_data['username'],
|
36
|
+
country: raw_data['country'].downcase.to_sym,
|
37
|
+
email: raw_data['email'],
|
38
|
+
last_play: TimeParser.parse(raw_data['last_play_date']),
|
39
|
+
last_login: TimeParser.parse(raw_data['last_log']),
|
40
|
+
games_won: stats['games_won'],
|
41
|
+
games_lost: stats['games_lost'],
|
42
|
+
games_resigned: stats['games_resigned'],
|
43
|
+
consecutive_games_won: stats['consecutive_games_won'],
|
44
|
+
consecutive_answers_correct: stats['consecutive_answers_correct'],
|
45
|
+
level: raw_data['level_data']['level'],
|
46
|
+
challenges_won: stats['challenges']['won'],
|
47
|
+
challenges_lost: stats['challenges']['lost'],
|
47
48
|
categories: categories,
|
48
|
-
my_wins_vs_user: versus ? versus[
|
49
|
-
my_losses_vs_user: versus ? versus[
|
49
|
+
my_wins_vs_user: versus ? versus['won'] : nil,
|
50
|
+
my_losses_vs_user: versus ? versus['lost'] : nil
|
50
51
|
)
|
51
52
|
end
|
52
|
-
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -1,11 +1,12 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'triviacrack/question'
|
2
4
|
|
3
5
|
# Internal: This module is used to parse data returned from the Trivia Crack API
|
4
6
|
# into a ruby object that represents a Trivia Crack question.
|
5
7
|
module TriviaCrack
|
6
8
|
module Parsers
|
7
9
|
module QuestionParser
|
8
|
-
|
9
10
|
# Internal: Parses data returned from the Trivia Crack API to create a
|
10
11
|
# TriviaCrack::Question object.
|
11
12
|
#
|
@@ -20,17 +21,16 @@ module TriviaCrack
|
|
20
21
|
# Returns a TriviaCrack::Question.
|
21
22
|
def self.parse(raw_data)
|
22
23
|
TriviaCrack::Question.new(
|
23
|
-
id: raw_data[
|
24
|
-
type: raw_data[
|
25
|
-
category: raw_data[
|
26
|
-
text: raw_data[
|
27
|
-
answers: raw_data[
|
28
|
-
correct_answer: raw_data[
|
29
|
-
media_type: raw_data[
|
30
|
-
image_url: raw_data[
|
24
|
+
id: raw_data['id'],
|
25
|
+
type: raw_data['type'].downcase.to_sym,
|
26
|
+
category: raw_data['category'].downcase.to_sym,
|
27
|
+
text: raw_data['text'],
|
28
|
+
answers: raw_data['answers'],
|
29
|
+
correct_answer: raw_data['correct_answer'],
|
30
|
+
media_type: raw_data['media_type'].downcase.to_sym,
|
31
|
+
image_url: raw_data['base_url']
|
31
32
|
)
|
32
33
|
end
|
33
|
-
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -1,12 +1,13 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'triviacrack/session'
|
4
|
+
require 'triviacrack/parsers/time_parser'
|
3
5
|
|
4
6
|
# Internal: This module is used to parse data returned from the Trivia Crack API
|
5
7
|
# into a ruby object that represents a Trivia Crack session.
|
6
8
|
module TriviaCrack
|
7
9
|
module Parsers
|
8
10
|
module SessionParser
|
9
|
-
|
10
11
|
# Internal: Parses data returned from the Trivia Crack API to create a
|
11
12
|
# TriviaCrack::Session object.
|
12
13
|
#
|
@@ -20,17 +21,16 @@ module TriviaCrack
|
|
20
21
|
#
|
21
22
|
# Returns a TriviaCrack::Session.
|
22
23
|
def self.parse(raw_data)
|
23
|
-
expiration = TimeParser.parse raw_data[
|
24
|
+
expiration = TimeParser.parse raw_data['session']['expirationTime']
|
24
25
|
|
25
26
|
TriviaCrack::Session.new(
|
26
|
-
session_id: raw_data[
|
27
|
-
user_id: raw_data[
|
28
|
-
username: raw_data[
|
29
|
-
device_key: raw_data[
|
27
|
+
session_id: raw_data['session']['session'],
|
28
|
+
user_id: raw_data['id'],
|
29
|
+
username: raw_data['username'],
|
30
|
+
device_key: raw_data['session']['deviceKey'],
|
30
31
|
expiration: expiration
|
31
32
|
)
|
32
33
|
end
|
33
|
-
|
34
34
|
end
|
35
35
|
end
|
36
|
-
end
|
36
|
+
end
|
@@ -1,12 +1,13 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'time'
|
2
4
|
|
3
5
|
# Internal: This module is used to parse date_time strings returned by the
|
4
6
|
# Trivia Crack API.
|
5
7
|
module TriviaCrack
|
6
8
|
module Parsers
|
7
9
|
module TimeParser
|
8
|
-
|
9
|
-
TIME_FORMAT = "%m/%d/%Y %H:%M:%S"
|
10
|
+
TIME_FORMAT = '%m/%d/%Y %H:%M:%S'
|
10
11
|
|
11
12
|
# Internal: Parses a date_time string returned by the Trivia Crack API.
|
12
13
|
#
|
@@ -20,7 +21,6 @@ module TriviaCrack
|
|
20
21
|
def self.parse(raw_data)
|
21
22
|
Time.strptime(raw_data, TIME_FORMAT)
|
22
23
|
end
|
23
|
-
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -1,11 +1,12 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'triviacrack/user'
|
2
4
|
|
3
5
|
# Internal: This module is used to parse data returned from the Trivia Crack API
|
4
6
|
# into a ruby object that represents a Trivia Crack user.
|
5
7
|
module TriviaCrack
|
6
8
|
module Parsers
|
7
9
|
module UserParser
|
8
|
-
|
9
10
|
# Internal: Parses data returned from the Trivia Crack API to create a
|
10
11
|
# TriviaCrack::User object.
|
11
12
|
#
|
@@ -18,30 +19,29 @@ module TriviaCrack
|
|
18
19
|
# user = TriviaCrack::Parsers::UserParser.parse raw_data
|
19
20
|
#
|
20
21
|
# Returns a TriviaCrack::User.
|
21
|
-
def self.parse(raw_data)
|
22
|
-
lives = raw_data[
|
23
|
-
level_data = raw_data[
|
24
|
-
country = raw_data[
|
22
|
+
def self.parse(raw_data) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
|
23
|
+
lives = raw_data['lives']
|
24
|
+
level_data = raw_data['level_data']
|
25
|
+
country = raw_data['country']
|
25
26
|
|
26
27
|
TriviaCrack::User.new(
|
27
|
-
id: raw_data[
|
28
|
-
username: raw_data[
|
29
|
-
facebook_id: raw_data[
|
30
|
-
facebook_name: raw_data[
|
31
|
-
coins: raw_data[
|
32
|
-
lives: lives ? lives[
|
33
|
-
max_lives: lives ? lives[
|
34
|
-
unlimited_lives: lives ? lives[
|
28
|
+
id: raw_data['id'],
|
29
|
+
username: raw_data['username'],
|
30
|
+
facebook_id: raw_data['facebook_id'],
|
31
|
+
facebook_name: raw_data['facebook_name'],
|
32
|
+
coins: raw_data['coins'],
|
33
|
+
lives: lives ? lives['quantity'] : nil,
|
34
|
+
max_lives: lives ? lives['max'] : nil,
|
35
|
+
unlimited_lives: lives ? lives['unlimited'] : nil,
|
35
36
|
country: country ? country.downcase.to_sym : nil,
|
36
|
-
extra_shots: raw_data[
|
37
|
-
level: level_data ? level_data[
|
38
|
-
level_points: level_data ? level_data[
|
39
|
-
level_progress: level_data ? level_data[
|
40
|
-
goal_points: level_data ? level_data[
|
41
|
-
level_up: level_data ? level_data[
|
37
|
+
extra_shots: raw_data['extra_shots'],
|
38
|
+
level: level_data ? level_data['level'] : nil,
|
39
|
+
level_points: level_data ? level_data['points'] : nil,
|
40
|
+
level_progress: level_data ? level_data['progress'] : nil,
|
41
|
+
goal_points: level_data ? level_data['goal_points'] : nil,
|
42
|
+
level_up: level_data ? level_data['level_up'] : nil
|
42
43
|
)
|
43
44
|
end
|
44
|
-
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
data/lib/triviacrack/profile.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Public: An object containing the Trivia Crack profile information of a user.
|
2
4
|
module TriviaCrack
|
3
5
|
class Profile
|
4
|
-
|
5
6
|
# Public: The unique identifier of the user.
|
6
7
|
attr_reader :id
|
7
8
|
|
@@ -63,7 +64,7 @@ module TriviaCrack
|
|
63
64
|
# Public: Number of games lost against the requesting user.
|
64
65
|
attr_reader :my_losses_vs_user
|
65
66
|
|
66
|
-
def initialize(id: nil, facebook_name: nil, is_friend: nil, is_blocked: nil,
|
67
|
+
def initialize(id: nil, facebook_name: nil, is_friend: nil, is_blocked: nil, # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/ParameterLists
|
67
68
|
username: nil, country: nil, email: nil, last_play: nil,
|
68
69
|
last_login: nil, games_won: nil, games_lost: nil,
|
69
70
|
games_resigned: nil, consecutive_games_won: nil,
|
@@ -91,6 +92,5 @@ module TriviaCrack
|
|
91
92
|
@my_wins_vs_user = my_wins_vs_user
|
92
93
|
@my_losses_vs_user = my_losses_vs_user
|
93
94
|
end
|
94
|
-
|
95
95
|
end
|
96
96
|
end
|
data/lib/triviacrack/question.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Public: An object representing a Trivia Crack Question, including the list of
|
2
4
|
# available answers as well as the correct answer.
|
3
5
|
module TriviaCrack
|
4
6
|
class Question
|
5
|
-
|
6
7
|
# Public: The unique identifier of the question.
|
7
8
|
attr_reader :id
|
8
9
|
|
@@ -27,7 +28,7 @@ module TriviaCrack
|
|
27
28
|
# Public: The URL for the image.
|
28
29
|
attr_reader :image_url
|
29
30
|
|
30
|
-
def initialize(id:, type: nil, category: nil, text: nil, answers: nil,
|
31
|
+
def initialize(id:, type: nil, category: nil, text: nil, answers: nil, # rubocop:disable Metrics/ParameterLists
|
31
32
|
correct_answer: nil, media_type: nil, image_url: nil)
|
32
33
|
@id = id
|
33
34
|
@type = type
|
@@ -38,6 +39,5 @@ module TriviaCrack
|
|
38
39
|
@media_type = media_type
|
39
40
|
@image_url = image_url
|
40
41
|
end
|
41
|
-
|
42
42
|
end
|
43
43
|
end
|
data/lib/triviacrack/session.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Public: An object representing a Trivia Crack Session.
|
2
4
|
module TriviaCrack
|
3
5
|
class Session
|
4
|
-
|
5
6
|
# Public: The session id.
|
6
7
|
attr_reader :session_id
|
7
8
|
|
@@ -25,6 +26,5 @@ module TriviaCrack
|
|
25
26
|
@device_key = device_key
|
26
27
|
@expiration = expiration
|
27
28
|
end
|
28
|
-
|
29
29
|
end
|
30
30
|
end
|
data/lib/triviacrack/user.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Public: An object representing a Trivia Crack User, including information
|
2
4
|
# about the user's level, lives and coins.
|
3
5
|
module TriviaCrack
|
4
6
|
class User
|
5
|
-
|
6
7
|
# Public: The unique identifier of the user.
|
7
8
|
attr_reader :id
|
8
9
|
|
@@ -51,7 +52,7 @@ module TriviaCrack
|
|
51
52
|
# Public: Boolean indicating whether the user has leveled up.
|
52
53
|
attr_reader :level_up
|
53
54
|
|
54
|
-
def initialize(id:, username: nil, facebook_id: nil, facebook_name: nil,
|
55
|
+
def initialize(id:, username: nil, facebook_id: nil, facebook_name: nil, # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists
|
55
56
|
coins: nil, lives: nil, max_lives: nil, unlimited_lives: nil,
|
56
57
|
country: nil, extra_shots: nil, level: nil,
|
57
58
|
level_points: nil, level_progress: nil, goal_points: nil,
|
@@ -86,6 +87,5 @@ module TriviaCrack
|
|
86
87
|
def start_new_game?
|
87
88
|
@lives >= 1 || @unlimited_lives
|
88
89
|
end
|
89
|
-
|
90
90
|
end
|
91
91
|
end
|
data/lib/triviacrack/version.rb
CHANGED
data/lib/triviacrack.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
|
2
|
-
require "triviacrack/game"
|
3
|
-
require "triviacrack/game_statistics"
|
4
|
-
require "triviacrack/profile"
|
5
|
-
require "triviacrack/question"
|
6
|
-
require "triviacrack/user"
|
7
|
-
require "triviacrack/version"
|
1
|
+
# frozen_string_literal: true
|
8
2
|
|
9
|
-
require
|
3
|
+
require 'triviacrack/category_statistics'
|
4
|
+
require 'triviacrack/game'
|
5
|
+
require 'triviacrack/game_statistics'
|
6
|
+
require 'triviacrack/profile'
|
7
|
+
require 'triviacrack/question'
|
8
|
+
require 'triviacrack/user'
|
9
|
+
require 'triviacrack/version'
|
10
10
|
|
11
|
-
require
|
12
|
-
|
11
|
+
require 'triviacrack/api/client'
|
12
|
+
|
13
|
+
require 'triviacrack/errors/parse_error'
|
14
|
+
require 'triviacrack/errors/request_error'
|