anki 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d03bcf99764d976e6bc02dbdbf1da11545251922
4
- data.tar.gz: 236e8230c7c684cbc3725df691c9bfcfac28e686
3
+ metadata.gz: 940654172201a6b4de10c67eb11c368c2b267077
4
+ data.tar.gz: 7bf0e269515b06e5717fe6348e48b238fae5433b
5
5
  SHA512:
6
- metadata.gz: 3bbc95a72f555828ef77a8ab885fe20816a20148683fc408f918e4d04cc45fd784c357f5426c8410c8c02dc47bc36cc6e09da424d2d1ba1adcc80d35a15a76a8
7
- data.tar.gz: 73b38e18b8b3f2633ef134365e42e9a3c40d2e00717aa62fc4e6106d1a06c05e7b458ca43dc54d59cb9161ee8d1ef6b147c77bc78abe0bdcd22da2d1ee8d2eb8
6
+ metadata.gz: 3e12a89d99a6389e7d39dfe0aea0c21a836dcfff3db56420075605c769e0cc81dd65596ef3209ee98b53cd802d5d4ca53af10804ea4c8e7d7423bbb7e8ce9cea
7
+ data.tar.gz: 2699b02fa6866fcdb7c6f13b5876ad33930244793dab71b1756136c7806cce10044d69eb1b7537915ec5aeb1d81c36bea1dc2911e703c285df5cbe260f946a52
@@ -1,7 +1,8 @@
1
1
  language: ruby
2
+ sudo: false
2
3
  rvm:
3
- - 2.2
4
- - 2.1
4
+ - 2.3.1
5
+ - 2.2.5
6
+ - 2.1.10
5
7
  - 2.0.0
6
8
  - 1.9.3
7
- - 1.9.2
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.4 (August 11, 2016)
4
+ * #4: Custom field separators can be specified when generating a deck - Thanks to Bill Robinson (@dseevr)
5
+
6
+ ## 0.0.3 (February 2, 2015)
7
+ * Card headers must to be set up when generating the deck.
8
+
3
9
  ## 0.0.2 (April 20, 2014)
4
10
  * Card data can now include tags for importing into Anki.
5
11
 
data/README.md CHANGED
@@ -58,6 +58,7 @@ deck.generate_deck(file: "/tmp/anki_deck.txt")
58
58
  ```
59
59
 
60
60
  ### Including card tags
61
+
61
62
  Tags are nothing special. Any field can be used as the Tag. When you are importing to Anki set the Field mapping to "Map to Tags" by clicking on the Change button for the field that contains your tags.
62
63
 
63
64
  ```ruby
@@ -73,6 +74,23 @@ deck.generate_deck
73
74
  # => "#front;back;Tags\nFront of the card;Back of the card;one_tag\nAnother card;Another answer;multiple tags are separated by spaces"
74
75
  ```
75
76
 
77
+ ### Custom field separators
78
+
79
+ By default, fields are separated by semicolons when generating a deck. If you want to use a custom field separator, you can add an optional `field_separator` option when generating the deck.
80
+
81
+ ```ruby
82
+ require 'anki'
83
+
84
+ headers = [ "front", "back", "Tags" ]
85
+ cards = [
86
+ { "front" => "Front of the card", "back" => "Back of the card", "Tags" => "one_tag" },
87
+ { "front" => "Another card", "back" => "Another answer", "Tags" => "multiple tags are separated by spaces" }
88
+ ]
89
+ deck = Anki::Deck.new(card_headers: headers, card_data: cards, field_separator: "|")
90
+ deck.generate_deck
91
+ # => "#front|back|Tags\nFront of the card|Back of the card|one_tag\nAnother card|Another answer|multiple tags are separated by spaces"
92
+ ```
93
+
76
94
  ## Contributing
77
95
 
78
96
  1. Fork the anki gem into your own repo (https://github.com/dennmart/anki/fork)
@@ -13,6 +13,8 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://github.com/dennmart/anki"
14
14
  spec.license = "MIT"
15
15
 
16
+ spec.required_ruby_version = '>= 1.9.3'
17
+
16
18
  spec.files = `git ls-files -z`.split("\x0")
17
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
@@ -1,11 +1,12 @@
1
1
  # coding: utf-8
2
2
  module Anki
3
3
  class Deck
4
- attr_accessor :card_headers,:card_data
4
+ attr_accessor :card_headers,:card_data,:field_separator
5
5
 
6
6
  def initialize(options = {})
7
7
  @card_headers = options.delete(:card_headers)
8
8
  @card_data = options.delete(:card_data)
9
+ @field_separator = options.delete(:field_separator) || ";"
9
10
  end
10
11
 
11
12
  def generate_deck(options = {})
@@ -24,7 +25,7 @@ module Anki
24
25
  private
25
26
 
26
27
  def card_header_to_string()
27
- "#" + self.card_headers.join(";") + "\n"
28
+ "#" + self.card_headers.join(@field_separator) + "\n"
28
29
  end
29
30
 
30
31
  def card_data_to_string(card)
@@ -32,7 +33,7 @@ module Anki
32
33
 
33
34
  card.default = ""
34
35
 
35
- self.card_headers.map{ |header| card[header] }.join(";")
36
+ self.card_headers.map{ |header| card[header] }.join(@field_separator)
36
37
  end
37
38
 
38
39
  def create_file(str, file)
@@ -1,3 +1,3 @@
1
1
  module Anki
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -60,6 +60,13 @@ RSpec.describe Anki::Deck do
60
60
  expect(subject.generate_deck).to eq("#front;back\na;b\nc;d")
61
61
  end
62
62
 
63
+ it "returns a string with the card_headers comment, card_data values separated by a custom delimiter, and new cards by line breaks" do
64
+ subject.card_headers = headers
65
+ subject.card_data = cards
66
+ subject.field_separator = "|"
67
+ expect(subject.generate_deck).to eq("#front|back\na|b\nc|d")
68
+ end
69
+
63
70
  it "saves to a file if the file option is passed" do
64
71
  subject.card_headers = headers
65
72
  subject.card_data = cards
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Martinez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-02 00:00:00.000000000 Z
11
+ date: 2016-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -87,7 +87,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: 1.9.3
91
91
  required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - ">="
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  version: '0'
96
96
  requirements: []
97
97
  rubyforge_project:
98
- rubygems_version: 2.4.5
98
+ rubygems_version: 2.6.6
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: Generate decks ready to be imported into Anki!