Module: CardDB

Defined in:
lib/carddb.rb,
lib/carddb/batch.rb,
lib/carddb/cache.rb,
lib/carddb/client.rb,
lib/carddb/errors.rb,
lib/carddb/version.rb,
lib/carddb/collection.rb,
lib/carddb/connection.rb,
lib/carddb/deck_tokens.rb,
lib/carddb/configuration.rb,
lib/carddb/query_builder.rb,
lib/carddb/filter_builder.rb,
lib/carddb/resources/base.rb,
lib/carddb/resources/decks.rb,
lib/carddb/resources/files.rb,
lib/carddb/resources/games.rb,
lib/carddb/resources/rules.rb,
lib/carddb/resources/scans.rb,
lib/carddb/resources/exports.rb,
lib/carddb/resources/imports.rb,
lib/carddb/resources/records.rb,
lib/carddb/resources/datasets.rb,
lib/carddb/resources/publishers.rb,
lib/carddb/resources/import_formats.rb,
lib/carddb/resources/scan_templates.rb

Overview

CardDB Ruby client library.

A Ruby client for the CardDB GraphQL API, providing search and fetch operations for card game data.

Examples:

Configure globally

CardDB.configure do |config|
  config.api_key = "carddb_xxx"
  config.default_publisher = "pokemon-company"
  config.default_game = "pokemon-tcg"
end

Use module-level convenience methods

games = CardDB.games.search
records = CardDB.records.search(dataset_key: "cards")

Use a dedicated client instance

client = CardDB::Client.new(api_key: "carddb_xxx")
games = client.games.search

Defined Under Namespace

Modules: CacheSupport, DeckTokens, FilterOperators, QueryBuilder, Resources Classes: AuthenticationError, Batch, BatchProxy, BulkImportResult, BulkRecordError, Client, Collection, Configuration, Connection, ConnectionError, Dataset, DatasetImportPreview, DatasetImportPreviewResult, DatasetRecordDeleteJob, DatasetRecordDeleteJobResult, DatasetRecordsUpsertPayload, DatasetSchema, Deck, DeckAPIApplicationAccess, DeckAccessApplication, DeckAccessToken, DeckAccessTokenExchangePayload, DeckAccessTokenIssuer, DeckCollaborator, DeckCopyPayload, DeckDiff, DeckEmbedToken, DeckEmbedTokenCreatePayload, DeckEntriesReplacePayload, DeckEntry, DeckEntryMutationPayload, DeckEntryReorderPayload, DeckExportPayload, DeckHydrateEntriesPayload, DeckImportAmbiguousEntry, DeckImportCandidate, DeckImportEntry, DeckImportFormatDefinition, DeckImportFormatDetection, DeckImportFormatTestPayload, DeckImportIssue, DeckImportPayload, DeckImportUnmatchedEntry, DeckOwnershipTransferPayload, DeckPreviewToken, DeckPreviewTokenCreatePayload, DeckPublishPayload, DeckSectionDefinition, DeckSessionToken, DeckSessionTokenExchangePayload, DeckUpsertByExternalRefPayload, DeckValidatedAgainst, DeckValidation, DeckValidationAffectedEntry, DeckValidationIssue, DeckVersion, Error, ExportJob, FieldInfo, FieldMapping, File, FilterBuilder, Game, GameImportDatasetStatus, GameImportJob, GameImportPreview, GameScanRegion, GraphQLError, ImportJob, ImportJobAsset, ImportJobLog, ImportStats, ImportWarning, LinkFieldInfo, MemoryCache, NotFoundError, ObjectField, PageInfo, PresignedUpload, Publisher, RateLimitError, Record, RecordValidationError, ResolvedLink, Resource, RestrictedError, ScanBestMatch, ScanCandidate, ScanFeatureVersionMetrics, ScanFeedbackMetrics, ScanFeedbackPayload, ScanJob, ScanJobError, ScanJobMetrics, ScanJobPayload, ScanMetrics, ScanStageMetrics, ScanTemplate, ScanTemplatePayload, ScanTemplatePreview, ScanTemplateRegion, ScanTemplateRegionPreview, ScanTemplateResolution, ScanTemplateWarning, ScanWebhookState, ServerError, TimeoutError, ValidationError

