Sha256: 35cf6e8cd80014684ba42cb139b85810e27985178054191286eeea826655f5b5

Contents?: true

Size: 836 Bytes

Versions: 9

Compression:

Stored size: 836 Bytes

Contents

# frozen_string_literal: true

module AppStoreDevApi
  class Client
    class Utils
      def self.encode(hash)
        hash
          .deep_transform_keys { |s| s.to_s.camelize(:lower) }
          .to_json
      end

      # Right now this only supports gzip and json responses.
      # If you need to support a different type then add it.
      def self.decode(string, content_type = 'application/json')
        decoded_data = nil

        case content_type
        when 'application/a-gzip'
          sio = StringIO.new string
          gz = Zlib::GzipReader.new sio
          decoded_data = gz.read
        else # Assume JSON
          decoded_data = JSON
                         .parse(string)
                         .deep_transform_keys { |k| k.underscore.to_sym }
        end

        decoded_data
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
app_store_dev_api-0.1.9 lib/app_store_dev_api/client/utils.rb
app_store_dev_api-0.1.8 lib/app_store_dev_api/client/utils.rb
app_store_dev_api-0.1.7 lib/app_store_dev_api/client/utils.rb
app_store_dev_api-0.1.6 lib/app_store_dev_api/client/utils.rb
app_store_dev_api-0.1.4 lib/app_store_dev_api/client/utils.rb
app_store_dev_api-0.1.3 lib/app_store_dev_api/client/utils.rb
app_store_dev_api-0.1.2 lib/app_store_dev_api/client/utils.rb
app_store_dev_api-0.1.1 lib/app_store_dev_api/client/utils.rb
app_store_dev_api-0.1.0 lib/app_store_dev_api/client/utils.rb