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
#active_version_id ⇒ Object
461
462
463
|
# File 'lib/carddb/collection.rb', line 461
def active_version_id
data['activeVersionId']
end
|
#archived? ⇒ Boolean
473
474
475
|
# File 'lib/carddb/collection.rb', line 473
def archived?
data['isArchived']
end
|
#archived_at ⇒ Object
477
478
479
|
# File 'lib/carddb/collection.rb', line 477
def archived_at
parse_time(data['archivedAt'])
end
|
#created_at ⇒ Object
513
514
515
|
# File 'lib/carddb/collection.rb', line 513
def created_at
parse_time(data['createdAt'])
end
|
#description ⇒ Object
453
454
455
|
# File 'lib/carddb/collection.rb', line 453
def description
data['description']
end
|
#field(field_key) ⇒ FieldInfo?
Get a field’s info by key.
571
572
573
|
# File 'lib/carddb/collection.rb', line 571
def field(field_key)
schema&.field(field_key)
end
|
#field_keys ⇒ Array<String>
Get all field keys from the schema.
526
527
528
|
# File 'lib/carddb/collection.rb', line 526
def field_keys
schema&.fields&.map(&:key) || []
end
|
#filterable?(field_key) ⇒ Boolean
Check if a field is filterable.
555
556
557
|
# File 'lib/carddb/collection.rb', line 555
def filterable?(field_key)
filterable_fields.include?(field_key.to_s)
end
|
#filterable_fields ⇒ Array<String>
Get all filterable field keys.
533
534
535
|
# File 'lib/carddb/collection.rb', line 533
def filterable_fields
schema&.filterable_fields || []
end
|
#game ⇒ Object
505
506
507
|
# File 'lib/carddb/collection.rb', line 505
def game
data['game']
end
|
#game_id ⇒ Object
497
498
499
|
# File 'lib/carddb/collection.rb', line 497
def game_id
data['gameId']
end
|
#id ⇒ Object
441
442
443
|
# File 'lib/carddb/collection.rb', line 441
def id
data['id']
end
|
#identifier_field ⇒ String?
Get the identifier field key.
547
548
549
|
# File 'lib/carddb/collection.rb', line 547
def identifier_field
schema&.fields&.find(&:identifier?)&.key
end
|
#key ⇒ Object
445
446
447
|
# File 'lib/carddb/collection.rb', line 445
def key
data['key']
end
|
#name ⇒ Object
449
450
451
|
# File 'lib/carddb/collection.rb', line 449
def name
data['name']
end
|
#pos_x ⇒ Object
481
482
483
|
# File 'lib/carddb/collection.rb', line 481
def pos_x
data['posX']
end
|
#pos_y ⇒ Object
485
486
487
|
# File 'lib/carddb/collection.rb', line 485
def pos_y
data['posY']
end
|
#publisher ⇒ Object
501
502
503
|
# File 'lib/carddb/collection.rb', line 501
def publisher
data['publisher']
end
|
#publisher_id ⇒ Object
493
494
495
|
# File 'lib/carddb/collection.rb', line 493
def publisher_id
data['publisherId']
end
|
#purpose ⇒ Object
457
458
459
|
# File 'lib/carddb/collection.rb', line 457
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.
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
|
# File 'lib/carddb/collection.rb', line 584
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
509
510
511
|
# File 'lib/carddb/collection.rb', line 509
def schema
@schema ||= DatasetSchema.new(data['schema']) if data['schema']
end
|
#searchable?(field_key) ⇒ Boolean
Check if a field is searchable.
563
564
565
|
# File 'lib/carddb/collection.rb', line 563
def searchable?(field_key)
searchable_fields.include?(field_key.to_s)
end
|
#searchable_fields ⇒ Array<String>
Get all searchable field keys.
540
541
542
|
# File 'lib/carddb/collection.rb', line 540
def searchable_fields
schema&.searchable_fields || []
end
|
#sort_order ⇒ Object
489
490
491
|
# File 'lib/carddb/collection.rb', line 489
def sort_order
data['sortOrder']
end
|
#tcgplayer_product_id_field_key ⇒ Object
465
466
467
|
# File 'lib/carddb/collection.rb', line 465
def tcgplayer_product_id_field_key
data['tcgplayerProductIdFieldKey']
end
|
#updated_at ⇒ Object
517
518
519
|
# File 'lib/carddb/collection.rb', line 517
def updated_at
parse_time(data['updatedAt'])
end
|
#visibility ⇒ Object
469
470
471
|
# File 'lib/carddb/collection.rb', line 469
def visibility
data['visibility']
end
|