Module: CardDB::Rails::HasCardDBDatasets
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/carddb/rails/has_carddb_datasets.rb
Instance Method Summary collapse
- #carddb_dataset(dataset_key, cache: nil) ⇒ Object
- #carddb_datasets(purpose: nil, search: nil, first: nil, after: nil, cache: nil) ⇒ Object
- #carddb_datasets_loaded? ⇒ Boolean
- #reload_carddb_datasets(cache: nil) ⇒ Object
Instance Method Details
#carddb_dataset(dataset_key, cache: nil) ⇒ Object
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
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 |