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 +4 -4
- data/.travis.yml +4 -3
- data/CHANGELOG.md +6 -0
- data/README.md +18 -0
- data/anki.gemspec +2 -0
- data/lib/anki/deck.rb +4 -3
- data/lib/anki/version.rb +1 -1
- data/spec/anki/deck_spec.rb +7 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 940654172201a6b4de10c67eb11c368c2b267077
|
4
|
+
data.tar.gz: 7bf0e269515b06e5717fe6348e48b238fae5433b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e12a89d99a6389e7d39dfe0aea0c21a836dcfff3db56420075605c769e0cc81dd65596ef3209ee98b53cd802d5d4ca53af10804ea4c8e7d7423bbb7e8ce9cea
|
7
|
+
data.tar.gz: 2699b02fa6866fcdb7c6f13b5876ad33930244793dab71b1756136c7806cce10044d69eb1b7537915ec5aeb1d81c36bea1dc2911e703c285df5cbe260f946a52
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -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)
|
data/anki.gemspec
CHANGED
@@ -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)/})
|
data/lib/anki/deck.rb
CHANGED
@@ -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(
|
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)
|
data/lib/anki/version.rb
CHANGED
data/spec/anki/deck_spec.rb
CHANGED
@@ -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.
|
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:
|
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:
|
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.
|
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!
|