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 +4 -4
- data/README.md +12 -3
- data/lib/ankirb/export/apkg.rb +13 -14
- data/lib/ankirb/util/media_manager.rb +1 -1
- data/lib/ankirb/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1e067d42f5f163a0c774309b1e50d79cc0a53c77
         | 
| 4 | 
            +
              data.tar.gz: 611ebd148c7631dc737a39999b3db1fe8c23293e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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 | 
            -
             | 
| 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 | 
            -
             | 
| 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/ | 
| 46 | 
            +
            Bug reports and pull requests are welcome on GitHub at https://github.com/rkachowski/ankirb.
         | 
| 38 47 |  | 
| 39 48 |  | 
| 40 49 | 
             
            ## License
         | 
    
        data/lib/ankirb/export/apkg.rb
    CHANGED
    
    | @@ -11,40 +11,39 @@ module Anki | |
| 11 11 |  | 
| 12 12 | 
             
                def self.export deck, path
         | 
| 13 13 | 
             
                  Dir.mktmpdir do |dir|
         | 
| 14 | 
            -
             | 
| 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, | 
| 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 | 
            -
                       | 
| 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 \ | 
| 76 | 
            -
                    flds_bytes = [card.front.content, card.back.content].map{|f|f.bytes}.insert(1, ' | 
| 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 = {
         | 
    
        data/lib/ankirb/version.rb
    CHANGED
    
    
    
        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. | 
| 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- | 
| 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. | 
| 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
         |