ankirb 0.1.3 → 0.1.4

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: 0590f9a5bb353ee322d8c2b465c5dabd26dae92d
4
- data.tar.gz: 8ad2652a4483b9914be1ad9a673f6741671c7739
3
+ metadata.gz: 1e067d42f5f163a0c774309b1e50d79cc0a53c77
4
+ data.tar.gz: 611ebd148c7631dc737a39999b3db1fe8c23293e
5
5
  SHA512:
6
- metadata.gz: 6451de0883d1580cdee90532299bbbcfce158637911a5763ec69a9fd8ad6aa0c626d3ba88677379312c31c286ca59743ca3e83015f8c84e389fe5c5366843add
7
- data.tar.gz: bcbbf81515ee5576554ca1540431fb1d9cde1509dd2ad889f5f63fa610e163c2a05daa034fb7e9d3e1f84673447ebd8268da30c2d9ae5d3cf4b29de6c60f300c
6
+ metadata.gz: b697663dbbcb09b0f2ddbe54e2b73ea3b65612c0607db83248517bcbd03030dd80f5553524fec5a2526e630db8ab7fb7f2762fcc84892a7d6af27dce45481ffc
7
+ data.tar.gz: 496c5c34f38826594377fc9403cecf2a87950c90f8224bc133a218d3b051193da119a63c48f09c56957a8dcce55899b83d0aa4ca6467f67134c0f87a89fb413a
data/README.md CHANGED
@@ -25,16 +25,25 @@ Or install it yourself as:
25
25
  ```ruby
26
26
  require 'ankirb'
27
27
 
28
- card = Anki::Card.new(:front=>"What is the french for cheese omelette?", :back=>"Omelette au fromage")
28
+ #create a deck
29
29
  deck = Anki::Deck.new 'FancyExampleDeck'
30
+
31
+ #create a basic card
32
+ card = Anki::Card.new(:front=>"What is the french for cheese omelette?", :back=>"Omelette au fromage")
33
+
34
+ #add audio to the back
35
+ card.back << "dexters_lab_omelette.wav"
36
+
37
+ #add card to the deck
30
38
  deck.add_card card
31
39
 
32
- Anki::apkg.export deck, "~/Anki/Decks" #export to ~/Anki/Decks/FancyExampleDeck.apkg
40
+ #export to ~/Anki/Decks/FancyExampleDeck.apkg
41
+ Anki::apkg.export deck, "~/Anki/Decks"
33
42
  ```
34
43
 
35
44
  ## Contributing
36
45
 
37
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/ankirb.
46
+ Bug reports and pull requests are welcome on GitHub at https://github.com/rkachowski/ankirb.
38
47
 
39
48
 
40
49
  ## License
@@ -11,40 +11,39 @@ module Anki
11
11
 
12
12
  def self.export deck, path
13
13
  Dir.mktmpdir do |dir|
14
- Dir.chdir(dir) do
15
- db = DB.create 'collection.anki2'
14
+ db = DB.create File.join(dir,'collection.anki2')
16
15
 
17
- export_media deck
16
+ export_media deck, dir
18
17
  export_deck deck, db
18
+
19
19
  filename = deck.name + '.apkg'
20
- archive = Zip::File.open(filename, Zip::File::CREATE)
20
+ archive = Zip::File.open(File.join(dir,filename), Zip::File::CREATE)
21
21
 
22
- Dir.glob('*').each do |file|
23
- archive.add(file, file)
22
+ Dir.glob(File.join(dir,'*')).each do |file|
23
+ archive.add( File.basename(file),file)
24
24
  end
25
25
 
26
26
  archive.close()
27
27
 
28
- FileUtils.move(filename, path)
29
- end
28
+ FileUtils.move(File.join(dir,filename), path)
30
29
  end
31
30
  end
32
31
 
33
32
  private
34
- def self.export_media deck
33
+ def self.export_media deck, path
35
34
  media_cards = deck.cards.select{|c| c.has_media? }
36
35
  faces_with_media = media_cards.reduce([]){|arr,c| arr.push(c.front,c.back)}.select{|f|!f.media.empty?}
37
36
  media ={}
38
37
 
39
38
  faces_with_media.each do |face|
40
39
  face.media.each do |media_reference|
41
- #face << MediaManager.get_tag_for(media_reference)
42
- FileUtils.cp media_reference, media.length.to_s
40
+ face << MediaManager.get_tag_for(media_reference)
41
+ FileUtils.cp media_reference, File.join(path, media.length.to_s)
43
42
  media[media.size.to_s] = File.basename(media_reference)
44
43
  end
45
44
  end
46
45
 
47
- File.open('media', 'w'){|f| f << media.to_json }
46
+ File.open(File.join(path, 'media'), 'w'){|f| f << media.to_json }
48
47
  end
49
48
 
50
49
  def self.export_deck deck, db
@@ -72,8 +71,8 @@ module Anki
72
71
  )"
73
72
 
74
73
  deck.cards.each do |card|
75
- #flds is front and back of card separated by \xf1
76
- flds_bytes = [card.front.content, card.back.content].map{|f|f.bytes}.insert(1, 'f1'.hex)
74
+ #flds is front and back of card separated by \x1f
75
+ flds_bytes = [card.front.content, card.back.content].map{|f|f.bytes}.insert(1, '1f'.hex)
77
76
  flds = flds_bytes.flatten.pack('U*')
78
77
 
79
78
  note = {
@@ -9,7 +9,7 @@ module Anki
9
9
  when media.image?
10
10
  when media.video?
11
11
  when media.audio?
12
- " [sound:#{File.basename(filepath)}]"
12
+ "[sound:#{File.basename(filepath)}]"
13
13
  else
14
14
  raise "Unknown media type - #{filepath}"
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module Anki
2
- VERSION = '0.1.3' unless const_defined?(:VERSION)
2
+ VERSION = '0.1.4' unless const_defined?(:VERSION)
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ankirb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donald Hutchison
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-17 00:00:00.000000000 Z
11
+ date: 2016-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  version: '0'
167
167
  requirements: []
168
168
  rubyforge_project:
169
- rubygems_version: 2.5.1
169
+ rubygems_version: 2.5.2
170
170
  signing_key:
171
171
  specification_version: 4
172
172
  summary: A gem to create Anki decks for loading in an Anki flashcard application