class Anki::Deck
Attributes
card_data[RW]
card_headers[RW]
field_separator[RW]
Public Class Methods
new(options = {})
click to toggle source
# 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
Public Instance Methods
generate_deck(options = {})
click to toggle source
# 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
Private Instance Methods
card_data_to_string(card)
click to toggle source
# File lib/anki/deck.rb, line 31 def card_data_to_string(card) raise ArgumentError, "card must be a hash" if !card.is_a?(Hash) card.default = "" self.card_headers.map{ |header| card[header] }.join(@field_separator) end
card_header_to_string()
click to toggle source
# File lib/anki/deck.rb, line 27 def card_header_to_string() "#" + self.card_headers.join(@field_separator) + "\n" end
create_file(str, file)
click to toggle source
# File lib/anki/deck.rb, line 39 def create_file(str, file) File.open(file, 'w') { |f| f.write(str) } end