game_dig 0.0.1 → 0.1.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/.gitignore +7 -1
 - data/README.md +5 -2
 - data/Rakefile +8 -0
 - data/cli/pry_service.rb +5 -0
 - data/lib/game_dig/game_dig_helper.rb +68 -0
 - data/lib/game_dig/service.rb +38 -0
 - data/lib/game_dig/version.rb +1 -1
 - data/lib/game_dig.rb +43 -19
 - data/lib/node/gamedig-service.js +46 -0
 - data/lib/node/package.json +9 -0
 - metadata +7 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 1606417a646f32a9d14cf9c257d469059ec2cee23135750b869e1347224e61bd
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 79f5027b3737ee03265083ada485ce45a4cd1998550076b10bc802116f33a9bd
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 8003e414913f228ea043a64904f0a477dac28fb2881086f5ac89bbf6d52d6f3b0c5dc1dd8c2f594d48dbc126fddb4dfa88767d77c0beb965ad907e150fdf3858
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: acf5a2889986077010cc105cdf8324d692284fd91db41deaac8e7d1a383c219779d9e8e56c94a08ca6a5713e9286022072185da066e662764a7eb5f8fa800720
         
     | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -69,8 +69,11 @@ This will just run the gamedig cli and return its result. 
     | 
|
| 
       69 
69 
     | 
    
         
             
                p data
         
     | 
| 
       70 
70 
     | 
    
         
             
            ```
         
     | 
| 
       71 
71 
     | 
    
         | 
| 
       72 
     | 
    
         
            -
            ### Service wrapper ( 
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
      
 72 
     | 
    
         
            +
            ### Service wrapper (experimental, only did some testing on linux)
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            Only the following parameters are implemented for the service wrapper: `type, host, protocol` (version 0.1.0)
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            Behaves the same to the user, but runs a tiny node webservice in the background to avoid startup times when called more than one time.
         
     | 
| 
       74 
77 
     | 
    
         | 
| 
       75 
78 
     | 
    
         
             
            ```
         
     | 
| 
       76 
79 
     | 
    
         
             
            your-ruby-app 
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -19,4 +19,12 @@ task :cli do |t| 
     | 
|
| 
       19 
19 
     | 
    
         
             
              require_relative 'cli/pry'
         
     | 
| 
       20 
20 
     | 
    
         
             
            end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
      
 22 
     | 
    
         
            +
            desc "start service cli to play with the environment"
         
     | 
| 
      
 23 
     | 
    
         
            +
            task :cli_service do |t|
         
     | 
| 
      
 24 
     | 
    
         
            +
              puts
         
     | 
| 
      
 25 
     | 
    
         
            +
              puts %{ Starting CLI ... }.red
         
     | 
| 
      
 26 
     | 
    
         
            +
              puts
         
     | 
| 
      
 27 
     | 
    
         
            +
              require_relative 'cli/pry_service'
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       22 
30 
     | 
    
         
             
            RSpec::Core::RakeTask.new(:spec)
         
     | 
    
        data/cli/pry_service.rb
    ADDED
    
    
| 
         @@ -0,0 +1,68 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'uri'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'net/http'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            class GameDigHelper
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              def self.node_service_running?
         
     | 
| 
      
 9 
     | 
    
         
            +
                port_open? '127.0.0.1', 24445
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              def self.stop_node_service
         
     | 
| 
      
 15 
     | 
    
         
            +
                begin
         
     | 
| 
      
 16 
     | 
    
         
            +
                  uri = URI("http://127.0.0.1:24445/exit")
         
     | 
| 
      
 17 
     | 
    
         
            +
                  res = Net::HTTP.get_response(uri)
         
     | 
| 
      
 18 
     | 
    
         
            +
                rescue Errno::ECONNREFUSED => e
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # will be refused, as /exit closes the server and makes no more response
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              #
         
     | 
| 
      
 26 
     | 
    
         
            +
              # Check if gamedig cli is installed globally
         
     | 
