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



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

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



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

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

#deck_namesArray<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_idsHash

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

#delete_decks(names, cards_too: true) ⇒ nil

Deletes decks by name.

Parameters:

  • names (Array<String>)

    Array of deck names

  • cards_too (Boolean) (defaults to: true)

    Must be true to confirm deletion

Returns:

  • (nil)


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

def delete_decks(names, cards_too: true)
  request(:deleteDecks, decks: names, cardsToo: cards_too)
end

#get_deck_config(name) ⇒ Hash

Gets configuration for a deck.

Parameters:

  • name (String)

    Deck name

Returns:

  • (Hash)

    Configuration object



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

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

#get_deck_stats(names) ⇒ Hash

Gets statistics for decks.

Parameters:

  • names (Array<String>)

    Array of deck names

Returns:

  • (Hash)

    Deck IDs mapped to stats objects



103
104
105
# File 'lib/anki_connect/decks.rb', line 103

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

#get_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



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

def get_decks_for_cards(card_ids)
  request(:getDecks, cards: card_ids)
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)


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

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



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

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



67
68
69
# File 'lib/anki_connect/decks.rb', line 67

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



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

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