reaver 0.7.1 → 0.10.0
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +7 -0
- data/README.md +22 -3
- data/bin/reaver +1 -1
- data/lib/reaver/collection.rb +43 -22
- data/lib/reaver/version.rb +1 -1
- data/lib/reaver/walk.rb +64 -0
- data/lib/reaver.rb +21 -15
- data/reaver.gemspec +5 -4
- data.tar.gz.sig +0 -0
- metadata +44 -29
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 3dfb30ee44d119ba98c2d8f0aa24a12db7d333447aac2acd371a3a0a668c6685
         | 
| 4 | 
            +
              data.tar.gz: 7ce4e56102a407c06ed8895dc1a9191c1070bcf3705fe4f61c8d6af9dc9a89b2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3d51222bcd09ef5f123f14d17219fee0b2e59053b3743bea8efecf303004c8c7523176fd0afec27d5b396f68ac7246cc35bd3daf911941e09de23d61fb0e90c1
         | 
| 7 | 
            +
              data.tar.gz: 98d6e1025629ac00371ae10c909363439662e80adb4d5d7ed233c34d2b1beb8921ea32868fc2b89cd7b271c21743a0b1e3d186d1c3fb5cdf3face02cc06887fe
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,10 @@ | |
| 1 | 
            +
            ## 0.10.0, release 10/2024
         | 
| 2 | 
            +
            - New variable for collections, all_into_dir, things.dest_dir, keep_name and
         | 
| 3 | 
            +
              force_download.
         | 
