Class: MLB::Client

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/mlb/client.rb

Constant Summary collapse

DEFAULT_BASE_URL =
"https://lookup-service-prod.mlb.com/json/".freeze
DEFAULT_ARRAY_CLASS =
Array
DEFAULT_OBJECT_CLASS =
Hash

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_url: DEFAULT_BASE_URL, open_timeout: Connection::DEFAULT_OPEN_TIMEOUT, read_timeout: Connection::DEFAULT_READ_TIMEOUT, write_timeout: Connection::DEFAULT_WRITE_TIMEOUT, debug_output: Connection::DEFAULT_DEBUG_OUTPUT, proxy_url: nil, default_array_class: DEFAULT_ARRAY_CLASS, default_object_class: DEFAULT_OBJECT_CLASS, max_redirects: RedirectHandler::DEFAULT_MAX_REDIRECTS) ⇒ Client

Returns a new instance of Client.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/mlb/client.rb', line 22

def initialize(base_url: DEFAULT_BASE_URL,
  open_timeout: Connection::DEFAULT_OPEN_TIMEOUT,
  read_timeout: Connection::DEFAULT_READ_TIMEOUT,
  write_timeout: Connection::DEFAULT_WRITE_TIMEOUT,
  debug_output: Connection::DEFAULT_DEBUG_OUTPUT,
  proxy_url: nil,
  default_array_class: DEFAULT_ARRAY_CLASS,
  default_object_class: DEFAULT_OBJECT_CLASS,
  max_redirects: RedirectHandler::DEFAULT_MAX_REDIRECTS)

  @base_url = base_url
  initialize_default_classes(default_array_class, default_object_class)
  @connection = Connection.new(open_timeout:, read_timeout:, write_timeout:, debug_output:, proxy_url:)
  @request_builder = RequestBuilder.new
  @redirect_handler = RedirectHandler.new(connection: @connection, request_builder: @request_builder, max_redirects:)
  @response_parser = ResponseParser.new
end

Instance Attribute Details

#base_urlObject

Returns the value of attribute base_url.



15
16
17
# File 'lib/mlb/client.rb', line 15

def base_url
  @base_url
end

#default_array_classObject

Returns the value of attribute default_array_class.



15
16
17
# File 'lib/mlb/client.rb', line 15

def default_array_class
  @default_array_class
end

#default_object_classObject

Returns the value of attribute default_object_class.



15
16
17
# File 'lib/mlb/client.rb', line 15

def default_object_class
  @default_object_class
end

Instance Method Details

#delete(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Object



52
53
54
# File 'lib/mlb/client.rb', line 52

def delete(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class)
  execute_request(:delete, endpoint, headers:, array_class:, object_class:)
end

#get(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Object



40
41
42
# File 'lib/mlb/client.rb', line 40

def get(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class)
  execute_request(:get, endpoint, headers:, array_class:, object_class:)
end

#post(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Object



44
45
46
# File 'lib/mlb/client.rb', line 44

def post(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class)
  execute_request(:post, endpoint, body:, headers:, array_class:, object_class:)
end

#put(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Object



48
49
50
# File 'lib/mlb/client.rb', line 48

def put(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class)
  execute_request(:put, endpoint, body:, headers:, array_class:, object_class:)
end