anki 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1821356b088ea19655b5ac0d3365a754053c6a4
4
- data.tar.gz: 43d256ce60dd223d14608147b64c1f3b62f96584
3
+ metadata.gz: 6c21472ccaf55739e044a25afb9ffc66e2752a41
4
+ data.tar.gz: b21056c3a15d6e8e32408d11f2073e474a21323b
5
5
  SHA512:
6
- metadata.gz: cbc2ba00f45a777cca7561e73224fcbf2dd1c7c148bf16625f47bd56b0c17ec790f95ad2f0743a976dd03ef2e47db46153fb81991ecca39ec67174de4fc70bb6
7
- data.tar.gz: cc2243b6267c3c569645508f48f539803ceecc815c588627e2560120ade04c000589c695dfd4c63f0953220d35a3819b069542859c82250c27620e0df0898f27
6
+ metadata.gz: d6661f4ae89070e88e122b2dd9d6db74649c630d617cb16dec93eb2c062ea65b5f9d7b5b28affb4e820e5db714428b991d6071414770efdb749a1e1b858a2890
7
+ data.tar.gz: d1cd3de9ecd1f9e7896f8b575ae9fa49bcafc4e7b2f323d64df65e188ba90e8c27e9fe6357330536e68d5fefb0adaed4451691455ec694c2886317c54ab8f1db
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.0
4
+ - 2.0.0
5
+ - 1.9.3
6
+ - 1.9.2
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.2 (April 20, 2014)
4
+ * Card data can now include tags for importing into Anki.
5
+
3
6
  ## 0.0.1 (April 8, 2014 - Initial release!)
4
7
  * Basic importing of an array of hashes into a string that can be used to create files to import to Anki (plain text only).
5
8
  * Optionally saving string directly to a file, ready to be imported into Anki.
data/README.md CHANGED
@@ -18,9 +18,9 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- After requiring the anki gem, simply create a new instance of `Anki::Deck`, pass in an array of hashes (either including the `card_data` option when creating the `Anki::Deck` object, or using the `Anki::Deck#card_data` method), and generate the deck by using the `Anki::Deck#generate_deck` method. It will return a string that is formatted to be ready to be saved into a file for importing into Anki.
21
+ ### Generating a string for cards
22
22
 
23
- Alternatively, you can pass an optional `file` option when generating the deck to save the string into a file directly.
23
+ After requiring the anki gem, simply create a new instance of `Anki::Deck`, pass in an array of hashes (either including the `card_data` option when creating the `Anki::Deck` object, or using the `Anki::Deck#card_data` method), and generate the deck by using the `Anki::Deck#generate_deck` method. It will return a string that is formatted to be ready to be saved into a file for importing into Anki.
24
24
 
25
25
  ```ruby
26
26
  require 'anki'
@@ -38,12 +38,42 @@ deck.card_data = cards
38
38
 
39
39
  deck.generate_deck
40
40
  # => "Front of the card;Back of the card\nAnother card;Another answer"
41
+ ```
42
+
43
+ ### Generating a file
44
+
45
+ Alternatively, you can pass an optional `file` option when generating the deck to save the string into a file directly.
41
46
 
47
+ ```ruby
48
+ require 'anki'
49
+
50
+ cards = [
51
+ { "Front of the card" => "Back of the card" },
52
+ { "Another card" => "Another answer" }
53
+ ]
54
+
55
+ deck = Anki::Deck.new(card_data: cards)
42
56
  # If you want to save it into a file directly, you can pass an optional `file` option
43
57
  # with the path where you want to save the file:
44
58
  deck.generate_deck(file: "/tmp/anki_deck.txt")
45
59
  ```
46
60
 
61
+ ### Including card tags
62
+
63
+ If you want to include tags with the generated Anki deck, the value of the card data can be a hash that includes an array of strings.
64
+
65
+ ```ruby
66
+ require 'anki'
67
+
68
+ card = [
69
+ { "Front" => { "value" => "Back", "tags" => ["tag1, tag2"]} }
70
+ ]
71
+
72
+ deck = Anki::Deck.new(card_data: card)
73
+ deck.generate_deck
74
+ # => "Front;Back;tag1 tag2"
75
+ ```
76
+
47
77
  ## Contributing
48
78
 
49
79
  1. Fork the anki gem into your own repo (https://github.com/dennmart/anki/fork)
@@ -18,7 +18,6 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.6"
22
21
  spec.add_development_dependency "rake"
23
22
  spec.add_development_dependency "rspec", "~> 2.14"
24
23
  spec.add_development_dependency "fakefs", "~> 0.5"
@@ -11,13 +11,26 @@ module Anki
11
11
  raise ArgumentError, "card_data should be an array of hashes" if !self.card_data.is_a?(Array)
12
12
  raise ArgumentError, "You need card data." if self.card_data.empty?
13
13
 
14
- anki_string = self.card_data.map { |card| "#{card.keys.first};#{card.values.first}" }.compact.join("\n")
14
+ anki_string = self.card_data.map { |card| card_data_to_string(card) }.compact.join("\n")
15
15
  create_file(anki_string, options[:file]) if options[:file]
16
16
  anki_string
17
17
  end
18
18
 
19
19
  private
20
20
 
21
+ def card_data_to_string(card)
22
+ front_card = card.keys.first
23
+ back_card = card.values.first
24
+
25
+ if back_card.is_a?(String)
26
+ "#{front_card};#{back_card}"
27
+ elsif back_card.is_a?(Hash)
28
+ back_card_value = back_card["value"]
29
+ tags = back_card["tags"].join(" ")
30
+ "#{front_card};#{back_card_value};#{tags}"
31
+ end
32
+ end
33
+
21
34
  def create_file(str, file)
22
35
  File.open(file, 'w') { |f| f.write(str) }
23
36
  end
@@ -1,3 +1,3 @@
1
1
  module Anki
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -31,5 +31,13 @@ describe Anki::Deck do
31
31
  subject.generate_deck(file: "/tmp/anki_deck.txt")
32
32
  File.exists?("/tmp/anki_deck.txt").should be_true
33
33
  end
34
+
35
+ it "returns a string including tags if the value of each card data is a hash" do
36
+ subject.card_data = [{ "a" => { "value" => "b", "tags" => ["level1"] } },
37
+ { "c" => { "value" => "d", "tags" => ["level1", "level2"] } }]
38
+
39
+ subject.generate_deck.should match /a;b;level1/
40
+ subject.generate_deck.should match /c;d;level1 level2/
41
+ end
34
42
  end
35
43
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Martinez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-08 00:00:00.000000000 Z
11
+ date: 2014-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.6'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -77,6 +63,7 @@ extra_rdoc_files: []
77
63
  files:
78
64
  - ".gitignore"
79
65
  - ".rspec"
66
+ - ".travis.yml"
80
67
  - CHANGELOG.md
81
68
  - Gemfile
82
69
  - LICENSE.txt