Sha256: 1d95c6f05651017ebf7bf09e47906ba1b902a0a73f3a50a3a11146c6cd7b9408
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
# frozen_string_literal: true require 'graphql/client/http' module Artemis module Adapters class AbstractAdapter < ::GraphQL::Client::HTTP attr_reader :service_name, :timeout, :pool_size EMPTY_HEADERS = {}.freeze def initialize(uri, service_name: , timeout: , pool_size: ) super(uri) # Do not pass in the block to avoid getting #headers and #connection overridden. @service_name = service_name.to_s @timeout = timeout @pool_size = pool_size end # Public: Extension point for subclasses to set custom request headers. # # Returns Hash of String header names and values. def headers(_context) _context[:headers] || EMPTY_HEADERS end # Public: Make an HTTP request for GraphQL query. # # A subclass that inherits from +AbstractAdapter+ can override this method if it needs more flexibility for how # it makes a request. # # For more details, see +GraphQL::Client::HTTP#execute+. def execute(*) super end # Public: Extension point for subclasses to customize the Net:HTTP client # # A subclass that inherits from +AbstractAdapter+ should returns a Net::HTTP object or an object that responds # to +request+ that is given a Net::HTTP request object. def connection raise "AbstractAdapter is an abstract class that can not be instantiated!" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
artemis-0.1.0 | lib/artemis/adapters/abstract_adapter.rb |