Class: Uploadcare::Resources::BaseResource

Inherits:
Object
  • Object
show all
Defined in:
lib/uploadcare/resources/base_resource.rb

Overview

Base class for all Uploadcare resource objects.

Resources represent domain objects returned by the Uploadcare API. They hold attributes and a reference to the client that created them, enabling instance methods to make further API calls.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}, client_or_config = nil) ⇒ BaseResource

Initialize a new resource with attributes and client context.

Parameters:



19
20
21
22
23
# File 'lib/uploadcare/resources/base_resource.rb', line 19

def initialize(attributes = {}, client_or_config = nil)
  @client = self.class.resolve_client(client_or_config)
  @config = @client.config
  assign_attributes(attributes)
end

Instance Attribute Details

#clientUploadcare::Client (readonly)

Returns Client that created this resource.

Returns:



10
11
12
# File 'lib/uploadcare/resources/base_resource.rb', line 10

def client
  @client
end

#configUploadcare::Configuration (readonly)

Returns Configuration from the client.

Returns:



13
14
15
# File 'lib/uploadcare/resources/base_resource.rb', line 13

def config
  @config
end

Class Method Details

.resolve_client(client_or_config = nil, client: nil, config: nil) ⇒ Uploadcare::Client

Resolve a client from various input types.

Parameters:

Returns:



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/uploadcare/resources/base_resource.rb', line 44

def resolve_client(client_or_config = nil, client: nil, config: nil)
  return client if client

  case client_or_config
  when Uploadcare::Client
    client_or_config
  when Uploadcare::Configuration
    Uploadcare.client(config: client_or_config)
  when nil
    return Uploadcare.client(config: config) if config

    raise ArgumentError, 'client or config is required'
  else
    raise ArgumentError, 'client or config is required'
  end
end