Sha256: 10c9d2cb7963748bc58e8da8522e64c0c0b0c61e3f3e1cf07b0e3647e4130de1

Contents?: true

Size: 545 Bytes

Versions: 9

Compression:

Stored size: 545 Bytes

Contents

# frozen_string_literal: true

require "uri"
require "net/http"
require "json"

module Icarus
  module Mod
    module Tools
      class RequestFailed < StandardError; end

      # Sync helper methods
      module SyncHelpers
        def retrieve_from_url(url)
          res = Net::HTTP.get_response(URI(url))

          raise Icarus::Mod::Tools::RequestFailed, "HTTP Request failed for #{url} (#{res.code}): #{res.message}" unless res&.code == "200"

          JSON.parse(res.body, symbolize_names: true)
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
Icarus-Mod-Tools-1.8.1 lib/icarus/mod/tools/sync_helpers.rb
Icarus-Mod-Tools-1.8.0 lib/icarus/mod/tools/sync_helpers.rb
Icarus-Mod-Tools-1.7.1 lib/icarus/mod/tools/sync_helpers.rb
Icarus-Mod-Tools-1.7.0 lib/icarus/mod/tools/sync_helpers.rb
Icarus-Mod-Tools-1.6.0 lib/icarus/mod/tools/sync_helpers.rb
Icarus-Mod-Tools-1.5.1 lib/icarus/mod/tools/sync_helpers.rb
Icarus-Mod-Tools-1.5.0 lib/icarus/mod/tools/sync_helpers.rb
Icarus-Mod-Tools-1.4.1 lib/icarus/mod/tools/sync_helpers.rb
Icarus-Mod-Tools-1.4.0 lib/icarus/mod/tools/sync_helpers.rb