Constant Summary collapse

VERSION =
'0.4.1'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationConfiguration

Get the global configuration.

Returns:



55
56
57
# File 'lib/carddb.rb', line 55

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.batch {|Batch| ... } ⇒ Array

Execute multiple queries in a single batch request.

Examples:

results = CardDB.batch do |b|
  b.games.fetch("uuid-1")
  b.games.fetch("uuid-2")
  b.publishers.fetch(slug: "pokemon-company")
end

results[0]  # => Game
results[1]  # => Game
results[2]  # => Publisher

Yields:

  • (Batch)

    The batch builder

Returns:

  • (Array)

    Results in the same order as operations were added



205
206
207
# File 'lib/carddb.rb', line 205

def batch(&)
  default_client.batch(&)
end

.configure {|Configuration| ... } ⇒ Configuration

Configure the CardDB client globally.

Examples:

CardDB.configure do |config|
  config.api_key = "carddb_xxx"
  config.default_publisher = "pokemon-company"
end

Yields:

Returns:



69
70
71
72
73
74
# File 'lib/carddb.rb', line 69

def configure
  # Reset the cached client so it picks up new configuration
  @default_client = nil
  yield(configuration)
  configuration
end

.datasetsResources::Datasets

Access the Datasets resource via the default client.

Returns:



109
110
111
# File 'lib/carddb.rb', line 109

def datasets
  default_client.datasets
end

.decksResources::Decks

Access the Decks resource via the default client.

Returns:



165
166
167
# File 'lib/carddb.rb', line 165

def decks
  default_client.decks
end

.default_clientClient

Get the default client instance (uses global configuration).

Returns:



88
89
90
# File 'lib/carddb.rb', line 88

def default_client
  @default_client ||= Client.new(config: configuration)
end

.exportsResources::Exports

Access the Exports resource via the default client.

Returns:



137
138
139
# File 'lib/carddb.rb', line 137

def exports
  default_client.exports
end

.filesResources::Files

Access the Files resource via the default client.

Returns:



144
145
146
# File 'lib/carddb.rb', line 144

def files
  default_client.files
end

.gamesResources::Games

Access the Games resource via the default client.

Returns:



102
103
104
# File 'lib/carddb.rb', line 102

def games
  default_client.games
end

.import_formatsResources::ImportFormats

Access the Import Formats resource via the default client.



123
124
125
# File 'lib/carddb.rb', line 123

def import_formats
  default_client.import_formats
end

.importsResources::Imports

Access the Imports resource via the default client.

Returns:



130
131
132
# File 'lib/carddb.rb', line 130

def imports
  default_client.imports
end

.meHash?

Get information about the current API key.

Returns:

  • (Hash, nil)


179
180
181
# File 'lib/carddb.rb', line 179

def me
  default_client.me
end

.publishersResources::Publishers

Access the Publishers resource via the default client.



95
96
97
# File 'lib/carddb.rb', line 95

def publishers
  default_client.publishers
end

.rate_limit_infoHash?

Get the last rate limit info from the most recent request.

Returns:

  • (Hash, nil)

    Rate limit info with :limit, :remaining, :reset keys



186
187
188
# File 'lib/carddb.rb', line 186

def rate_limit_info
  Thread.current[:carddb_rate_limit]
end

.recordsResources::Records

Access the Records resource via the default client.

Returns:



116
117
118
# File 'lib/carddb.rb', line 116

def records
  default_client.records
end

.reset_configuration!Configuration

Reset the global configuration to defaults.

Returns:



79
80
81
82
83
# File 'lib/carddb.rb', line 79

def reset_configuration!
  @configuration = Configuration.new
  @default_client = nil
  configuration
end

.rulesResources::Rules

Access the Rules resource via the default client.

Returns:



172
173
174
# File 'lib/carddb.rb', line 172

def rules
  default_client.rules
end

.scan_templatesResources::ScanTemplates

Access the Scan Templates resource via the default client.



158
159
160
# File 'lib/carddb.rb', line 158

def scan_templates
  default_client.scan_templates
end

.scansResources::Scans

Access the Scans resource via the default client.

Returns:



151
152
153
# File 'lib/carddb.rb', line 151

def scans
  default_client.scans
end