jtag 0.1.12 → 0.1.17
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 +5 -5
- data/bin/jtag +39 -41
- data/lib/jtag/jekylltag.rb +24 -17
- data/lib/jtag/version.rb +1 -1
- metadata +9 -25
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: f68f1e95a41e56ce886f6b77f116f7617918d99374b0a8bc093d06f55ec63fa1
         | 
| 4 | 
            +
              data.tar.gz: b1e2d8fe246baba7cc17b2fe86e867e91f0beed1c631021b6b02512ef8ed2641
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 767f4d931006ff59a30fb32d0f156703026f34b5c12c86fbdc02ebb56b0f3580618a411cfda9666fb299793dd88d34dec6b4dcf0804932f4f46df6dfd86b864f
         | 
| 7 | 
            +
              data.tar.gz: f9c405479a2bb93999598387815fe37d626e84391fce3f650c308bc1b4c4f1ac48a6dbb6a1e7927dedb03cd41c32c847c2a0c612d423b9105e912c085976cc0b
         | 
    
        data/bin/jtag
    CHANGED
    
    | @@ -11,10 +11,11 @@ version Jtag::VERSION | |
| 11 11 |  | 
| 12 12 | 
             
            @config_files = %w{blacklist.txt config.yml stopwords.txt synonyms.yml}
         | 
| 13 13 | 
             
            @config_target = File.expand_path("~/.jtag")
         | 
| 14 | 
            +
            @piped_content = nil
         | 
| 14 15 |  | 
| 15 16 | 
             
            def config_files_complete?
         | 
| 16 17 | 
             
              @config_files.each do |file|
         | 
| 17 | 
            -
                return false unless File.exists?(File.join(@config_target,file))
         | 
| 18 | 
            +
                return false unless File.exists?(File.join(@config_target, file))
         | 
| 18 19 | 
             
              end
         | 
| 19 20 | 
             
              true
         | 
| 20 21 | 
             
            end
         | 
| @@ -22,18 +23,18 @@ end | |
| 22 23 | 
             
            desc 'Debug level'
         | 
| 23 24 | 
             
            default_value '0'
         | 
| 24 25 | 
             
            arg_name 'debug_level'
         | 