| 4 | 
            +
            -** Use [Marcel](https://github.com/rails/marcel) to detect file mime.
         | 
| 5 | 
            +
            - Can decompress archive `zip` or `tar.gz (gzip)` using unzip and tar from `unix`.
         | 
| 6 | 
            +
            - Cam move files to specific directory.
         | 
| 7 | 
            +
             | 
| 1 8 | 
             
            ## 0.7.0, release 12/24/22
         | 
| 2 9 |  | 
| 3 10 | 
             
            * Each collections download things in separate directory.
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,7 +1,12 @@ | |
| 1 1 | 
             
            # reaver
         | 
| 2 2 |  | 
| 3 3 | 
             
            A tool that allows to download and track the latest version of stuff on the net.
         | 
| 4 | 
            -
            Define your collections in .yml and launch Reaver to retrieve everything | 
| 4 | 
            +
            Define your collections in .yml and launch Reaver to retrieve everything and
         | 
| 5 | 
            +
            move things to the right spot.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ## Dependencies
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Reaver need only `unzip` and `tar`.
         | 
| 5 10 |  | 
| 6 11 | 
             
            ## Collections
         | 
| 7 12 |  | 
| @@ -30,10 +35,24 @@ things: | |
| 30 35 | 
             
              - name: nerdtree.tar.gz
         | 
| 31 36 | 
             
                url: https://github.com/preservim/nerdtree/archive/refs/heads/master.tar.gz
         | 
| 32 37 | 
             
            time: 86000
         | 
| 38 | 
            +
            all_into_dir: ~/.config/pack/myvimpluggins/start
         | 
| 39 | 
            +
            keep_name: true
         | 
| 33 40 | 
             
            ```
         | 
| 34 41 |  | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 42 | 
            +
            To see more examples, go
         | 
| 43 | 
            +
            [here](https://github.com/szorfein/dots/tree/ansible/home/private_dot_config/reaver)
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            A collection can include:
         | 
| 46 | 
            +
            - `all_into_dir: <dirname>` if all files go in a directory. Directory is created
         | 
| 47 | 
            +
              if not exist.
         | 
| 48 | 
            +
            - `keep_name: <boolean>`, if `true`, use the name of the thing for the dest, e.g, for a name `ombre.tar.gz`, the final dest will be `all_into_dir/ombre` or `dest_dir/ombre`.
         | 
| 49 | 
            +
            - `force_download: <boolean>`, if you make change and want to download now, change to `true`.
         | 
| 50 | 
            +
            - `things.dest_dir: <dirname>`, if each files go in differents directory, use this.
         | 
| 51 | 
            +
            - `things.name` the new name after download, may include the file extension.
         | 
| 52 | 
            +
            - `things.url: <string>`
         | 
| 53 | 
            +
            - `time: 86000` (in second) is for search every day ( 60 * 60 * 24 ).
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            If `all_into_dir` is defined, `things.dest_dir` is not used.
         | 
| 37 56 |  | 
| 38 57 | 
             
            And start reaver simply with:
         | 
| 39 58 |  | 
    
        data/bin/reaver
    CHANGED
    
    
    
        data/lib/reaver/collection.rb
    CHANGED
    
    | @@ -5,6 +5,7 @@ require 'time' | |
| 5 5 | 
             
            require 'digest'
         | 
| 6 6 |  | 
| 7 7 | 
             
            module Reaver
         | 
| 8 | 
            +
              # Loading collection from ~/.config/reaver/<filename.yml> and threat them
         | 
| 8 9 | 
             
              class Collection
         | 
| 9 10 | 
             
                attr_reader :tasks
         | 
| 10 11 |  | 
| @@ -15,39 +16,59 @@ module Reaver | |
| 15 16 |  | 
| 16 17 | 
             
                def load_yaml
         | 
| 17 18 | 
             
                  puts ">> Loading #{@file}..."
         | 
| 18 | 
            -
                  if RUBY_VERSION >= '3.0'
         | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
                rescue =>  | 
| 24 | 
            -
                  raise  | 
| 19 | 
            +
                  @tasks = if RUBY_VERSION >= '3.0'
         | 
| 20 | 
            +
                             YAML.load_file(@file, permitted_classes: [Time, Symbol])
         | 
| 21 | 
            +
                           else
         | 
| 22 | 
            +
                             @tasks = YAML.load_file(@file)
         | 
| 23 | 
            +
                           end
         | 
| 24 | 
            +
                rescue => e
         | 
| 25 | 
            +
                  raise e, "loading YAML fail for #{@file}: #{e.message}"
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                def save_yaml
         | 
| 29 | 
            +
                  in_yaml = YAML.dump(@tasks)
         | 
| 30 | 
            +
                  File.write(@file, in_yaml)
         | 
| 25 31 | 
             
                end
         | 
| 26 32 |  | 
| 27 33 | 
             
                def launch(metadata)
         | 
| 28 | 
            -
                  return unless @tasks
         | 
| 34 | 
            +
                  return unless @tasks || @tasks['things'].length.zero?
         | 
| 29 35 |  | 
| 30 | 
            -
                   | 
| 31 | 
            -
                     | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
                        @changed = true
         | 
| 36 | 
            -
                      end
         | 
| 36 | 
            +
                  @tasks['things'].each do |task|
         | 
| 37 | 
            +
                    do_thing(task)
         | 
| 38 | 
            +
                    metadata.info['changed'] = @changed
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
                end
         | 
| 37 41 |  | 
| 38 | 
            -
             | 
| 39 | 
            -
                      compare_hash(t['name'], old_hash) if old_hash
         | 
| 42 | 
            +
                protected
         | 
| 40 43 |  | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
                   | 
| 44 | 
            +
                def do_thing(task)
         | 
| 45 | 
            +
                  hash_exist(task['name'])
         | 
| 46 | 
            +
                  Reaver.download(task['url'], task['name'])
         | 
| 47 | 
            +
                  compare_to_old_hash(task['name']) if @old_hash
         | 
| 48 | 
            +
                  need_to_do_something_with(task) if @changed || !@old_hash
         | 
| 49 | 
            +
                  @tasks['force_download'] = false
         | 
| 50 | 
            +
                  @changed = false
         | 
| 44 51 | 
             
                end
         | 
| 45 52 |  | 
| 46 53 | 
             
                private
         | 
| 47 54 |  | 
| 48 | 
            -
                def  | 
| 55 | 
            +
                def hash_exist(file)
         | 
| 56 | 
            +
                  if File.exist? file
         | 
| 57 | 
            +
                    @old_hash = Digest::MD5.file file
         | 
| 58 | 
            +
                  else
         | 
| 59 | 
            +
                    @changed = true
         | 
| 60 | 
            +
                  end
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                def compare_to_old_hash(filename)
         | 
| 49 64 | 
             
                  hash = Digest::MD5.file filename
         | 
| 50 | 
            -
                  @changed = true if old_hash.hexdigest != hash.hexdigest
         | 
| 65 | 
            +
                  @changed = true if @old_hash.hexdigest != hash.hexdigest
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                def need_to_do_something_with(file)
         | 
| 69 | 
            +
                  dest = @tasks['all_to_dest_dir'] || file['dest_dir']
         | 
| 70 | 
            +
                  keep_name = @tasks['keep_name'] || false
         | 
| 71 | 
            +
                  Reaver::Walk.new(file['name'], dest, keep_name) if dest
         | 
| 51 72 | 
             
                end
         | 
| 52 73 | 
             
              end
         | 
| 53 74 | 
             
            end
         | 
    
        data/lib/reaver/version.rb
    CHANGED
    
    
    
        data/lib/reaver/walk.rb
    ADDED
    
    | @@ -0,0 +1,64 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'marcel'
         | 
| 4 | 
            +
            require 'fileutils'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Reaver
         | 
| 7 | 
            +
              # extract, move file if need
         | 
| 8 | 
            +
              class Walk
         | 
| 9 | 
            +
                def initialize(filename, dest, keep_name)
         | 
| 10 | 
            +
                  @filename = filename
         | 
| 11 | 
            +
                  @dest = dest
         | 
| 12 | 
            +
                  @keep_name = keep_name || false
         | 
| 13 | 
            +
                  check_extension
         | 
| 14 | 
            +
                  check_name
         | 
| 15 | 
            +
                  x
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def x
         | 
| 19 | 
            +
                  case @extension
         | 
| 20 | 
            +
                  when %r{^image/jpeg} || %r{^image/png}
         | 
| 21 | 
            +
                    copy_file
         | 
| 22 | 
            +
                  when %r{^application/zip}
         | 
| 23 | 
            +
                    extract_zip
         | 
| 24 | 
            +
                  when %r{^application/gzip}
         | 
| 25 | 
            +
                    extract_gzip
         | 
| 26 | 
            +
                  when %r{^font/ttf}
         | 
| 27 | 
            +
                    copy_file
         | 
| 28 | 
            +
                  else
         | 
| 29 | 
            +
                    puts "Filetype #{@extension} not yet supported, skipping..."
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                private
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                def check_extension
         | 
| 36 | 
            +
                  File.open @filename do |f|
         | 
| 37 | 
            +
                    @extension = Marcel::MimeType.for f
         | 
| 38 | 
            +
                  end
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                def check_name
         | 
| 42 | 
            +
                  name = @filename.split('.').first
         | 
| 43 | 
            +
                  @final_dest = @keep_name ? "#{@dest}/#{name}" : @dest
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                def copy_file
         | 
| 47 | 
            +
                  puts "Copying file #{@filename} at #{@final_dest}..."
         | 
| 48 | 
            +
                  FileUtils.mkdir_p @final_dest
         | 
| 49 | 
            +
                  FileUtils.cp @filename, "#{@final_dest}/#{@filename}"
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                def extract_zip
         | 
| 53 | 
            +
                  puts "Extracting zip archive #{@filename} at #{@final_dest}..."
         | 
| 54 | 
            +
                  FileUtils.mkdir_p @final_dest
         | 
| 55 | 
            +
                  `unzip -j #{@filename} -d #{@final_dest}`
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                def extract_gzip
         | 
| 59 | 
            +
                  puts "Extracting gzip archive #{@filename} at #{@final_dest}..."
         | 
| 60 | 
            +
                  FileUtils.mkdir_p @final_dest
         | 
| 61 | 
            +
                  `tar -x --strip-components=1 -f #{@filename} --one-top-level=#{@final_dest}`
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
              end
         | 
| 64 | 
            +
            end
         | 
    
        data/lib/reaver.rb
    CHANGED
    
    | @@ -5,6 +5,7 @@ require_relative 'reaver/banner' | |
| 5 5 | 
             
            require_relative 'reaver/download'
         | 
| 6 6 | 
             
            require_relative 'reaver/metadata'
         | 
| 7 7 | 
             
            require_relative 'reaver/collection'
         | 
| 8 | 
            +
            require_relative 'reaver/walk'
         | 
| 8 9 |  | 
| 9 10 | 
             
            require 'whirly'
         | 
| 10 11 | 
             
            require 'fileutils'
         | 
| @@ -22,8 +23,8 @@ module Reaver | |
| 22 23 |  | 
| 23 24 | 
             
              # Configure Whirly
         | 
| 24 25 | 
             
              Whirly.configure spinner: 'bouncingBar',
         | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 26 | 
            +
                               color: true,
         | 
| 27 | 
            +
                               ambiguous_characters_width: 1
         | 
| 27 28 |  | 
| 28 29 | 
             
              def self.main
         | 
| 29 30 | 
             
                FileUtils.mkdir_p(WORKDIR)
         | 
| @@ -40,22 +41,27 @@ module Reaver | |
| 40 41 | 
             
                  collection = Collection.new(f)
         | 
| 41 42 | 
             
                  collection.load_yaml
         | 
| 42 43 |  | 
| 43 | 
            -
                   | 
| 44 | 
            -
                    metadata = MetaData.new(workdir, collection)
         | 
| 45 | 
            -
                    metadata.load_yaml
         | 
| 46 | 
            -
                    next_download = metadata.info['next']
         | 
| 44 | 
            +
                  #puts collection.tasks
         | 
| 47 45 |  | 
| 48 | 
            -
             | 
| 46 | 
            +
                  next unless collection.tasks
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  metadata = MetaData.new(workdir, collection)
         | 
| 49 | 
            +
                  metadata.load_yaml
         | 
| 50 | 
            +
                  next_download = metadata.info['next']
         | 
| 51 | 
            +
                  force_download = collection.tasks['force_download'] || false
         | 
| 52 | 
            +
                  #puts "should we force #{force_download}"
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  if next_download < Time.new || force_download
         | 
| 49 55 | 
             
                      #puts ' >> Download time for ' + name
         | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
                     | 
| 54 | 
            -
             | 
| 55 | 
            -
                     | 
| 56 | 
            -
             | 
| 57 | 
            -
                    metadata.save_yaml
         | 
| 56 | 
            +
                    FileUtils.chdir(workdir)
         | 
| 57 | 
            +
                    #puts "  > chdir #{workdir}"
         | 
| 58 | 
            +
                    collection.launch(metadata)
         | 
| 59 | 
            +
                    collection.save_yaml if force_download
         | 
| 60 | 
            +
                  else
         | 
| 61 | 
            +
                    puts " > Next download > #{next_download}"
         | 
| 58 62 | 
             
                  end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                  metadata.save_yaml
         | 
| 59 65 | 
             
                end
         | 
| 60 66 | 
             
              end
         | 
| 61 67 | 
             
            end
         | 
    
        data/reaver.gemspec
    CHANGED
    
    | @@ -24,7 +24,7 @@ Gem::Specification.new do |s| | |
| 24 24 | 
             
                'changelog_uri' => 'https://github.com/szorfein/reaver/blob/main/CHANGELOG.md',
         | 
| 25 25 | 
             
                'source_code_uri' => 'https://github.com/szorfein/reaver',
         | 
| 26 26 | 
             
                'wiki_uri' => 'https://github.com/szorfein/reaver/wiki',
         | 
| 27 | 
            -
                'funding_uri' => 'https://patreon.com/szorfein' | 
| 27 | 
            +
                'funding_uri' => 'https://patreon.com/szorfein'
         | 
| 28 28 | 
             
              }
         | 
