Class: CardDB::Client
- Inherits:
-
Object
- Object
- CardDB::Client
- Defined in:
- lib/carddb/client.rb
Overview
Main client class for interacting with the CardDB API.
Instance Attribute Summary collapse
-
#config ⇒ Configuration
readonly
The client configuration.
-
#connection ⇒ Connection
readonly
The HTTP connection.
Instance Method Summary collapse
-
#batch {|Batch| ... } ⇒ Array
Execute multiple queries in a single batch request.
-
#datasets ⇒ Resources::Datasets
Access the Datasets resource.
-
#decks ⇒ Resources::Decks
Access the Decks resource.
-
#games ⇒ Resources::Games
Access the Games resource.
-
#initialize(api_key: nil, endpoint: nil, timeout: nil, open_timeout: nil, default_publisher: nil, default_game: nil, allowed_publishers: nil, allowed_games: nil, config: nil) ⇒ Client
constructor
Create a new CardDB client.
-
#me ⇒ Hash?
Get information about the current API key.
-
#publishers ⇒ Resources::Publishers
Access the Publishers resource.
-
#records ⇒ Resources::Records
Access the Records resource.
-
#rules ⇒ Resources::Rules
Access the Rules resource.
Constructor Details
#initialize(api_key: nil, endpoint: nil, timeout: nil, open_timeout: nil, default_publisher: nil, default_game: nil, allowed_publishers: nil, allowed_games: nil, config: nil) ⇒ Client
Create a new CardDB client.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/carddb/client.rb', line 35 def initialize( api_key: nil, endpoint: nil, timeout: nil, open_timeout: nil, default_publisher: nil, default_game: nil, allowed_publishers: nil, allowed_games: nil, config: nil ) @config = build_config( config: config, api_key: api_key, endpoint: endpoint, timeout: timeout, open_timeout: open_timeout, default_publisher: default_publisher, default_game: default_game, allowed_publishers: allowed_publishers, allowed_games: allowed_games ) @connection = Connection.new(@config) end |
Instance Attribute Details
#config ⇒ Configuration (readonly)
Returns The client configuration.
19 20 21 |
# File 'lib/carddb/client.rb', line 19 def config @config end |
#connection ⇒ Connection (readonly)
Returns The HTTP connection.
22 23 24 |
# File 'lib/carddb/client.rb', line 22 def connection @connection end |
Instance Method Details
#batch {|Batch| ... } ⇒ Array
Execute multiple queries in a single batch request.
123 124 125 126 127 |
# File 'lib/carddb/client.rb', line 123 def batch batch = Batch.new(self) yield batch batch.execute end |
#datasets ⇒ Resources::Datasets
Access the Datasets resource
77 78 79 |
# File 'lib/carddb/client.rb', line 77 def datasets @datasets ||= Resources::Datasets.new(self, connection, config) end |
#decks ⇒ Resources::Decks
Access the Decks resource
91 92 93 |
# File 'lib/carddb/client.rb', line 91 def decks @decks ||= Resources::Decks.new(self, connection, config) end |
#games ⇒ Resources::Games
Access the Games resource
70 71 72 |
# File 'lib/carddb/client.rb', line 70 def games @games ||= Resources::Games.new(self, connection, config) end |
#me ⇒ Hash?
Get information about the current API key
105 106 107 108 109 110 111 |
# File 'lib/carddb/client.rb', line 105 def me return nil unless config.api_key query = QueryBuilder.fetch_me data = connection.execute(query, {}) data['fetchMe'] end |
#publishers ⇒ Resources::Publishers
Access the Publishers resource
63 64 65 |
# File 'lib/carddb/client.rb', line 63 def publishers @publishers ||= Resources::Publishers.new(self, connection, config) end |
#records ⇒ Resources::Records
Access the Records resource
84 85 86 |
# File 'lib/carddb/client.rb', line 84 def records @records ||= Resources::Records.new(self, connection, config) end |
#rules ⇒ Resources::Rules
Access the Rules resource
98 99 100 |
# File 'lib/carddb/client.rb', line 98 def rules @rules ||= Resources::Rules.new(self, connection, config) end |