| 
      
 27 
     | 
    
         
            +
              #
         
     | 
| 
      
 28 
     | 
    
         
            +
              # @return [Boolean]
         
     | 
| 
      
 29 
     | 
    
         
            +
              def self.cli_installed?()
         
     | 
| 
      
 30 
     | 
    
         
            +
                !!(which 'gamedig')
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              def self.which(cmd)
         
     | 
| 
      
 36 
     | 
    
         
            +
                exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
         
     | 
| 
      
 37 
     | 
    
         
            +
                ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
         
     | 
| 
      
 38 
     | 
    
         
            +
                  exts.each do |ext|
         
     | 
| 
      
 39 
     | 
    
         
            +
                    exe = File.join(path, "#{cmd}#{ext}")
         
     | 
| 
      
 40 
     | 
    
         
            +
                    return exe if File.executable?(exe) && !File.directory?(exe)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
                nil
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              private
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
              def self.port_open?(ip, port, seconds = 0.5)
         
     | 
| 
      
 53 
     | 
    
         
            +
                # => checks if a port is open or not on a remote host
         
     | 
| 
      
 54 
     | 
    
         
            +
                Timeout::timeout(seconds) do
         
     | 
| 
      
 55 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 56 
     | 
    
         
            +
                    TCPSocket.new(ip, port).close
         
     | 
| 
      
 57 
     | 
    
         
            +
                    true
         
     | 
| 
      
 58 
     | 
    
         
            +
                  rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH, SocketError
         
     | 
| 
      
 59 
     | 
    
         
            +
                    false
         
     | 
| 
      
 60 
     | 
    
         
            +
                  end
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
              rescue Timeout::Error
         
     | 
| 
      
 63 
     | 
    
         
            +
                false
         
     | 
| 
      
 64 
     | 
    
         
            +
              end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'uri'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'net/http'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'benchmark'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require_relative 'game_dig_helper'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            node_js_app_base_path = File.expand_path(File.dirname(__FILE__) + '/../node/')
         
     | 
| 
      
 8 
     | 
    
         
            +
            node_js_app_js_path = File.expand_path(node_js_app_base_path + '/gamedig-service.js')
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            unless Dir.exist?(node_js_app_base_path + '/node_modules')
         
     | 
| 
      
 11 
     | 
    
         
            +
              puts "GameDig Service: Install missing dependencies ..."
         
     | 
| 
      
 12 
     | 
    
         
            +
              if !!GameDigHelper.which('yarn')
         
     | 
| 
      
 13 
     | 
    
         
            +
                `cd "#{node_js_app_base_path}" && yarn install`
         
     | 
| 
      
 14 
     | 
    
         
            +
              elsif !!GameDigHelper.which('npm')
         
     | 
| 
      
 15 
     | 
    
         
            +
                `cd "#{node_js_app_base_path}" && npm install`
         
     | 
| 
      
 16 
     | 
    
         
            +
              else
         
     | 
| 
      
 17 
     | 
    
         
            +
                raise "Neither 'yarn' nor 'npm' found!"
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
              puts "done"
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            unless GameDigHelper.node_service_running?
         
     | 
| 
      
 24 
     | 
    
         
            +
              node_js_thread = Thread.new do |t|
         
     | 
| 
      
 25 
     | 
    
         
            +
                system %Q(cd "#{node_js_app_base_path}" && node ./gamedig-service.js)
         
     | 
| 
      
 26 
     | 
    
         
            +
                at_exit do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  node_js_thread.exit
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
            end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            ENV['GAMEDIG_SERVICE'] = 'true'
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            at_exit do
         
     | 
| 
      
 35 
     | 
    
         
            +
              GameDigHelper.stop_node_service
         
     | 
