Class: CardDB::Dataset
Overview
Wrapper for Dataset objects
Instance Attribute Summary
Attributes inherited from Resource
#client, #data
Instance Method Summary
collapse
Methods inherited from Resource
#[], #initialize, #key?, #to_h, #to_json
Instance Method Details
#archived? ⇒ Boolean
447
448
449
|
# File 'lib/carddb/collection.rb', line 447
def archived?
data['isArchived']
end
|
#created_at ⇒ Object
471
472
473
|
# File 'lib/carddb/collection.rb', line 471
def created_at
parse_time(data['createdAt'])
end
|
#description ⇒ Object
431
432
433
|
# File 'lib/carddb/collection.rb', line 431
def description
data['description']
end
|
#field(field_key) ⇒ FieldInfo?
Get a field’s info by key.
529
530
531
|
# File 'lib/carddb/collection.rb', line 529
def field(field_key)
schema&.field(field_key)
end
|
#field_keys ⇒ Array<String>
Get all field keys from the schema.
484
485
486
|
# File 'lib/carddb/collection.rb', line 484
def field_keys
schema&.fields&.map(&:key) || []
end
|
#filterable?(field_key) ⇒ Boolean
Check if a field is filterable.
513
514
515
|
# File 'lib/carddb/collection.rb', line 513
def filterable?(field_key)
filterable_fields.include?(field_key.to_s)
end
|
#filterable_fields ⇒ Array<String>
Get all filterable field keys.
491
492
493
|
# File 'lib/carddb/collection.rb', line 491
def filterable_fields
schema&.filterable_fields || []
end
|
#game ⇒ Object
463
464
465
|
# File 'lib/carddb/collection.rb', line 463
def game
data['game']
end
|
#game_id ⇒ Object
455
456
457
|
# File 'lib/carddb/collection.rb', line 455
def game_id
data['gameId']
end
|
#id ⇒ Object
419
420
421
|
# File 'lib/carddb/collection.rb', line 419
def id
data['id']
end
|
#identifier_field ⇒ String?
Get the identifier field key.
505
506
507
|
# File 'lib/carddb/collection.rb', line 505
def identifier_field
schema&.fields&.find(&:identifier?)&.key
end
|
#key ⇒ Object
423
424
425
|
# File 'lib/carddb/collection.rb', line 423
def key
data['key']
end
|
#name ⇒ Object
427
428
429
|
# File 'lib/carddb/collection.rb', line 427
def name
data['name']
end
|
#publisher ⇒ Object
459
460
461
|
# File 'lib/carddb/collection.rb', line 459
def publisher
data['publisher']
end
|
#publisher_id ⇒ Object
451
452
453
|
# File 'lib/carddb/collection.rb', line 451
def publisher_id
data['publisherId']
end
|
#purpose ⇒ Object
435
436
437
|
# File 'lib/carddb/collection.rb', line 435
def purpose
data['purpose']
end
|
#records(first: nil, filter: nil, include_pricing: false) {|FilterBuilder| ... } ⇒ Collection<Record>
Search records in this dataset. Unlike datasets on Game, this is NOT cached since filters can vary.
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
|
# File 'lib/carddb/collection.rb', line 542
def records(first: nil, filter: nil, include_pricing: false, &block)
raise Error, 'No client available to fetch records' unless client
publisher_slug = publisher&.[]('slug')
game_key = game&.[]('key')
raise Error, 'Publisher slug not available on this dataset' unless publisher_slug
raise Error, 'Game key not available on this dataset' unless game_key
client.records.search(
publisher_slug: publisher_slug,
game_key: game_key,
dataset_key: key,
first: first,
filter: filter,
include_pricing: include_pricing,
&block
)
end
|
#schema ⇒ Object
467
468
469
|
# File 'lib/carddb/collection.rb', line 467
def schema
@schema ||= DatasetSchema.new(data['schema']) if data['schema']
end
|
#searchable?(field_key) ⇒ Boolean
Check if a field is searchable.
521
522
523
|
# File 'lib/carddb/collection.rb', line 521
def searchable?(field_key)
searchable_fields.include?(field_key.to_s)
end
|
#searchable_fields ⇒ Array<String>
Get all searchable field keys.
498
499
500
|
# File 'lib/carddb/collection.rb', line 498
def searchable_fields
schema&.searchable_fields || []
end
|
#tcgplayer_product_id_field_key ⇒ Object
439
440
441
|
# File 'lib/carddb/collection.rb', line 439
def tcgplayer_product_id_field_key
data['tcgplayerProductIdFieldKey']
end
|
#updated_at ⇒ Object
475
476
477
|
# File 'lib/carddb/collection.rb', line 475
def updated_at
parse_time(data['updatedAt'])
end
|
#visibility ⇒ Object
443
444
445
|
# File 'lib/carddb/collection.rb', line 443
def visibility
data['visibility']
end
|