Module: CardDB::Rails::HasCardDBDatasets

Extended by:
ActiveSupport::Concern
Defined in:
lib/carddb/rails/has_carddb_datasets.rb

Instance Method Summary collapse

Instance Method Details

#carddb_dataset(dataset_key, cache: nil) ⇒ Object

Raises:

  • (ArgumentError)


47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/carddb/rails/has_carddb_datasets.rb', line 47

def carddb_dataset(dataset_key, cache: nil)
  if cache != false && carddb_datasets_loaded? && @carddb_datasets.respond_to?(:find)
    matching_dataset = @carddb_datasets.find { |dataset| dataset.key == dataset_key }
    return matching_dataset if matching_dataset
  end

  definition = self.class.carddb_datasets_definition
  raise ArgumentError, 'has_carddb_datasets must be configured before calling carddb_dataset' unless definition

  client = carddb_datasets_resolve_client(definition[:client])
  publisher_slug = client.config.resolve_publisher(carddb_datasets_resolve_option(definition[:publisher_slug]))
  game_key = client.config.resolve_game(carddb_datasets_resolve_option(definition[:game_key]))

  raise ArgumentError, 'publisher_slug is required (no default configured)' if publisher_slug.blank?
  raise ArgumentError, 'game_key is required (no default configured)' if game_key.blank?

  client.datasets.get(
    publisher_slug: publisher_slug,
    game_key: game_key,
    dataset_key: dataset_key,
    cache: cache.nil? ? definition[:cache] : cache
  )
end

#carddb_datasets(purpose: nil, search: nil, first: nil, after: nil, cache: nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/carddb/rails/has_carddb_datasets.rb', line 26

def carddb_datasets(purpose: nil, search: nil, first: nil, after: nil, cache: nil)
  if purpose.nil? && search.nil? && first.nil? && after.nil?
    return carddb_fetch_datasets(cache: cache) if cache == false

    return @carddb_datasets if defined?(@carddb_datasets)

    @carddb_datasets = carddb_fetch_datasets(cache: cache)
  else
    carddb_fetch_datasets(purpose: purpose, search: search, first: first, after: after, cache: cache)
  end
end

#carddb_datasets_loaded?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/carddb/rails/has_carddb_datasets.rb', line 43

def carddb_datasets_loaded?
  instance_variable_defined?(:@carddb_datasets)
end

#reload_carddb_datasets(cache: nil) ⇒ Object



38
39
40
41
# File 'lib/carddb/rails/has_carddb_datasets.rb', line 38

def reload_carddb_datasets(cache: nil)
  remove_instance_variable(:@carddb_datasets) if defined?(@carddb_datasets)
  carddb_datasets(cache: cache)
end