| 29 29 |  | 
| 30 30 | 
             
              s.files = Dir.glob('{lib,bin}/**/*', File::FNM_DOTMATCH).reject do |f|
         | 
| @@ -38,10 +38,11 @@ Gem::Specification.new do |s| | |
| 38 38 | 
             
              s.executables << 'reaver'
         | 
| 39 39 | 
             
              s.extra_rdoc_files = %w[README.md]
         | 
| 40 40 |  | 
| 41 | 
            -
              s.cert_chain = %w[certs/szorfein.pem]
         | 
| 42 | 
            -
              s.signing_key = File.expand_path('~/.ssh/gem-private_key.pem')
         | 
| 41 | 
            +
              # s.cert_chain = %w[certs/szorfein.pem]
         | 
| 42 | 
            +
              # s.signing_key = File.expand_path('~/.ssh/gem-private_key.pem')
         | 
| 43 43 |  | 
| 44 44 | 
             
              s.required_ruby_version = '>=2.6'
         | 
| 45 | 
            -
              s.add_dependency ' | 
| 45 | 
            +
              s.add_dependency 'marcel'
         | 
| 46 46 | 
             
              s.add_dependency 'paint', '~> 2.3'
         | 
| 47 | 
            +
              s.add_dependency 'whirly', '~> 0.3'
         | 
