ankirb 0.1.3 → 0.1.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: 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