Class: Uploadcare::Resources::BaseResource
- Inherits:
-
Object
- Object
- Uploadcare::Resources::BaseResource
- 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.
Direct Known Subclasses
AddonExecution, DocumentConversion, File, FileMetadata, Group, Project, VideoConversion, Webhook
Instance Attribute Summary collapse
-
#client ⇒ Uploadcare::Client
readonly
Client that created this resource.
-
#config ⇒ Uploadcare::Configuration
readonly
Configuration from the client.
Class Method Summary collapse
-
.resolve_client(client_or_config = nil, client: nil, config: nil) ⇒ Uploadcare::Client
Resolve a client from various input types.
Instance Method Summary collapse
-
#initialize(attributes = {}, client_or_config = nil) ⇒ BaseResource
constructor
Initialize a new resource with attributes and client context.
Constructor Details
#initialize(attributes = {}, client_or_config = nil) ⇒ BaseResource
Initialize a new resource with attributes and client context.
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
#client ⇒ Uploadcare::Client (readonly)
Returns Client that created this resource.
10 11 12 |
# File 'lib/uploadcare/resources/base_resource.rb', line 10 def client @client end |
#config ⇒ Uploadcare::Configuration (readonly)
Returns Configuration from the client.
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.
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 |