| 47 48 | 
             
            end
         | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: reaver
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.10.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - szorfein
         | 
| @@ -12,46 +12,46 @@ cert_chain: | |
| 12 12 | 
             
              -----BEGIN CERTIFICATE-----
         | 
| 13 13 | 
             
              MIIEhTCCAu2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBEMREwDwYDVQQDDAhzem9y
         | 
| 14 14 | 
             
              ZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJk/IsZAEZ
         | 
| 15 | 
            -
               | 
| 15 | 
            +
              FgNjb20wHhcNMjMxMDIzMTcyMTA4WhcNMjQxMDIyMTcyMTA4WjBEMREwDwYDVQQD
         | 
| 16 16 | 
             
              DAhzem9yZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJ
         | 
| 17 | 
            -
              k/ | 
| 18 | 
            -
               | 
| 19 | 
            -
               | 
| 20 | 
            -
               | 
| 21 | 
            -
               | 
| 22 | 
            -
               | 
| 23 | 
            -
               | 
| 24 | 
            -
               | 
| 25 | 
            -
               | 
| 26 | 
            -
              AaOBgTB/ | 
| 27 | 
            -
               | 
| 17 | 
            +
              k/IsZAEZFgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCqe1yx
         | 
| 18 | 
            +
              EG2oM25jeHp08A8zkaDNmbI3MujjrRM/WPEYZX2dVwOxkIS20hQVuxcAsBBA4W/W
         | 
