doing 2.1.6 → 2.1.10
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/.yardoc/checksums +9 -9
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/CHANGELOG.md +33 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/Rakefile +12 -1
- data/bin/doing +29 -2
- data/docs/doc/Array.html +1 -1
- data/docs/doc/BooleanTermParser/Clause.html +1 -1
- data/docs/doc/BooleanTermParser/Operator.html +1 -1
- data/docs/doc/BooleanTermParser/Query.html +1 -1
- data/docs/doc/BooleanTermParser/QueryParser.html +1 -1
- data/docs/doc/BooleanTermParser/QueryTransformer.html +1 -1
- data/docs/doc/BooleanTermParser.html +1 -1
- data/docs/doc/Doing/Color.html +1 -1
- data/docs/doc/Doing/Completion.html +1 -1
- data/docs/doc/Doing/Configuration.html +2 -2
- data/docs/doc/Doing/Errors/DoingNoTraceError.html +1 -1
- data/docs/doc/Doing/Errors/DoingRuntimeError.html +1 -1
- data/docs/doc/Doing/Errors/DoingStandardError.html +1 -1
- data/docs/doc/Doing/Errors/EmptyInput.html +1 -1
- data/docs/doc/Doing/Errors/NoResults.html +1 -1
- data/docs/doc/Doing/Errors/PluginException.html +1 -1
- data/docs/doc/Doing/Errors/UserCancelled.html +1 -1
- data/docs/doc/Doing/Errors/WrongCommand.html +1 -1
- data/docs/doc/Doing/Errors.html +1 -1
- data/docs/doc/Doing/Hooks.html +1 -1
- data/docs/doc/Doing/Item.html +1 -1
- data/docs/doc/Doing/Items.html +1 -1
- data/docs/doc/Doing/LogAdapter.html +1 -1
- data/docs/doc/Doing/Note.html +1 -1
- data/docs/doc/Doing/Pager.html +1 -1
- data/docs/doc/Doing/Plugins.html +1 -1
- data/docs/doc/Doing/Prompt.html +132 -18
- data/docs/doc/Doing/Section.html +1 -1
- data/docs/doc/Doing/TemplateString.html +2 -2
- data/docs/doc/Doing/Util/Backup.html +79 -2
- data/docs/doc/Doing/Util.html +1 -1
- data/docs/doc/Doing/WWID.html +90 -77
- data/docs/doc/Doing.html +2 -2
- data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +1 -1
- data/docs/doc/GLI/Commands.html +1 -1
- data/docs/doc/GLI.html +1 -1
- data/docs/doc/Hash.html +1 -1
- data/docs/doc/PhraseParser/Operator.html +1 -1
- data/docs/doc/PhraseParser/PhraseClause.html +1 -1
- data/docs/doc/PhraseParser/Query.html +1 -1
- data/docs/doc/PhraseParser/QueryParser.html +1 -1
- data/docs/doc/PhraseParser/QueryTransformer.html +1 -1
- data/docs/doc/PhraseParser/TermClause.html +1 -1
- data/docs/doc/PhraseParser.html +1 -1
- data/docs/doc/Status.html +1 -1
- data/docs/doc/String.html +97 -1
- data/docs/doc/Symbol.html +36 -2
- data/docs/doc/Time.html +1 -1
- data/docs/doc/_index.html +1 -1
- data/docs/doc/file.README.html +2 -2
- data/docs/doc/index.html +2 -2
- data/docs/doc/method_list.html +299 -235
- data/docs/doc/top-level-namespace.html +1 -1
- data/docs/index.md +1 -1
- data/doing.rdoc +9 -2
- data/generate_completions.sh +1 -3
- data/lib/completion/_doing.zsh +1 -1
- data/lib/completion/doing.bash +2 -2
- data/lib/completion/doing.fish +2 -1
- data/lib/doing/completion/bash_completion.rb +2 -2
- data/lib/doing/completion/fish_completion.rb +2 -2
- data/lib/doing/completion/zsh_completion.rb +2 -2
- data/lib/doing/completion.rb +12 -2
- data/lib/doing/configuration.rb +1 -1
- data/lib/doing/log_adapter.rb +1 -0
- data/lib/doing/prompt.rb +47 -8
- data/lib/doing/string.rb +20 -0
- data/lib/doing/symbol.rb +4 -0
- data/lib/doing/util_backup.rb +22 -3
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +75 -45
- data/scripts/generate_bash_completions.rb +2 -2
- metadata +2 -3
- data/lib/helpers/fuzzyfilefinder +0 -0
    
        data/lib/doing/wwid.rb
    CHANGED
    
    | @@ -338,7 +338,8 @@ module Doing | |
