Module: GameDig

Defined in:
lib/game_dig.rb,
lib/game_dig/nodo.rb,
lib/game_dig/helper.rb,
lib/game_dig/version.rb,
lib/custom_errors/error.rb,
lib/game_dig/query_result.rb,
lib/custom_errors/cli_not_found.rb

Overview

GameDig

Defined Under Namespace

Classes: CliNotFound, Error, Helper, Nodo, QueryResult

Constant Summary collapse

DEBUG_MESSAGE_END =

When gamedig debug is enabled, this string marks the end of debug output and the beginning of JSON output

'Q#0 Query was successful'
VERSION =
'0.2.0'.freeze

Class Method Summary collapse

Class Method Details

.query(type:, host:, address: nil, port: nil, max_retries: nil, socket_timeout: nil, attempt_timeout: nil, given_port_only: nil, ip_family: nil, debug: nil, request_rules: nil, request_players: nil, request_rules_required: nil, request_players_required: nil, strip_colors: nil, port_cache: nil, no_breadth_order: nil, check_old_ids: nil) ⇒ GameDig::QueryResult

Query a server for insight data. Raises GameDig::Error on failure.

‘type’ and ‘host’ are required parameters, all others are optional.



50
51
52
53
54
55
56
57
58
59
# File 'lib/game_dig.rb', line 50

def self.query(type:, host:, address: nil, port: nil, max_retries: nil, socket_timeout: nil, attempt_timeout: nil, given_port_only: nil, ip_family: nil, debug: nil, request_rules: nil, request_players: nil, request_rules_required: nil, request_players_required: nil, strip_colors: nil, port_cache: nil, no_breadth_order: nil, check_old_ids: nil)
  result = if ENV['GAMEDIG_MODE'] == 'cli'
    perform_cli_query(type: type, host: host, address: address, port: port, max_retries: max_retries, socket_timeout: socket_timeout, attempt_timeout: attempt_timeout, given_port_only: given_port_only, ip_family: ip_family, debug: debug, request_rules: request_rules, request_players: request_players, request_rules_required: request_rules_required, request_players_required: request_players_required, strip_colors: strip_colors, port_cache: port_cache, no_breadth_order: no_breadth_order, check_old_ids: check_old_ids)
  elsif ENV['GAMEDIG_MODE'] == 'nodo'
    perform_nodo_query(type: type, host: host, address: address, port: port, max_retries: max_retries, socket_timeout: socket_timeout, attempt_timeout: attempt_timeout, given_port_only: given_port_only, ip_family: ip_family, debug: debug, request_rules: request_rules, request_players: request_players, request_rules_required: request_rules_required, request_players_required: request_players_required, strip_colors: strip_colors, port_cache: port_cache, no_breadth_order: no_breadth_order, check_old_ids: check_old_ids)
  else
    raise "Unsupported GAMEDIG_MODE: #{ENV['GAMEDIG_MODE']}. Supported modes are 'cli' and 'nodo'."
  end
  GameDig::QueryResult.new(result)
end