| 19 | 
            +
              kuPbqRkvLboaGaxLrllkSEJw9HA/GesTdXLyCFYmNzSFqGh5BafNSkxoiDhTavxp
         | 
| 20 | 
            +
              xvYzAkYR/3CzSOWSxJk73wIg+F7w/nWJPTt2tgJE9hgR8uuFY+EzPOlFZhkFTdCV
         | 
| 21 | 
            +
              88sBGuZPMjq7ASQVBE3UA+Y1xJeXE3/FhIhYvLnjevkkDLSLFmox0ZQf6nx6abuL
         | 
| 22 | 
            +
              KTOGRA1bfLfkW5HMh5X5JwViliwG3RWhqAukJUgHTUk+oKtejlzSDqupwOenKZf0
         | 
| 23 | 
            +
              xI2/BnS8zOsS6Te08iLxqZfI/lsG8wcPduekSetRI4VIOZ5QoRK54PiQjrOBhbnD
         | 
| 24 | 
            +
              OQBB/XF1C80imZtRtdUqh6bK9WeWI4RYZ2/KwXL1AScEbXkBkkOECWoVrD18WgRm
         | 
| 25 | 
            +
              siuX6RkNIelhtb0En7f3bizgPqlO0qPQV+wPi9TSBxdVG12C0OmjCQYMQD0CAwEA
         | 
| 26 | 
            +
              AaOBgTB/MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBTlKnQ3qMUF
         | 
| 27 | 
            +
              zydvZaKwdP+dnj2uajAiBgNVHREEGzAZgRdzem9yZmVpbkBwcm90b25tYWlsLmNv
         | 
| 28 28 | 
             
              bTAiBgNVHRIEGzAZgRdzem9yZmVpbkBwcm90b25tYWlsLmNvbTANBgkqhkiG9w0B
         | 
| 29 | 
            -
               | 
| 30 | 
            -
               | 
| 31 | 
            -
               | 
| 32 | 
            -
               | 