| 338 338 | 
             
                ## @option opt :back [Date] backdate
         | 
| 339 339 | 
             
                ## @option opt :timed [Boolean] new item is timed entry, marks previous entry as @done
         | 
| 340 340 | 
             
                ##
         | 
| 341 | 
            -
                def add_item(title, section = nil, opt | 
| 341 | 
            +
                def add_item(title, section = nil, opt)
         | 
| 342 | 
            +
                  opt ||= {}
         | 
| 342 343 | 
             
                  section ||= @config['current_section']
         | 
| 343 344 | 
             
                  @content.add_section(section, log: false)
         | 
| 344 345 | 
             
                  opt[:back] ||= opt[:date] ? opt[:date] : Time.now
         | 
| @@ -401,7 +402,8 @@ module Doing | |
| 401 402 | 
             
                ## @param      paths  [String] Path to JSON report file
         | 
| 402 403 | 
             
                ## @param      opt    [Hash] Additional Options
         | 
| 403 404 | 
             
                ##
         | 
| 404 | 
            -
                def import(paths, opt | 
| 405 | 
            +
                def import(paths, opt)
         | 
| 406 | 
            +
                  opt ||= {}
         | 
| 405 407 | 
             
                  Plugins.plugins[:import].each do |_, options|
         | 
| 406 408 | 
             
                    next unless opt[:type] =~ /^(#{options[:trigger].normalize_trigger})$/i
         | 
| 407 409 |  | 
| @@ -461,7 +463,8 @@ module Doing | |
| 461 463 | 
             
                #
         | 
| 462 464 | 
             
                # @return     nothing
         | 
| 463 465 | 
             
                #
         | 
| 464 | 
            -
                def repeat_item(item, opt | 
| 466 | 
            +
                def repeat_item(item, opt)
         | 
| 467 | 
            +
                  opt ||= {}
         | 
| 465 468 | 
             
                  if item.should_finish?
         | 
| 466 469 | 
             
                    if item.should_time?
         | 
| 467 470 | 
             
                      item.title.tag!('done', value: Time.now.strftime('%F %R'))
         | 
| @@ -501,7 +504,8 @@ module Doing | |
| 501 504 | 
             
                ##
         | 
| 502 505 | 
             
                ## @param      opt   [Hash] Additional Options
         | 
| 503 506 | 
             
                ##
         | 
| 504 | 
            -
                def repeat_last(opt | 
| 507 | 
            +
                def repeat_last(opt)
         | 
| 508 | 
            +
                  opt ||= {}
         | 
| 505 509 | 
             
                  opt[:section] ||= 'all'
         | 
| 506 510 | 
             
                  opt[:section] = guess_section(opt[:section])
         | 
| 507 511 | 
             
                  opt[:note] ||= []
         | 
| @@ -523,7 +527,8 @@ module Doing | |
| 523 527 | 
             
                ##
         | 
| 524 528 | 
             
                ## @param      opt   [Hash] Additional Options
         | 
| 525 529 | 
             
                ##
         | 
| 526 | 
            -
                def last_entry(opt | 
| 530 | 
            +
                def last_entry(opt)
         | 
| 531 | 
            +
                  opt ||= {}
         | 
| 527 532 | 
             
                  opt[:tag_bool] ||= :and
         | 
| 528 533 | 
             
                  opt[:section] ||= @config['current_section']
         | 
| 529 534 |  | 
| @@ -615,19 +620,19 @@ module Doing | |
| 615 620 | 
             
                ## @param      items  [Array] The items to filter (if empty, filters all items)
         | 
| 616 621 | 
             
                ## @param      opt    [Hash] The filter parameters
         | 
| 617 622 | 
             
                ##
         | 
| 618 | 
            -
                ## @option opt [String] :section
         | 
| 619 | 
            -
                ## @option opt [Boolean] :unfinished
         | 
| 620 | 
            -
                ## @option opt [Array or String] :tag | 
| 621 | 
            -
                ## @option opt [Symbol] :tag_bool | 
| 622 | 
            -
                ## @option opt [String] :search | 
| 623 | 
            -
                ## @option opt [Array] :date_filter | 
| 624 | 
            -
                ## @option opt [Boolean] :only_timed
         | 
| 625 | 
            -
                ## @option opt [String] :before | 
| 626 | 
            -
                ## @option opt [String] :after  (Date/Time string, unparsed | 
| 627 | 
            -
                ## @option opt [Boolean] :today
         | 
| 628 | 
            -
                ## @option opt [Boolean] :yesterday
         | 
| 629 | 
            -
                ## @option opt [Number] :count | 
| 630 | 
            -
                ## @option opt [String] :age | 
| 623 | 
            +
                ## @option opt [String] :section ('all')
         | 
| 624 | 
            +
                ## @option opt [Boolean] :unfinished (false)
         | 
| 625 | 
            +
                ## @option opt [Array or String] :tag ([]) Array or comma-separated string
         | 
| 626 | 
            +
                ## @option opt [Symbol] :tag_bool (:and) :and, :or, :not
         | 
| 627 | 
            +
                ## @option opt [String] :search ('') string, optional regex with `/string/`
         | 
| 628 | 
            +
                ## @option opt [Array] :date_filter (nil) [[Time]start, [Time]end]
         | 
| 629 | 
            +
                ## @option opt [Boolean] :only_timed (false)
         | 
| 630 | 
            +
                ## @option opt [String] :before (nil) Date/Time string, unparsed
         | 
| 631 | 
            +
                ## @option opt [String] :after  (nil) Date/Time string, unparsed
         | 
| 632 | 
            +
                ## @option opt [Boolean] :today (false) limit to entries from today
         | 
| 633 | 
            +
                ## @option opt [Boolean] :yesterday (false) limit to entries from yesterday
         | 
| 634 | 
            +
                ## @option opt [Number] :count (0) max entries to return
         | 
| 635 | 
            +
                ## @option opt [String] :age (new) 'old' or 'new'
         | 
| 631 636 | 
             
                ##
         | 
| 632 637 | 
             
                def filter_items(items = Items.new, opt: {})
         | 
| 633 638 | 
             
                  time_rx = /^(\d{1,2}+(:\d{1,2}+)?( *(am|pm))?|midnight|noon)$/
         | 
| @@ -784,7 +789,7 @@ module Doing | |
| 784 789 |  | 
| 785 790 | 
             
                  output = Items.new
         | 
| 786 791 |  | 
| 787 | 
            -
                  if opt[:age]  | 
| 792 | 
            +
                  if opt[:age] && opt[:age].normalize_age == :oldest
         | 
| 788 793 | 
             
                    output.concat(filtered_items.slice(0, count).reverse)
         | 
| 789 794 | 
             
                  else
         | 
| 790 795 | 
             
                    output.concat(filtered_items.reverse.slice(0, count))
         | 
| @@ -800,7 +805,8 @@ module Doing | |
| 800 805 | 
             
                ##
         | 
| 801 806 | 
             
                ## Options hash is shared with #filter_items and #act_on
         | 
| 802 807 | 
             
                ##
         | 
| 803 | 
            -
                def interactive(opt | 
| 808 | 
            +
                def interactive(opt)
         | 
| 809 | 
            +
                  opt ||= {}
         | 
| 804 810 | 
             
                  opt[:section] = opt[:section] ? guess_section(opt[:section]) : 'All'
         | 
| 805 811 |  | 
| 806 812 | 
             
                  search = nil
         | 
| @@ -820,7 +826,11 @@ module Doing | |
| 820 826 | 
             
                  }
         | 
| 821 827 | 
             
                  items = filter_items(Items.new, opt: filter_options)
         | 
| 822 828 |  | 
| 823 | 
            -
                   | 
| 829 | 
            +
                  menu_options = %i[search query exact multiple show_if_single menu sort case].each_with_object({}) {
         | 
| 830 | 
            +
                    |k, hsh| hsh[k] = opt[k]
         | 
| 831 | 
            +
                  }
         | 
| 832 | 
            +
             | 
| 833 | 
            +
                  selection = Prompt.choose_from_items(items, include_section: opt[:section] =~ /^all$/i, **menu_options)
         | 
| 824 834 |  | 
| 825 835 | 
             
                  raise NoResults, 'no items selected' if selection.nil? || selection.empty?
         | 
| 826 836 |  | 
| @@ -848,7 +858,8 @@ module Doing | |
| 848 858 | 
             
                ## @option opt [Boolean] :again
         | 
| 849 859 | 
             
                ## @option opt [Boolean] :resume
         | 
| 850 860 | 
             
                ##
         | 
| 851 | 
            -
                def act_on(items, opt | 
| 861 | 
            +
                def act_on(items, opt)
         | 
| 862 | 
            +
                  opt ||= {}
         | 
| 852 863 | 
             
                  actions = %i[editor delete tag flag finish cancel archive output save_to again resume]
         | 
| 853 864 | 
             
                  has_action = false
         | 
| 854 865 | 
             
                  single = items.count == 1
         | 
| @@ -1105,7 +1116,8 @@ module Doing | |
| 1105 1116 | 
             
                ##
         | 
| 1106 1117 | 
             
                ## @see        #filter_items
         | 
| 1107 1118 | 
             
                ##
         | 
| 1108 | 
            -
                def tag_last(opt | 
| 1119 | 
            +
                def tag_last(opt)
         | 
| 1120 | 
            +
                  opt ||= {}
         | 
| 1109 1121 | 
             
                  opt[:count] ||= 1
         | 
| 1110 1122 | 
             
                  opt[:archive] ||= false
         | 
| 1111 1123 | 
             
                  opt[:tags] ||= ['done']
         | 
| @@ -1229,7 +1241,8 @@ module Doing | |
| 1229 1241 | 
             
                ##
         | 
| 1230 1242 | 
             
                ## @return     [Item] the next chronological item in the index
         | 
| 1231 1243 | 
             
                ##
         | 
| 1232 | 
            -
                def next_item(item, options | 
| 1244 | 
            +
                def next_item(item, options)
         | 
| 1245 | 
            +
                  options ||= {}
         | 
| 1233 1246 | 
             
                  items = filter_items(Items.new, opt: options)
         | 
| 1234 1247 |  | 
| 1235 1248 | 
             
                  idx = items.index(item)
         | 
| @@ -1287,7 +1300,8 @@ module Doing | |
| 1287 1300 | 
             
                ## @option opt :back [Date] backdate new item
         | 
| 1288 1301 | 
             
                ## @option opt :new_item [String] content to use for new item
         | 
| 1289 1302 | 
             
                ## @option opt :note [Array] note content for new item
         | 
| 1290 | 
            -
                def stop_start(target_tag, opt | 
| 1303 | 
            +
                def stop_start(target_tag, opt)
         | 
| 1304 | 
            +
                  opt ||= {}
         | 
| 1291 1305 | 
             
                  tag = target_tag.dup
         | 
| 1292 1306 | 
             
                  opt[:section] ||= @config['current_section']
         | 
| 1293 1307 | 
             
                  opt[:archive] ||= false
         | 
| @@ -1354,7 +1368,8 @@ module Doing | |
| 1354 1368 | 
             
                ##
         | 
| 1355 1369 | 
             
                ## Rename doing file with date and start fresh one
         | 
| 1356 1370 | 
             
                ##
         | 
| 1357 | 
            -
                def rotate(opt | 
| 1371 | 
            +
                def rotate(opt)
         | 
| 1372 | 
            +
                  opt ||= {}
         | 
| 1358 1373 | 
             
                  keep = opt[:keep] || 0
         | 
| 1359 1374 | 
             
                  tags = []
         | 
| 1360 1375 | 
             
                  tags.concat(opt[:tag].split(/ *, */).map { |t| t.sub(/^@/, '').strip }) if opt[:tag]
         | 
| @@ -1369,7 +1384,7 @@ module Doing | |
| 1369 1384 | 
             
                  counter = 0
         | 
| 1370 1385 | 
             
                  new_content = Items.new
         | 
| 1371 1386 |  | 
| 1372 | 
            -
                   | 
| 1387 | 
            +
                  section_items.each do |item|
         | 
| 1373 1388 | 
             
                    break if counter >= max
         | 
| 1374 1389 | 
             
                    if opt[:before]
         | 
| 1375 1390 | 
             
                      time_string = opt[:before]
         | 
| @@ -1482,7 +1497,7 @@ module Doing | |
| 1482 1497 | 
             
                ##
         | 
| 1483 1498 | 
             
                ## @param      opt   [Hash] Additional Options
         | 
| 1484 1499 | 
             
                ##
         | 
| 1485 | 
            -
                def list_section(opt | 
| 1500 | 
            +
                def list_section(opt, items: Items.new)
         | 
| 1486 1501 | 
             
                  opt[:config_template] ||= 'default'
         | 
| 1487 1502 |  | 
| 1488 1503 | 
             
                  tpl_cfg = @config.dig('templates', opt[:config_template])
         | 
| @@ -1504,7 +1519,8 @@ module Doing | |
| 1504 1519 | 
             
                  opt[:duration] ||= cfg['duration'] || false
         | 
| 1505 1520 | 
             
                  opt[:interval_format] ||= cfg['interval_format'] || 'text'
         | 
| 1506 1521 | 
             
                  opt[:count] ||= 0
         | 
| 1507 | 
            -
                  opt[:age] ||=  | 
| 1522 | 
            +
                  opt[:age] ||= :newest
         | 
| 1523 | 
            +
                  opt[:age] = opt[:age].normalize_age
         | 
| 1508 1524 | 
             
                  opt[:format] ||= cfg['date_format']
         | 
| 1509 1525 | 
             
                  opt[:order] ||= cfg['order'] || 'asc'
         | 
| 1510 1526 | 
             
                  opt[:tag_order] ||= 'asc'
         | 
| @@ -1559,7 +1575,8 @@ module Doing | |
| 1559 1575 | 
             
                ## @param      section      [String] The source section
         | 
| 1560 1576 | 
             
                ## @param      options      [Hash] Options
         | 
| 1561 1577 | 
             
                ##
         | 
| 1562 | 
            -
                def archive(section = @config['current_section'], options | 
| 1578 | 
            +
                def archive(section = @config['current_section'], options)
         | 
| 1579 | 
            +
                  options ||= {}
         | 
| 1563 1580 | 
             
                  count       = options[:keep] || 0
         | 
| 1564 1581 | 
             
                  destination = options[:destination] || 'Archive'
         | 
| 1565 1582 | 
             
                  tags        = options[:tags] || []
         | 
| @@ -1589,7 +1606,8 @@ module Doing | |
| 1589 1606 | 
             
                ## @param      output  [String] output format
         | 
| 1590 1607 | 
             
                ## @param      opt     [Hash] Options
         | 
| 1591 1608 | 
             
                ##
         | 
| 1592 | 
            -
                def today(times = true, output = nil, opt | 
| 1609 | 
            +
                def today(times = true, output = nil, opt)
         | 
| 1610 | 
            +
                  opt ||= {}
         | 
| 1593 1611 | 
             
                  opt[:totals] ||= false
         | 
| 1594 1612 | 
             
                  opt[:sort_tags] ||= false
         | 
| 1595 1613 |  | 
| @@ -1637,7 +1655,8 @@ module Doing | |
| 1637 1655 | 
             
                ## @param      output   [String] Output format
         | 
| 1638 1656 | 
             
                ## @param      opt      [Hash] Additional Options
         | 
| 1639 1657 | 
             
                ##
         | 
| 1640 | 
            -
                def list_date(dates, section, times = nil, output = nil, opt | 
| 1658 | 
            +
                def list_date(dates, section, times = nil, output = nil, opt)
         | 
| 1659 | 
            +
                  opt ||= {}
         | 
| 1641 1660 | 
             
                  opt[:totals] ||= false
         | 
| 1642 1661 | 
             
                  opt[:sort_tags] ||= false
         | 
| 1643 1662 | 
             
                  section = guess_section(section)
         | 
| @@ -1666,7 +1685,8 @@ module Doing | |
| 1666 1685 | 
             
                ## @param      output   [String] Output format
         | 
| 1667 1686 | 
             
                ## @param      opt      [Hash] Additional Options
         | 
| 1668 1687 | 
             
                ##
         | 
| 1669 | 
            -
                def yesterday(section, times = nil, output = nil, opt | 
| 1688 | 
            +
                def yesterday(section, times = nil, output = nil, opt)
         | 
| 1689 | 
            +
                  opt ||= {}
         | 
| 1670 1690 | 
             
                  opt[:totals] ||= false
         | 
| 1671 1691 | 
             
                  opt[:sort_tags] ||= false
         | 
| 1672 1692 | 
             
                  section = guess_section(section)
         | 
| @@ -1701,7 +1721,8 @@ module Doing | |
| 1701 1721 | 
             
                ## @param      section  [String] The section to show from, default Currently
         | 
| 1702 1722 | 
             
                ## @param      opt      [Hash] Additional Options
         | 
| 1703 1723 | 
             
                ##
         | 
| 1704 | 
            -
                def recent(count = 10, section = nil, opt | 
| 1724 | 
            +
                def recent(count = 10, section = nil, opt)
         | 
| 1725 | 
            +
                  opt ||= {}
         | 
| 1705 1726 | 
             
                  times = opt[:t] || true
         | 
| 1706 1727 | 
             
                  opt[:totals] ||= false
         | 
| 1707 1728 | 
             
                  opt[:sort_tags] ||= false
         | 
| @@ -1720,10 +1741,16 @@ module Doing | |
| 1720 1741 | 
             
                  section ||= @config['current_section']
         | 
| 1721 1742 | 
             
                  section = guess_section(section)
         | 
| 1722 1743 |  | 
| 1723 | 
            -
                   | 
| 1724 | 
            -
             | 
| 1725 | 
            -
             | 
| 1726 | 
            -
             | 
| 1744 | 
            +
                  opt[:section] = section
         | 
| 1745 | 
            +
                  opt[:wrap_width] = cfg['wrap_width']
         | 
| 1746 | 
            +
                  opt[:count] = count
         | 
| 1747 | 
            +
                  opt[:format] = cfg['date_format']
         | 
| 1748 | 
            +
                  opt[:template] = cfg['template']
         | 
| 1749 | 
            +
                  opt[:order] = 'asc'
         | 
| 1750 | 
            +
                  opt[:times] = times
         | 
| 1751 | 
            +
                  opt[:config_template] = 'recent'
         | 
| 1752 | 
            +
             | 
| 1753 | 
            +
                  list_section(opt)
         | 
| 1727 1754 | 
             
                end
         | 
| 1728 1755 |  | 
| 1729 1756 | 
             
                ##
         | 
| @@ -1776,13 +1803,14 @@ module Doing | |
| 1776 1803 | 
             
                ## Does not repeat tags in a title, and only converts the first instance of an
         | 
| 1777 1804 | 
             
                ## untagged keyword
         | 
| 1778 1805 | 
             
                ##
         | 
| 1779 | 
            -
                ## @param       | 
| 1806 | 
            +
                ## @param      string  [String] The text to tag
         | 
| 1780 1807 | 
             
                ##
         | 
| 1781 | 
            -
                def autotag( | 
| 1782 | 
            -
                  return unless  | 
| 1783 | 
            -
                  return  | 
| 1808 | 
            +
                def autotag(string)
         | 
| 1809 | 
            +
                  return unless string
         | 
| 1810 | 
            +
                  return string unless @auto_tag
         | 
| 1784 1811 |  | 
| 1785 | 
            -
                  original =  | 
| 1812 | 
            +
                  original = string.dup
         | 
| 1813 | 
            +
                  text = string.dup
         | 
| 1786 1814 |  | 
| 1787 1815 | 
             
                  current_tags = text.scan(/@\w+/).map { |t| t.sub(/^@/, '') }
         | 
| 1788 1816 | 
             
                  tagged = {
         | 
| @@ -2091,7 +2119,8 @@ EOS | |
| 2091 2119 | 
             
                ## @return     [String] formatted output based on opt[:output]
         | 
| 2092 2120 | 
             
                ##             template trigger
         | 
| 2093 2121 | 
             
                ##
         | 
| 2094 | 
            -
                def output(items, title, is_single, opt | 
| 2122 | 
            +
                def output(items, title, is_single, opt)
         | 
| 2123 | 
            +
                  opt ||= {}
         | 
| 2095 2124 | 
             
                  out = nil
         | 
| 2096 2125 |  | 
| 2097 2126 | 
             
                  raise InvalidArgument, 'Unknown output format' unless opt[:output] =~ Plugins.plugin_regex(type: :export)
         | 
| @@ -2135,7 +2164,8 @@ EOS | |
| 2135 2164 | 
             
                ##                          section
         | 
| 2136 2165 | 
             
                ## @param      opt          [Hash] Additional Options
         | 
| 2137 2166 | 
             
                ##
         | 
| 2138 | 
            -
                def do_archive(section, destination, opt | 
| 2167 | 
            +
                def do_archive(section, destination, opt)
         | 
| 2168 | 
            +
                  opt ||= {}
         | 
| 2139 2169 | 
             
                  count = opt[:count] || 0
         | 
| 2140 2170 | 
             
                  tags  = opt[:tags] || []
         | 
| 2141 2171 | 
             
                  bool  = opt[:bool] || :and
         | 
| @@ -30,7 +30,7 @@ class BashCompletions | |
| 30 30 | 
             
                need_export = []
         | 
| 31 31 |  | 
| 32 32 | 
             
                @commands.each_with_index do |cmd, i|
         | 
| 33 | 
            -
                  @bar.advance
         | 
| 33 | 
            +
                  @bar.advance(status: cmd[:commands].first)
         | 
| 34 34 |  | 
| 35 35 | 
             
                  data = get_help_sections(cmd[:commands].first)
         | 
| 36 36 |  | 
| @@ -188,7 +188,7 @@ class BashCompletions | |
| 188 188 | 
             
                data = get_help_sections
         | 
| 189 189 | 
             
                @global_options = parse_options(data[:global_options])
         | 
| 190 190 | 
             
                @commands = parse_commands(data[:commands])
         | 
| 191 | 
            -
                @bar = TTY::ProgressBar.new("\033[0;0;33mGenerating Bash completions: \033[0;35;40m[:bar]\033[0m", total: @commands.count, bar_format: :blade)
         | 
| 191 | 
            +
                @bar = TTY::ProgressBar.new("\033[0;0;33mGenerating Bash completions: \033[0;35;40m[:bar] :status\033[0m", total: @commands.count, bar_format: :blade, status: '')
         | 
| 192 192 | 
             
                @bar.resize(25)
         | 
| 193 193 | 
             
              end
         | 
| 194 194 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: doing
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.1. | 
| 4 | 
            +
              version: 2.1.10
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Brett Terpstra
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-12- | 
| 11 | 
            +
            date: 2021-12-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: safe_yaml
         | 
| @@ -542,7 +542,6 @@ files: | |
| 542 542 | 
             
            - lib/examples/plugins/wiki_export/templates/wiki.haml
         | 
| 543 543 | 
             
            - lib/examples/plugins/wiki_export/templates/wiki_index.haml
         | 
| 544 544 | 
             
            - lib/examples/plugins/wiki_export/wiki_export.rb
         | 
| 545 | 
            -
            - lib/helpers/fuzzyfilefinder
         | 
| 546 545 | 
             
            - lib/helpers/fzf/.goreleaser.yml
         | 
| 547 546 | 
             
            - lib/helpers/fzf/.rubocop.yml
         | 
| 548 547 | 
             
            - lib/helpers/fzf/ADVANCED.md
         | 
    
        data/lib/helpers/fuzzyfilefinder
    DELETED
    
    | Binary file |