Module: AnkiConnect::Client::Decks

Included in:
AnkiConnect::Client
Defined in:
lib/anki_connect/decks.rb

Overview

Methods to create, configure, and manage decks and their settings.

Instance Method Summary collapse

Instance Method Details

#clone_deck_config(name, clone_from: nil) ⇒ Integer, Boolean

Clones a deck configuration.

Parameters:

  • name (String) —

    Name for new config group

  • clone_from (Integer, nil) (defaults to: nil) —

    Config ID to clone from

Returns:

  • (Integer, Boolean) —

    New config ID, or false if source doesn't exist



95
96
97
98
99
# File 'lib/anki_connect/decks.rb', line 95

def clone_deck_config(name, clone_from: nil)
  params = { name: name }
  params[:cloneFrom] = clone_from if clone_from
  request(:cloneDeckConfigId, **params)
end

#create_deck(name) ⇒ Integer

Creates a new empty deck.

Parameters:

  • name (String) —
    Deck name (use

    for hierarchy)

Returns:

  • (Integer) —

    Deck ID



41
42
43
# File 'lib/anki_connect/decks.rb', line 41

def create_deck(name)
  request(:createDeck, deck: name)
end

#deck_config(name) ⇒ Hash, false

Gets configuration for a deck.

Parameters:

  • name (String) —

    Deck name

Returns:

  • (Hash, false) —

    Configuration object, or false when the deck does not exist



69
70
71
# File 'lib/anki_connect/decks.rb', line 69

def deck_config(name)
  request(:getDeckConfig, deck: name)
end

#deck_name_from_id(deck_id) ⇒ String

Gets a deck name by ID.

Parameters:

  • deck_id (Integer) —

    Deck ID

Returns:

  • (String) —

    Deck name



25
26
27
# File 'lib/anki_connect/decks.rb', line 25

def deck_name_from_id(deck_id)
  request(:deckNameFromId, deckId: deck_id)
end

#deck_names ⇒ Array<String>

Gets complete list of deck names.

Returns:

  • (Array<String>) —

    Array of deck name strings



10
11
12
# File 'lib/anki_connect/decks.rb', line 10

def deck_names
  request(:deckNames)
end

#deck_names_and_ids ⇒ Hash

Gets deck names with their IDs.

Returns:

  • (Hash) —

    Deck names mapped to IDs



17
18
19
# File 'lib/anki_connect/decks.rb', line 17

def deck_names_and_ids
  request(:deckNamesAndIds)
end

#deck_stats(names) ⇒ Hash

Gets statistics for decks.

Parameters:

  • names (Array<String>) —

    Array of deck names

Returns:

  • (Hash) —

    Deck IDs mapped to stats objects



113
114
115
# File 'lib/anki_connect/decks.rb', line 113

def deck_stats(names)
  request(:getDeckStats, decks: names)
end

#decks_for_cards(card_ids) ⇒ Hash

Gets deck membership for given cards.

Parameters:

  • card_ids (Array<Integer>) —

    Array of card IDs

Returns:

  • (Hash) —

    Deck names mapped to arrays of card IDs



33
34
35
# File 'lib/anki_connect/decks.rb', line 33

def decks_for_cards(card_ids)
  request(:getDecks, cards: card_ids)
end

#delete_decks(names, cards_too:) ⇒ nil

Deletes decks by name.

Parameters:

  • names (Array<String>) —

    Array of deck names

  • cards_too (Boolean) —

    Must be true to confirm deletion

Returns:

  • (nil)

Raises:

  • (ArgumentError)


59
60
61
62
63
# File 'lib/anki_connect/decks.rb', line 59

def delete_decks(names, cards_too:)
  raise ArgumentError, 'cards_too must be true to delete decks' unless cards_too == true

  request(:deleteDecks, decks: names, cardsToo: cards_too)
end

#move_cards(card_ids, to:) ⇒ nil

Moves cards to a different deck.

Parameters:

  • card_ids (Array<Integer>) —

    Array of card IDs

  • to (String) —

    Target deck name

Returns:

  • (nil)


50
51
52
# File 'lib/anki_connect/decks.rb', line 50

def move_cards(card_ids, to:)
  request(:changeDeck, cards: card_ids, deck: to)
end

#remove_deck_config(config_id) ⇒ Boolean

Removes a deck configuration.

Parameters:

  • config_id (Integer) —

    Configuration group ID

Returns:

  • (Boolean) —

    true on success



105
106
107
# File 'lib/anki_connect/decks.rb', line 105

def remove_deck_config(config_id)
  request(:removeDeckConfigId, configId: config_id)
end

#save_deck_config(config) ⇒ Boolean

Saves a deck configuration.

Parameters:

  • config (Hash) —

    Complete configuration object

Returns:

  • (Boolean) —

    true on success



77
78
79
# File 'lib/anki_connect/decks.rb', line 77

def save_deck_config(config)
  request(:saveDeckConfig, config: config)
end

#set_deck_config(names, config_id) ⇒ Boolean

Sets configuration for decks.

Parameters:

  • names (Array<String>) —

    Array of deck names

  • config_id (Integer) —

    Configuration group ID

Returns:

  • (Boolean) —

    true on success



86
87
88
# File 'lib/anki_connect/decks.rb', line 86

def set_deck_config(names, config_id)
  request(:setDeckConfigId, decks: names, configId: config_id)
end