| 
      
 36 
     | 
    
         
            +
            end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            require_relative '../game_dig'
         
     | 
    
        data/lib/game_dig/version.rb
    CHANGED
    
    
    
        data/lib/game_dig.rb
    CHANGED
    
    | 
         @@ -1,5 +1,9 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require ' 
     | 
| 
       2 
     | 
    
         
            -
            require ' 
     | 
| 
      
 1 
     | 
    
         
            +
            require 'uri'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'net/http'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require_relative 'game_dig/version'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require_relative 'game_dig/game_dig_helper'
         
     | 
| 
       3 
7 
     | 
    
         
             
            require_relative 'custom_errors/game_dig_error'
         
     | 
| 
       4 
8 
     | 
    
         
             
            require_relative 'custom_errors/game_dig_cli_not_found'
         
     | 
| 
       5 
9 
     | 
    
         | 
| 
         @@ -10,6 +14,7 @@ require_relative 'custom_errors/game_dig_cli_not_found' 
     | 
|
| 
       10 
14 
     | 
    
         
             
            module GameDig
         
     | 
| 
       11 
15 
     | 
    
         | 
| 
       12 
16 
     | 
    
         
             
              DEBUG_MESSAGE_END = 'Q#0 Query was successful'
         
     | 
| 
      
 17 
     | 
    
         
            +
              @@node_service_up = false
         
     | 
| 
       13 
18 
     | 
    
         | 
| 
       14 
19 
     | 
    
         
             
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
       15 
20 
     | 
    
         | 
| 
         @@ -25,7 +30,21 @@ module GameDig 
     | 
|
| 
       25 
30 
     | 
    
         
             
              # @param [Boolean] debug
         
     | 
| 
       26 
31 
     | 
    
         
             
              # @param [Boolean] request_rules
         
     | 
| 
       27 
32 
     | 
    
         
             
              def self.query(type:, host:, port: nil, max_attempts: nil, socket_timeout: nil, attempt_timeout: nil, given_port_only: nil, debug: nil, request_rules: nil)
         
     | 
| 
       28 
     | 
    
         
            -
                 
     | 
| 
      
 33 
     | 
    
         
            +
                if ENV['GAMEDIG_SERVICE'] == 'true'
         
     | 
| 
      
 34 
     | 
    
         
            +
                  perform_service_query(type: type, host: host, port: port, max_attempts: max_attempts, socket_timeout: socket_timeout, attempt_timeout: attempt_timeout, given_port_only: given_port_only, debug: debug, request_rules: request_rules)
         
     | 
| 
      
 35 
     | 
    
         
            +
                else
         
     | 
| 
      
 36 
     | 
    
         
            +
                  perform_cli_query(type: type, host: host, port: port, max_attempts: max_attempts, socket_timeout: socket_timeout, attempt_timeout: attempt_timeout, given_port_only: given_port_only, debug: debug, request_rules: request_rules)
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              private
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              def self.perform_cli_query(type:, host:, port: nil, max_attempts: nil, socket_timeout: nil, attempt_timeout: nil, given_port_only: nil, debug: nil, request_rules: nil)
         
     | 
| 
      
 47 
     | 
    
         
            +
                throw GameDigCliNotFound unless GameDigHelper.cli_installed?
         
     | 
| 
       29 
48 
     | 
    
         
             
                command = "gamedig --type #{type}"
         
     | 
| 
       30 
49 
     | 
    
         
             
                command += " --port #{port}" if port
         
     | 
| 
       31 
50 
     | 
    
         
             
                command += " --maxAttempts #{max_attempts}" if max_attempts
         
     | 
| 
         @@ -35,7 +54,6 @@ module GameDig 
     | 
|
| 
       35 
54 
     | 
    
         
             
                command += " --debug #{debug}" if debug
         
     | 
| 
       36 
55 
     | 
    
         
             
                command += " --requestRules" if request_rules
         
     | 
| 
       37 
56 
     | 
    
         
             
                command += " #{host}"
         
     | 
| 
       38 
     | 
    
         
            -
                puts command
         
     | 
