Class: Anki::Deck

Inherits:
Object
  • Object
show all
Defined in:
lib/anki/deck.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Deck

Returns a new instance of Deck.



6
7
8
9
10
# File 'lib/anki/deck.rb', line 6

def initialize(options = {})
  @card_headers = options.delete(:card_headers)
  @card_data = options.delete(:card_data)
  @field_separator = options.delete(:field_separator) || ";"
end

Instance Attribute Details

#card_dataObject

Returns the value of attribute card_data.



4
5
6
# File 'lib/anki/deck.rb', line 4

def card_data
  @card_data
end

#card_headersObject

Returns the value of attribute card_headers.



4
5
6
# File 'lib/anki/deck.rb', line 4

def card_headers
  @card_headers
end

#field_separatorObject

Returns the value of attribute field_separator.



4
5
6
# File 'lib/anki/deck.rb', line 4

def field_separator
  @field_separator
end

Instance Method Details

#generate_deck(options = {}) ⇒ Object

Raises:

  • (ArgumentError)


12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/anki/deck.rb', line 12

def generate_deck(options = {})
  raise ArgumentError, "card_headers must be an array" if !self.card_headers.is_a?(Array)
  raise ArgumentError, "card_headers must not be empty" if self.card_headers.empty?
  raise ArgumentError, "card_data must be an array" if !self.card_data.is_a?(Array)
  raise ArgumentError, "card_data must not be empty" if self.card_data.empty?

  anki_string = ""
  anki_string << card_header_to_string()
  anki_string << self.card_data.map { |card| card_data_to_string(card) }.compact.join("\n")
  create_file(anki_string, options[:file]) if options[:file]
  anki_string
end