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, FileTags, 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 |