| 
       39 
57 
     | 
    
         
             
                begin
         
     | 
| 
       40 
58 
     | 
    
         
             
                  output = `#{command}`
         
     | 
| 
       41 
59 
     | 
    
         
             
                  json = if debug
         
     | 
| 
         @@ -58,27 +76,33 @@ module GameDig 
     | 
|
| 
       58 
76 
     | 
    
         | 
| 
       59 
77 
     | 
    
         
             
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
       60 
78 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
               
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
                !!(which 'gamedig')
         
     | 
| 
      
 79 
     | 
    
         
            +
              def self.perform_service_query(type:, host:, port: nil, max_attempts: nil, socket_timeout: nil, attempt_timeout: nil, given_port_only: nil, debug: nil, request_rules: nil)
         
     | 
| 
      
 80 
     | 
    
         
            +
                ensure_node_service_is_up
         
     | 
| 
      
 81 
     | 
    
         
            +
                hostname = host
         
     | 
| 
      
 82 
     | 
    
         
            +
                hostname += ":#{port}" if port
         
     | 
| 
      
 83 
     | 
    
         
            +
                uri = URI("http://127.0.0.1:24445/#{type}/#{hostname}")
         
     | 
| 
      
 84 
     | 
    
         
            +
                res = Net::HTTP.get_response(uri)
         
     | 
| 
      
 85 
     | 
    
         
            +
                res.body
         
     | 
| 
       69 
86 
     | 
    
         
             
              end
         
     | 
| 
       70 
87 
     | 
    
         | 
| 
       71 
88 
     | 
    
         
             
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
       72 
89 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
              def self. 
     | 
| 
       74 
     | 
    
         
            -
                 
     | 
| 
       75 
     | 
    
         
            -
                 
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
                     
     | 
| 
      
 90 
     | 
    
         
            +
              def self.ensure_node_service_is_up
         
     | 
| 
      
 91 
     | 
    
         
            +
                max_counter = 100
         
     | 
| 
      
 92 
     | 
    
         
            +
                counter = 0
         
     | 
| 
      
 93 
     | 
    
         
            +
                unless @@node_service_up
         
     | 
| 
      
 94 
     | 
    
         
            +
                  loop do
         
     | 
| 
      
 95 
     | 
    
         
            +
                    counter += 1
         
     | 
| 
      
 96 
     | 
    
         
            +
                    if GameDigHelper.node_service_running?
         
     | 
| 
      
 97 
     | 
    
         
            +
                      break
         
     | 
| 
      
 98 
     | 
    
         
            +
                    elsif counter >= max_counter
         
     | 
| 
      
 99 
     | 
    
         
            +
                      raise "Node gamedig service did not boot up properly ..."
         
     | 
| 
      
 100 
     | 
    
         
            +
                      break
         
     | 
| 
      
 101 
     | 
    
         
            +
                    end
         
     | 
| 
      
 102 
     | 
    
         
            +
                    sleep 0.1
         
     | 
| 
       79 
103 
     | 
    
         
             
                  end
         
     | 
| 
      
 104 
     | 
    
         
            +
                  @@node_service_up = true
         
     | 
| 
       80 
105 
     | 
    
         
             
                end
         
     | 
| 
       81 
     | 
    
         
            -
                nil
         
     | 
| 
       82 
106 
     | 
    
         
             
              end
         
     | 
| 
       83 
107 
     | 
    
         | 
| 
       84 
108 
     | 
    
         
             
              #----------------------------------------------------------------------------------------------------
         
     | 
| 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            const Gamedig = require('gamedig');
         
     | 