| 33 | 
            -
               | 
| 34 | 
            -
               | 
| 35 | 
            -
               | 
| 36 | 
            -
               | 
| 37 | 
            -
               | 
| 29 | 
            +
              AQsFAAOCAYEAFjnBWWfaMeA8hP0Q76WmBCFckGN5I42X5RQkVYRRXIaeXIS1td/t
         | 
| 30 | 
            +
              O1v1iQLo6ABfASMi6We7T16+ita68xwNOmSkMNHHXBr/fdGbHExxFSX7BXNRbwla
         | 
| 31 | 
            +
              SS6Vy0bXKMDJbXcvkrmIolpYhEFm1218FCRCT6ogM1oWAJAfhfF9pMeRxrxjQYFn
         | 
| 32 | 
            +
              ko8XgjIHxb83miOILgdq/lgJ4gfD7PsGfJtLCLiCKCcxIb4TtmKAzRwCDVpb6wqM
         | 
| 33 | 
            +
              5xJZffAmHI7v8lVer53sPzm3INPu5xFZyfZ/SXYXPKKwln0efH63K5vuXYwEN7NI
         | 
| 34 | 
            +
              SBSRTN03Hb65t86m6/r084SrNnLntQjCSqApzFBt1QwJ5cmiVilODN4V7y2hZpyK
         | 
| 35 | 
            +
              hSk3b2VOotDPiWIm1p/IPXQDfm5x67Z5fJQPAlBTsse4jKyVyW1lZLmERSBuRZ2O
         | 
| 36 | 
            +
              urXgRIzALxd/xazPCnoLSXPzfJSI6Y77S1EBvhPd9RaSO8IyH9RhPDP9mnTvW2Kl
         | 
| 37 | 
            +
              NAUnoL+txK5a
         | 
| 38 38 | 
             
              -----END CERTIFICATE-----
         | 
| 39 | 
            -
            date:  | 
| 39 | 
            +
            date: 2024-10-06 00:00:00.000000000 Z
         | 
| 40 40 | 
             
            dependencies:
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name:  | 
| 42 | 
            +
              name: marcel
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - - " | 
| 45 | 
            +
                - - ">="
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: '0 | 
| 47 | 
            +
                    version: '0'
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - - " | 
| 52 | 
            +
                - - ">="
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: '0 | 
| 54 | 
            +
                    version: '0'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: paint
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -66,6 +66,20 @@ dependencies: | |
| 66 66 | 
             
                - - "~>"
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: '2.3'
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: whirly
         | 
| 71 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                requirements:
         | 
| 73 | 
            +
                - - "~>"
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            +
                    version: '0.3'
         | 
| 76 | 
            +
              type: :runtime
         | 
| 77 | 
            +
              prerelease: false
         | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - "~>"
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: '0.3'
         | 
| 69 83 | 
             
            description: |2
         | 
| 70 84 | 
             
                  A tool that allows to download and track the latest version of stuff on the net.
         | 
| 71 85 | 
             
                  Define your collections in .yml and launch Reaver to retrieve everything.
         | 
| @@ -86,6 +100,7 @@ files: | |
| 86 100 | 
             
            - lib/reaver/download.rb
         | 
| 87 101 | 
             
            - lib/reaver/metadata.rb
         | 
| 88 102 | 
             
            - lib/reaver/version.rb
         | 
| 103 | 
            +
            - lib/reaver/walk.rb
         | 
| 89 104 | 
             
            - reaver.gemspec
         | 
| 90 105 | 
             
            homepage: https://github.com/szorfein/reaver
         | 
| 91 106 | 
             
            licenses:
         | 
| @@ -111,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 111 126 | 
             
                - !ruby/object:Gem::Version
         | 
| 112 127 | 
             
                  version: '0'
         | 
| 113 128 | 
             
            requirements: []
         | 
| 114 | 
            -
            rubygems_version: 3.3. | 
| 129 | 
            +
            rubygems_version: 3.3.25
         | 
| 115 130 | 
             
            signing_key:
         | 
| 116 131 | 
             
            specification_version: 4
         | 
| 117 132 | 
             
            summary: A tool to downloads and track updates of things on the Net.
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |