lib/triviacrack/parsers/game_parser.rb in triviacrack-0.6.0 vs lib/triviacrack/parsers/game_parser.rb in triviacrack-0.7.0
- old
+ new
@@ -1,17 +1,18 @@
-require "triviacrack/game"
-require "triviacrack/parsers/game_statistics_parser"
-require "triviacrack/parsers/question_parser"
-require "triviacrack/parsers/time_parser"
-require "triviacrack/parsers/user_parser"
+# frozen_string_literal: true
+require 'triviacrack/game'
+require 'triviacrack/parsers/game_statistics_parser'
+require 'triviacrack/parsers/question_parser'
+require 'triviacrack/parsers/time_parser'
+require 'triviacrack/parsers/user_parser'
+
# Internal: This module is used to parse data returned from the Trivia Crack API
# into a ruby object that represents a Trivia Crack game.
module TriviaCrack
module Parsers
module GameParser
-
# Internal: Parses data returned from the Trivia Crack API to create a
# TriviaCrack::Game object.
#
# raw_data - A hash of the raw data returned by the Trivia Crack API.
#
@@ -20,61 +21,60 @@
# raw_data = get_raw_data_from_API
# ...
# game = TriviaCrack::Parsers::GameParser.parse raw_data
#
# Returns a TriviaCrack::Game.
- def self.parse(raw_data)
+ def self.parse(raw_data) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity
questions = []
- if raw_data["spins_data"]
- raw_data["spins_data"]["spins"][0]["questions"].each do |q_data|
- q_data = q_data["question"]
- q_data["type"] = raw_data["spins_data"]["spins"][0]["type"]
+ if raw_data['spins_data']
+ raw_data['spins_data']['spins'][0]['questions'].each do |q_data|
+ q_data = q_data['question']
+ q_data['type'] = raw_data['spins_data']['spins'][0]['type']
question = TriviaCrack::Parsers::QuestionParser.parse q_data
questions << question
end
- if raw_data["spins_data"]["spins"][0]["type"] == "DUEL"
- q_data = raw_data["spins_data"]["spins"][0]["tie_break_question"]
- q_data["type"] = raw_data["spins_data"]["spins"][0]["type"]
+ if raw_data['spins_data']['spins'][0]['type'] == 'DUEL'
+ q_data = raw_data['spins_data']['spins'][0]['tie_break_question']
+ q_data['type'] = raw_data['spins_data']['spins'][0]['type']
question = TriviaCrack::Parsers::QuestionParser.parse q_data
questions << question
end
end
- if raw_data["available_crowns"]
- crowns = raw_data["available_crowns"].map { |c| c.downcase.to_sym }
- else
- crowns = []
- end
+ crowns = if raw_data['available_crowns']
+ raw_data['available_crowns'].map { |c| c.downcase.to_sym }
+ else
+ []
+ end
- me = raw_data["my_player_number"] == 1 ? "player_one" : "player_two"
- them = raw_data["my_player_number"] == 1 ? "player_two" : "player_one"
+ me = raw_data['my_player_number'] == 1 ? 'player_one' : 'player_two'
+ them = raw_data['my_player_number'] == 1 ? 'player_two' : 'player_one'
- my_statistics = raw_data["statistics"]["#{me}_statistics"]
- my_statistics["crowns"] = raw_data[me]["crowns"]
+ my_statistics = raw_data['statistics']["#{me}_statistics"]
+ my_statistics['crowns'] = raw_data[me]['crowns']
- opponent_statistics = raw_data["statistics"]["#{them}_statistics"]
- opponent_statistics["crowns"] = raw_data[them]["crowns"]
+ opponent_statistics = raw_data['statistics']["#{them}_statistics"]
+ opponent_statistics['crowns'] = raw_data[them]['crowns']
TriviaCrack::Game.new(
- id: raw_data["id"],
- opponent: UserParser.parse(raw_data["opponent"]),
- game_status: raw_data["game_status"].downcase.to_sym,
- language: raw_data["language"].downcase.to_sym,
- created: TimeParser.parse(raw_data["created"]),
- last_turn: TimeParser.parse(raw_data["last_turn"]),
- type: raw_data["type"].downcase.to_sym,
- expiration_date: TimeParser.parse(raw_data["expiration_date"]),
- my_turn: raw_data["my_turn"],
- round_number: raw_data["round_number"],
- is_random: raw_data["is_random"],
- unread_messages: raw_data["unread_messages"],
- status_version: raw_data["status_version"],
+ id: raw_data['id'],
+ opponent: UserParser.parse(raw_data['opponent']),
+ game_status: raw_data['game_status'].downcase.to_sym,
+ language: raw_data['language'].downcase.to_sym,
+ created: TimeParser.parse(raw_data['created']),
+ last_turn: TimeParser.parse(raw_data['last_turn']),
+ type: raw_data['type'].downcase.to_sym,
+ expiration_date: TimeParser.parse(raw_data['expiration_date']),
+ my_turn: raw_data['my_turn'],
+ round_number: raw_data['round_number'],
+ is_random: raw_data['is_random'],
+ unread_messages: raw_data['unread_messages'],
+ status_version: raw_data['status_version'],
available_crowns: crowns,
questions: questions,
my_statistics: GameStatisticsParser.parse(my_statistics),
opponent_statistics: GameStatisticsParser.parse(opponent_statistics)
)
end
-
end
end
end