| 
      
 2 
     | 
    
         
            +
            const Hapi = require('@hapi/hapi');
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            const server = Hapi.server({
         
     | 
| 
      
 5 
     | 
    
         
            +
                port: 24445,
         
     | 
| 
      
 6 
     | 
    
         
            +
                host: 'localhost'
         
     | 
| 
      
 7 
     | 
    
         
            +
            });
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            const init = async () => {
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                server.route({
         
     | 
| 
      
 12 
     | 
    
         
            +
                    method: 'GET',
         
     | 
| 
      
 13 
     | 
    
         
            +
                    path: '/exit',
         
     | 
| 
      
 14 
     | 
    
         
            +
                    handler: async (request, h) => {
         
     | 
| 
      
 15 
     | 
    
         
            +
                        server.stop();
         
     | 
| 
      
 16 
     | 
    
         
            +
                        process.exit(0);
         
     | 
| 
      
 17 
     | 
    
         
            +
                        return '';
         
     | 
| 
      
 18 
     | 
    
         
            +
                    }
         
     | 
| 
      
 19 
     | 
    
         
            +
                });
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                server.route({
         
     | 
| 
      
 22 
     | 
    
         
            +
                    method: 'GET',
         
     | 
| 
      
 23 
     | 
    
         
            +
                    path: '/{type}/{ip}',
         
     | 
| 
      
 24 
     | 
    
         
            +
                    handler: async (request, h) => {
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                        const { type, ip } = request.params;
         
     | 
| 
      
 27 
     | 
    
         
            +
                        const [ host, port ] = ip.split(':')
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                        const serverData = await Gamedig.query({
         
     | 
| 
      
 30 
     | 
    
         
            +
                            type: type,
         
     | 
| 
      
 31 
     | 
    
         
            +
                            host,
         
     | 
| 
      
 32 
     | 
    
         
            +
                            port
         
     | 
| 
      
 33 
     | 
    
         
            +
                        });
         
     | 
| 
      
 34 
     | 
    
         
            +
                        return serverData;
         
     | 
| 
      
 35 
     | 
    
         
            +
                    }
         
     | 
| 
      
 36 
     | 
    
         
            +
                });
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                await server.start();
         
     | 
| 
      
 39 
     | 
    
         
            +
            };
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            process.on('unhandledRejection', (err) => {
         
     | 
| 
      
 42 
     | 
    
         
            +
                console.error(err);
         
     | 
| 
      
 43 
     | 
    
         
            +
            });
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            init();
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: game_dig
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Matthäus Beyrle
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022-12- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-12-08 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -97,11 +97,16 @@ files: 
     | 
|
| 
       97 
97 
     | 
    
         
             
            - bin/console
         
     | 
| 
       98 
98 
     | 
    
         
             
            - bin/setup
         
     | 
| 
       99 
99 
     | 
    
         
             
            - cli/pry.rb
         
     | 
| 
      
 100 
     | 
    
         
            +
            - cli/pry_service.rb
         
     | 
| 
       100 
101 
     | 
    
         
             
            - game_dig.gemspec
         
     | 
| 
       101 
102 
     | 
    
         
             
            - lib/custom_errors/game_dig_cli_not_found.rb
         
     | 
| 
       102 
103 
     | 
    
         
             
            - lib/custom_errors/game_dig_error.rb
         
     | 
| 
       103 
104 
     | 
    
         
             
            - lib/game_dig.rb
         
     | 
| 
      
 105 
     | 
    
         
            +
            - lib/game_dig/game_dig_helper.rb
         
     | 
| 
      
 106 
     | 
    
         
            +
            - lib/game_dig/service.rb
         
     | 
| 
       104 
107 
     | 
    
         
             
            - lib/game_dig/version.rb
         
     | 
| 
      
 108 
     | 
    
         
            +
            - lib/node/gamedig-service.js
         
     | 
| 
      
 109 
     | 
    
         
            +
            - lib/node/package.json
         
     | 
| 
       105 
110 
     | 
    
         
             
            homepage: https://github.com/magynhard/ruby-game_dig
         
     | 
| 
       106 
111 
     | 
    
         
             
            licenses:
         
     | 
| 
       107 
112 
     | 
    
         
             
            - MIT
         
     |