| 25 | 
            -
            flag [ | 
| 26 | 
            +
            flag %i[d debug], :must_match => /\d+/, :type => Integer, :default_value => 0
         | 
| 26 27 |  | 
| 27 28 | 
             
            desc 'Run silently'
         | 
| 28 | 
            -
            switch [ | 
| 29 | 
            +
            switch %i[s silent]
         | 
| 29 30 |  | 
| 30 31 | 
             
            desc 'Perform case-insensitive matches and searches'
         | 
| 31 | 
            -
            switch [ | 
| 32 | 
            +
            switch %i[i case_insensitive]
         | 
| 32 33 |  | 
| 33 34 | 
             
            desc "Test (dry run, don't update files)"
         | 
| 34 35 | 
             
            long_desc "Run all commands and show results on the command line, but don't overwrite/update any files"
         | 
| 35 36 | 
             
            default_value false
         | 
| 36 | 
            -
            switch [ | 
| 37 | 
            +
            switch %i[t test]
         | 
| 37 38 |  | 
| 38 39 | 
             
            def console_log(msg="", options={})
         | 
| 39 40 | 
             
              err = options[:err] || false
         | 
| @@ -52,7 +53,7 @@ def console_log(msg="", options={}) | |
| 52 53 | 
             
              unless err
         | 
| 53 54 | 
             
                $stdout.puts msg
         | 
| 54 55 | 
             
              else
         | 
| 55 | 
            -
                 | 
| 56 | 
            +
                warn msg
         | 
| 56 57 | 
             
              end
         | 
| 57 58 | 
             
            end
         | 
| 58 59 |  | 
| @@ -110,12 +111,12 @@ command :search do |c| | |
| 110 111 | 
             
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml. Defaults to yaml.'
         | 
| 111 112 | 
             
              c.arg_name 'output_format'
         | 
| 112 113 | 
             
              c.default_value 'yaml'
         | 
| 113 | 
            -
              c.flag [ | 
| 114 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist)$/i, :type => String
         | 
| 114 115 |  | 
| 115 116 | 
             
              c.desc 'Include tag counts'
         | 
| 116 117 | 
             
              c.arg_name 'counts'
         | 
| 117 118 | 
             
              c.default_value false
         | 
| 118 | 
            -
              c.switch [ | 
| 119 | 
            +
              c.switch %i[c counts]
         | 
| 119 120 |  | 
| 120 121 | 
             
              c.action do |global_options,options,args|
         | 
| 121 122 | 
             
                tags = @jt.get_tags({:counts => true})
         | 
| @@ -152,12 +153,12 @@ command :posts_tagged do |c| | |
| 152 153 | 
             
              c.desc 'Boolean operator for multiple tags (AND/OR/NOT)'
         | 
| 153 154 | 
             
              c.arg_name 'bool'
         | 
| 154 155 | 
             
              c.default_value 'OR'
         | 
| 155 | 
            -
              c.flag [ | 
| 156 | 
            +
              c.flag %i[b bool], :must_match => /(AND|OR|NOT)/i, :type => String
         | 
| 156 157 |  | 
| 157 158 | 
             
              c.desc 'Format to use when outputting file list: list, json, plist, csv or yaml. Defaults to list.'
         | 
| 158 159 | 
             
              c.arg_name 'output_format'
         | 
| 159 160 | 
             
              c.default_value 'list'
         | 
| 160 | 
            -
              c.flag [ | 
| 161 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist)$/, :type => String
         | 
| 161 162 |  | 
| 162 163 | 
             
              c.desc 'If output format is list, print without newlines.'
         | 
| 163 164 | 
             
              c.switch [:print0]
         | 
| @@ -225,22 +226,22 @@ command :loners do |c| | |
| 225 226 | 
             
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml. Defaults to yaml.'
         | 
| 226 227 | 
             
              c.arg_name 'output_format'
         | 
| 227 228 | 
             
              c.default_value 'yaml'
         | 
| 228 | 
            -
              c.flag [ | 
| 229 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist)$/, :type => String
         | 
| 229 230 |  | 
| 230 231 | 
             
              c.desc 'Upper limit for how many posts a tag can be attached to and still be a loner'
         | 
| 231 232 | 
             
              c.arg_name 'max'
         | 
| 232 233 | 
             
              c.default_value '2'
         | 
| 233 | 
            -
              c.flag [ | 
| 234 | 
            +
              c.flag %i[m max], :default_value => 2, :must_match => /^\d+$/
         | 
| 234 235 |  | 
| 235 236 | 
             
              c.desc "Remove tags with fewer than X posts attached"
         | 
| 236 | 
            -
              c.switch [ | 
| 237 | 
            +
              c.switch %i[r remove], :default_value => false
         | 
| 237 238 |  | 
| 238 239 | 
             
              c.desc "Display output without attached occurence counts"
         | 
| 239 240 | 
             
              c.switch [:no_counts], :default_value => false
         | 
| 240 241 |  | 
| 241 242 | 
             
              c.desc 'Output a file list of tags that can be edited and passed back in for removing'
         | 
| 242 243 | 
             
              c.arg_name 'filename'
         | 
| 243 | 
            -
              c.flag [ | 
| 244 | 
            +
              c.flag %i[e edit], :default_value => false, :type => String
         | 
| 244 245 |  | 
| 245 246 | 
             
              c.action do |global_options,options,args|
         | 
| 246 247 | 
             
                max = options[:m].to_i
         | 
| @@ -310,7 +311,7 @@ command :loners do |c| | |
| 310 311 | 
             
                      }
         | 
| 311 312 | 
             
                    }
         | 
| 312 313 | 
             
                    unless global_options[:t]
         | 
| 313 | 
            -
                      @jt.update_file_tags(file,tags)
         | 
| 314 | 
            +
                      @jt.update_file_tags(file, tags)
         | 
| 314 315 | 
             
                      console_log "Updated tags for #{file}", :log => true
         | 
| 315 316 | 
             
                    end
         | 
| 316 317 |  | 
| @@ -333,15 +334,15 @@ command :tags do |c| | |
| 333 334 | 
             
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml. Defaults to yaml.'
         | 
| 334 335 | 
             
              c.arg_name 'output_format'
         | 
| 335 336 | 
             
              c.default_value 'yaml'
         | 
| 336 | 
            -
              c.flag [ | 
| 337 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist)$/, :type => String
         | 
| 337 338 |  | 
| 338 339 | 
             
              c.action do |global_options,options,args|
         | 
| 339 340 |  | 
| 340 341 | 
             
                if @piped_content
         | 
| 341 | 
            -
                  tags = @jt.post_tags(@piped_content,true)
         | 
| 342 | 
            +
                  tags = @jt.post_tags(@piped_content, true)
         | 
| 342 343 | 
             
                  if args.length > 1
         | 
| 343 344 | 
             
                    console_log
         | 
| 344 | 
            -
                    console_log  | 
| 345 | 
            +
                    console_log 'STDIN:'
         | 
| 345 346 | 
             
                  end
         | 
| 346 347 | 
             
                  if tags.empty? || tags.nil?
         | 
| 347 348 | 
             
                    console_log "No tags in post", {:err => true}
         | 
| @@ -375,7 +376,7 @@ command :sort do |c| | |
| 375 376 | 
             
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml. Defaults to yaml.'
         | 
| 376 377 | 
             
              c.arg_name 'output_format'
         | 
| 377 378 | 
             
              c.default_value 'yaml'
         | 
| 378 | 
            -
              c.flag [ | 
| 379 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist)$/, :type => String
         | 
| 379 380 |  | 
| 380 381 | 
             
              c.action do |global_options,options,args|
         | 
| 381 382 | 
             
                args.each{|file|
         | 
| @@ -404,7 +405,7 @@ command :merge do |c| | |
| 404 405 | 
             
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml. Defaults to yaml.'
         | 
| 405 406 | 
             
              c.arg_name 'output_format'
         | 
| 406 407 | 
             
              c.default_value 'yaml'
         | 
| 407 | 
            -
              c.flag [ | 
| 408 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist)$/, :type => String
         | 
| 408 409 |  | 
| 409 410 | 
             
              c.action do |global_options, options, args|
         | 
| 410 411 | 
             
                files = []
         | 
| @@ -469,7 +470,7 @@ command :add do |c| | |
| 469 470 | 
             
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml. Defaults to yaml.'
         | 
| 470 471 | 
             
              c.arg_name 'output_format'
         | 
| 471 472 | 
             
              c.default_value 'yaml'
         | 
| 472 | 
            -
              c.flag [ | 
| 473 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist)$/, :type => String
         | 
| 473 474 |  | 
| 474 475 |  | 
| 475 476 | 
             
              c.action do |global_options,options,args|
         | 
| @@ -497,7 +498,7 @@ command :add do |c| | |
| 497 498 | 
             
                  tags.uniq!
         | 
| 498 499 | 
             
                  tags.sort!
         | 
| 499 500 | 
             
                  unless global_options[:t]
         | 
| 500 | 
            -
                    @jt.update_file_tags(file,tags)
         | 
| 501 | 
            +
                    @jt.update_file_tags(file, tags)
         | 
| 501 502 | 
             
                    console_log "Updated tags for #{file}", :log => true
         | 
| 502 503 | 
             
                  end
         | 
| 503 504 |  | 
| @@ -514,12 +515,12 @@ command :remove do |c| | |
| 514 515 | 
             
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml. Defaults to yaml.'
         | 
| 515 516 | 
             
              c.arg_name 'output_format'
         | 
| 516 517 | 
             
              c.default_value 'yaml'
         | 
| 517 | 
            -
              c.flag [ | 
| 518 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist)$/, :type => String
         | 
| 518 519 |  | 
| 519 520 | 
             
              c.desc 'A filepath to a list of tags to be removed'
         | 
| 520 521 | 
             
              c.long_desc 'One tag per line, and leading numbers and pipes (|) will be ignored. This file format is generated automatically by the `loners` command, but any text file will do the trick.'
         | 
| 521 522 | 
             
              c.arg_name 'input_file'
         | 
| 522 | 
            -
              c.flag [ | 
| 523 | 
            +
              c.flag %i[p path], :type => String
         | 
| 523 524 |  | 
| 524 525 | 
             
              c.action do |global_options,options,args|
         | 
| 525 526 | 
             
                files = []
         | 
| @@ -565,7 +566,7 @@ command :remove do |c| | |
| 565 566 | 
             
                    }
         | 
| 566 567 | 
             
                  }
         | 
| 567 568 | 
             
                  unless global_options[:t]
         | 
| 568 | 
            -
                    @jt.update_file_tags(file,tags)
         | 
| 569 | 
            +
                    @jt.update_file_tags(file, tags)
         | 
| 569 570 | 
             
                    console_log "Updated tags for #{file}", :log => true
         | 
| 570 571 | 
             
                  end
         | 
| 571 572 |  | 
| @@ -579,20 +580,21 @@ end | |
| 579 580 | 
             
            desc 'Generate a list of recommended tags, optionally updating the file'
         | 
| 580 581 | 
             
            arg_name 'file_pattern', :multiple
         | 
| 581 582 | 
             
            command :tag do |c|
         | 
| 582 | 
            -
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml.  | 
| 583 | 
            +
              c.desc 'Format to use when outputting tags to console: list, json, plist, csv or yaml. Use "complete" to output full text when input is STDIN.'
         | 
| 583 584 | 
             
              c.arg_name 'output_format'
         | 
| 584 | 
            -
              c.default_value 'yaml'
         | 
| 585 | 
            -
              c.flag [:f,:format], :must_match => /^(csv|list|yaml|json|plist)$/, :type => String
         | 
| 585 | 
            +
              c.flag %i[f format], :must_match => /^(csv|list|yaml|json|plist|complete)$/, :type => String, :default_value => 'yaml'
         | 
| 586 586 |  | 
| 587 | 
            -
              c.action do |global_options,options,args|
         | 
| 587 | 
            +
              c.action do |global_options, options, args|
         | 
| 588 588 | 
             
                if @piped_content
         | 
| 589 589 | 
             
                  suggestions = @jt.suggest(@piped_content)
         | 
| 590 | 
            -
                  if  | 
| 591 | 
            -
                     | 
| 592 | 
            -
             | 
| 593 | 
            -
             | 
| 594 | 
            -
             | 
| 595 | 
            -
                     | 
| 590 | 
            +
                  if args.length > 0
         | 
| 591 | 
            +
                    console_log
         | 
| 592 | 
            +
                    console_log 'STDIN:', :err => true
         | 
| 593 | 
            +
                  end
         | 
| 594 | 
            +
                  if options[:format] == 'complete'
         | 
| 595 | 
            +
                    @jt.update_file_tags(@piped_content, suggestions, true)
         | 
| 596 | 
            +
                  else
         | 
| 597 | 
            +
                    output_tags(suggestions, :format => options[:format], :filename => nil)
         | 
| 596 598 | 
             
                  end
         | 
| 597 599 | 
             
                end
         | 
| 598 600 | 
             
                args.each {|file|
         | 
| @@ -670,7 +672,7 @@ end | |
| 670 672 | 
             
            #   end
         | 
| 671 673 | 
             
            # end
         | 
| 672 674 |  | 
| 673 | 
            -
            pre do |global,command,options,args|
         | 
| 675 | 
            +
            pre do |global, command, options, args|
         | 
| 674 676 | 
             
              # Use skips_pre before a command to skip this block
         | 
| 675 677 | 
             
              # on that command only
         | 
| 676 678 | 
             
              @silent = global[:silent]
         | 
| @@ -690,11 +692,7 @@ pre do |global,command,options,args| | |
| 690 692 | 
             
              global[:config] = YAML::load(File.open(configfile,"r"))
         | 
| 691 693 | 
             
              global[:support] = File.expand_path("~/.jtag")
         | 
| 692 694 |  | 
| 693 | 
            -
               | 
| 694 | 
            -
                @piped_content = STDIN.read
         | 
| 695 | 
            -
              else
         | 
| 696 | 
            -
                @piped_content = false
         | 
| 697 | 
            -
              end
         | 
| 695 | 
            +
              @piped_content = STDIN.stat.size > 0 ? STDIN.read : nil
         | 
| 698 696 |  | 
| 699 697 | 
             
              @jt = JTag.new(global[:support], global[:config])
         | 
| 700 698 |  | 
    
        data/lib/jtag/jekylltag.rb
    CHANGED
    
    | @@ -40,13 +40,14 @@ class JTag | |
| 40 40 | 
             
                counts = options[:counts] || false
         | 
| 41 41 | 
             
                host, path = @tags_loc.match(/^([^\/]+)(\/.*)/)[1,2]
         | 
| 42 42 | 
             
                tags = ""
         | 
| 43 | 
            -
                http = Net::HTTP.new(host, 80)
         | 
| 44 | 
            -
                http.start do |http|
         | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
                end
         | 
| 43 | 
            +
                # http = Net::HTTP.new(host, 80)
         | 
| 44 | 
            +
                # http.start do |http|
         | 
| 45 | 
            +
                #   request = Net::HTTP::Get.new(path)
         | 
| 46 | 
            +
                #   response = http.request(request)
         | 
| 47 | 
            +
                #   response.value
         | 
| 48 | 
            +
                #   tags = response.body
         | 
| 49 | 
            +
                # end
         | 
| 50 | 
            +
                tags = `curl -sSL "#{@tags_loc}"`
         | 
| 50 51 | 
             
                tags = JSON.parse(tags)
         | 
| 51 52 | 
             
                if tags && tags.key?("tags")
         | 
| 52 53 | 
             
                  if counts
         | 
| @@ -77,8 +78,8 @@ class JTag | |
| 77 78 | 
             
                compiled
         | 
| 78 79 | 
             
              end
         | 
| 79 80 |  | 
| 80 | 
            -
              def split_post(file)
         | 
| 81 | 
            -
                input = IO.read(file)
         | 
| 81 | 
            +
              def split_post(file, piped = false)
         | 
| 82 | 
            +
                input = piped ? file : IO.read(file)
         | 
| 82 83 | 
             
                # Check to see if it's a full post with YAML headers
         | 
| 83 84 | 
             
                post_parts = input.split(/^[\.\-]{3}\s*$/)
         | 
| 84 85 | 
             
                if post_parts.length >= 3
         | 
| @@ -93,7 +94,7 @@ class JTag | |
| 93 94 |  | 
| 94 95 | 
             
              def post_tags(file, piped=false)
         | 
| 95 96 | 
             
                begin
         | 
| 96 | 
            -
                  input = piped ? file : IO.read(file)
         | 
| 97 | 
            +
                  input = piped ? file.strip : IO.read(file)
         | 
| 97 98 | 
             
                  yaml = YAML::load(input)
         | 
| 98 99 | 
             
                  return yaml[@tags_key] || []
         | 
| 99 100 | 
             
                rescue
         | 
| @@ -190,15 +191,21 @@ class JTag | |
| 190 191 | 
             
                end
         | 
| 191 192 | 
             
              end
         | 
| 192 193 |  | 
| 193 | 
            -
              def update_file_tags(file, tags)
         | 
| 194 | 
            +
              def update_file_tags(file, tags, piped = false)
         | 
| 194 195 | 
             
                begin
         | 
| 195 | 
            -
                  if File.exists?(file)
         | 
| 196 | 
            -
                    yaml, after = split_post(file)
         | 
| 196 | 
            +
                  if File.exists?(file) || piped
         | 
| 197 | 
            +
                    yaml, after = split_post(file, piped)
         | 
| 197 198 | 
             
                    yaml[@tags_key] = tags
         | 
| 198 | 
            -
                     | 
| 199 | 
            -
                       | 
| 200 | 
            -
                       | 
| 201 | 
            -
                       | 
| 199 | 
            +
                    if piped
         | 
| 200 | 
            +
                      puts yaml.to_yaml
         | 
| 201 | 
            +
                      puts "---"
         | 
| 202 | 
            +
                      puts after
         | 
| 203 | 
            +
                    else
         | 
| 204 | 
            +
                      File.open(file,'w+') do |f|
         | 
| 205 | 
            +
                        f.puts yaml.to_yaml
         | 
| 206 | 
            +
                        f.puts "---"
         | 
| 207 | 
            +
                        f.puts after
         | 
| 208 | 
            +
                      end
         | 
| 202 209 | 
             
                    end
         | 
| 203 210 | 
             
                  else
         | 
| 204 211 | 
             
                    raise "File does not exist: #{file}"
         | 
    
        data/lib/jtag/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: jtag
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.17
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Brett Terpstra
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-08-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rake
         | 
| @@ -58,28 +58,14 @@ dependencies: | |
| 58 58 | 
             
                requirements:
         | 
| 59 59 | 
             
                - - "~>"
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: 2. | 
| 61 | 
            +
                    version: 2.20.0
         | 
| 62 62 | 
             
              type: :runtime
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 66 | 
             
                - - "~>"
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: 2. | 
| 69 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            -
              name: json
         | 
| 71 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            -
                requirements:
         | 
| 73 | 
            -
                - - "~>"
         | 
| 74 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: 1.8.1
         | 
| 76 | 
            -
              type: :runtime
         | 
| 77 | 
            -
              prerelease: false
         | 
| 78 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            -
                requirements:
         | 
| 80 | 
            -
                - - "~>"
         | 
| 81 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: 1.8.1
         | 
| 68 | 
            +
                    version: 2.20.0
         | 
| 83 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 70 | 
             
              name: plist
         | 
| 85 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -94,7 +80,7 @@ dependencies: | |
| 94 80 | 
             
                - - ">="
         | 
| 95 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 82 | 
             
                    version: '0'
         | 
| 97 | 
            -
            description: | 
| 83 | 
            +
            description:
         | 
| 98 84 | 
             
            email: me@brettterpstra.com
         | 
| 99 85 | 
             
            executables:
         | 
| 100 86 | 
             
            - jtag
         | 
| @@ -118,13 +104,12 @@ files: | |
| 118 104 | 
             
            homepage: http://brettterpstra.com
         | 
| 119 105 | 
             
            licenses: []
         | 
| 120 106 | 
             
            metadata: {}
         | 
| 121 | 
            -
            post_install_message: | 
| 107 | 
            +
            post_install_message:
         | 
| 122 108 | 
             
            rdoc_options:
         | 
| 123 109 | 
             
            - "--title"
         | 
| 124 110 | 
             
            - jtag
         | 
| 125 111 | 
             
            - "--main"
         | 
| 126 112 | 
             
            - README.rdoc
         | 
| 127 | 
            -
            - "-ri"
         | 
| 128 113 | 
             
            require_paths:
         | 
| 129 114 | 
             
            - lib
         | 
| 130 115 | 
             
            - lib
         | 
| @@ -139,9 +124,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 139 124 | 
             
                - !ruby/object:Gem::Version
         | 
| 140 125 | 
             
                  version: '0'
         | 
| 141 126 | 
             
            requirements: []
         | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
            signing_key: 
         | 
| 127 | 
            +
            rubygems_version: 3.2.16
         | 
| 128 | 
            +
            signing_key:
         | 
| 145 129 | 
             
            specification_version: 4
         | 
| 146 130 | 
             
            summary: Auto-tagging and tagging tools for Jekyll
         | 
| 147 131 | 
             
            test_files: []
         |