doing 1.0.42 → 1.0.47

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f715c083c72c609fb2e2fc8c730cca68b8391dccbc4ca2168333dd9b30df0887
4
- data.tar.gz: 3d7df2ec9624ae8d2b6822ccceed402c42f82f2a5b2e010c639880c9cd95580f
3
+ metadata.gz: 79bbbd412d3baf3354d88cb70c55aacf028e2260cfcb901bb0e66fac4ed4722a
4
+ data.tar.gz: 75e8f05005c05439aa3be05c51386745451ae83e8d1a3ec09aa9507286567864
5
5
  SHA512:
6
- metadata.gz: 4287daf5a4821ff6e295c36275d2101ecebefdc0adc962faefe82c460bd52f2e9a1a69e767e3ad59f7d68074a86807496e3e1669dd7f6f68688da903fb370309
7
- data.tar.gz: 4a62305048b02bac186c63f951a6e3a7985663dc826070801c3a333b8e9388147435639910ac0f1fe24b0ad5a90e15b61510c0799ce94cf84060ca8fad097f0b
6
+ metadata.gz: e6fb1bb5d8f742bbd39232a4227361e47832968be2ffbc073eb454b6151f81222d91bbe062f4f430a03297d72d71562741915fd7cd0b8609d941e87774901308
7
+ data.tar.gz: 753d152c469b588f18545ef1bde93e5e8e0591b0b4f7558ed0bfc69e55041c37e6aa8c378ea61f1bd4b7a10d4081ff76f5ae0a1983db72ebd7a5f0d666d237be
data/README.md CHANGED
@@ -393,10 +393,11 @@ Note that you can include a tag with synonyms in the whitelist as well to tag it
393
393
 
394
394
  #### Adding entries:
395
395
 
396
- now, did - Add an entry
397
- later - Add an item to the Later section
398
- done - Add a completed item with @done(date). No argument finishes last entry.
399
- meanwhile - Finish any @meanwhile tasks and optionally create a new one
396
+ now, did - Add an entry
397
+ later - Add an item to the Later section
398
+ done - Add a completed item with @done(date). No argument finishes last entry.
399
+ meanwhile - Finish any @meanwhile tasks and optionally create a new one
400
+ again, resume - Duplicate the last entry as new entry (without @done tag)
400
401
 
401
402
  The `doing now` command can accept `-s section_name` to send the new entry straight to a non-default section. It also accepts `--back=AMOUNT` to let you specify a start date in the past using "natural language." For example, `doing now --back=25m ENTRY` or `doing now --back="yesterday 3:30pm" ENTRY`.
402
403
 
data/bin/doing CHANGED
@@ -44,7 +44,7 @@ default_value false
44
44
  switch [:stdout], :default_value => false, :negatable => false
45
45
 
46
46
  desc 'Exclude auto tags and default tags'
47
- switch [:x,:noauto], :default_value => false
47
+ switch [:x, :noauto], :default_value => false
48
48
 
49
49
  desc 'Use a specific configuration file'
50
50
  default_value false
@@ -52,37 +52,37 @@ flag [:config_file]
52
52
 
53
53
 
54
54
  # desc 'Wrap notes at X chars (0 for no wrap)'
55
- # flag [:w,:wrapwidth], :must_match => /^\d+$/, :type => Integer
55
+ # flag [:w, :wrapwidth], :must_match => /^\d+$/, :type => Integer
56
56
 
57
57
  desc 'Specify a different doing_file'
58
58
  flag [:f, :doing_file]
59
59
 
60
60
  desc 'Add an entry'
61
61
  arg_name 'entry'
62
- command [:now,:next] do |c|
62
+ command [:now, :next] do |c|
63
63
  c.desc 'Section'
64
64
  c.arg_name 'section_name'
65
65
  c.default_value wwid.current_section
66
- c.flag [:s,:section], :default_value => wwid.current_section
66
+ c.flag [:s, :section], :default_value => wwid.current_section
67
67
 
68
68
  c.desc "Edit entry with #{ENV['EDITOR']}"
69
- c.switch [:e,:editor]
69
+ c.switch [:e, :editor]
70
70
 
71
71
  c.desc 'Backdate start time [4pm|20m|2h|yesterday noon]'
72
- c.flag [:back]
72
+ c.flag [:b, :back]
73
73
 
74
74
  c.desc 'Timed entry, marks last entry in section as @done'
75
75
  c.default_value false
76
- c.switch [:f,:finish_last], :negatable => false, :default_value => false
76
+ c.switch [:f, :finish_last], :negatable => false, :default_value => false
77
77
 
78
78
  c.desc 'Note'
79
79
  c.arg_name 'note_text'
80
- c.flag [:n,:note]
80
+ c.flag [:n, :note]
81
81
 
82
82
  # c.desc "Edit entry with specified app"
83
83
  # c.arg_name 'editor_app'
84
84
  # c.default_value wwid.config.has_key?('editor_app') && wwid.config['editor_app'] ? wwid.config['editor_app'] : false
85
- # c.flag [:a,:app]
85
+ # c.flag [:a, :app]
86
86
 
87
87
  c.action do |global_options,options,args|
88
88
  if options[:back]
@@ -163,7 +163,7 @@ command :note do |c|
163
163
  if input
164
164
  title, note = wwid.format_input(input)
165
165
  if note
166
- wwid.note_last(section, note, true)
166
+ wwid.note_last(section, note, replace: true)
167
167
  else
168
168
  raise "No note content"
169
169
  end
@@ -174,14 +174,14 @@ command :note do |c|
174
174
  if args.length > 0
175
175
  title, note = wwid.format_input(args.join(" "))
176
176
  note.insert(0, title)
177
- wwid.note_last(section, note, options[:r])
177
+ wwid.note_last(section, note, replace: options[:r])
178
178
  elsif STDIN.stat.size > 0
179
179
  title, note = wwid.format_input(STDIN.read)
180
180
  note.insert(0, title)
181
- wwid.note_last(section, note, options[:r])
181
+ wwid.note_last(section, note, replace: options[:r])
182
182
  else
183
183
  if options[:r]
184
- wwid.note_last(section, [], true)
184
+ wwid.note_last(section, [], replace: true)
185
185
  else
186
186
  raise "You must provide content when adding a note"
187
187
  end
@@ -206,7 +206,7 @@ command :meanwhile do |c|
206
206
  c.switch [:a, :archive], :default_value => false
207
207
 
208
208
  c.desc 'Backdate start date for new entry to date string [4pm|20m|2h|yesterday noon]'
209
- c.flag [:back]
209
+ c.flag [:b, :back]
210
210
 
211
211
  c.desc 'Note'
212
212
  c.arg_name 'note_text'
@@ -280,7 +280,7 @@ command :later do |c|
280
280
  c.flag [:a, :app]
281
281
 
282
282
  c.desc 'Backdate start time to date string [4pm|20m|2h|yesterday noon]'
283
- c.flag [:back]
283
+ c.flag [:b, :back]
284
284
 
285
285
  c.desc 'Note'
286
286
  c.arg_name 'note_text'
@@ -327,14 +327,14 @@ end
327
327
 
328
328
  desc 'Add a completed item with @done(date). No argument finishes last entry.'
329
329
  arg_name 'entry'
330
- command [:done,:did] do |c|
330
+ command [:done, :did] do |c|
331
331
  c.desc 'Remove @done tag'
332
332
  c.default_value false
333
333
  c.switch [:r, :remove], :negatable => false, :default_value => false
334
334
 
335
335
  c.desc 'Include date'
336
336
  c.default_value true
337
- c.switch [:d, :date], :negatable => true, :default_value => true
337
+ c.switch [:date], :negatable => true, :default_value => true
338
338
 
339
339
  c.desc 'Immediately archive the entry'
340
340
  c.default_value false
@@ -351,15 +351,15 @@ command [:done,:did] do |c|
351
351
 
352
352
  c.desc 'Section'
353
353
  c.default_value wwid.current_section
354
- c.flag [:s,:section], :default_value => wwid.current_section
354
+ c.flag [:s, :section], :default_value => wwid.current_section
355
355
 
356
356
  c.desc "Edit entry with #{ENV['EDITOR']}"
357
- c.switch [:e,:editor]
357
+ c.switch [:e, :editor]
358
358
 
359
359
  # c.desc "Edit entry with specified app"
360
360
  # c.arg_name 'editor_app'
361
361
  # c.default_value wwid.config.has_key?('editor_app') && wwid.config['editor_app'] ? wwid.config['editor_app'] : false
362
- # c.flag [:a,:app]
362
+ # c.flag [:a, :app]
363
363
 
364
364
  c.action do |global_options,options,args|
365
365
  took = 0
@@ -438,14 +438,13 @@ long_desc 'Marks the last X entries with a @done tag and current date. Does not
438
438
  arg_name 'count'
439
439
  command :finish do |c|
440
440
  c.desc 'Include date'
441
- c.default_value true
442
- c.switch [:d,:date], :default_value => true
441
+ c.switch [:date], :negatable => true, :default_value => true
443
442
 
444
443
  c.desc 'Backdate completed date to date string [4pm|20m|2h|yesterday noon]'
445
- c.flag [:b,:back]
444
+ c.flag [:b, :back]
446
445
 
447
446
  c.desc 'Set the completed date to the start date plus XX[hmd]'
448
- c.flag [:t,:took]
447
+ c.flag [:t, :took]
449
448
 
450
449
  c.desc 'Auto-generate finish dates from next entry\'s start time. Automatically generate completion dates 1 minute before next start date. --auto overrides the --date and --back parameters.'
451
450
  c.default_value false
@@ -453,11 +452,11 @@ command :finish do |c|
453
452
 
454
453
  c.desc 'Archive entries'
455
454
  c.default_value false
456
- c.switch [:a,:archive], :negatable => false, :default_value => false
455
+ c.switch [:a, :archive], :negatable => false, :default_value => false
457
456
 
458
457
  c.desc 'Section'
459
458
  c.default_value wwid.current_section
460
- c.flag [:s,:section], :default_value => wwid.current_section
459
+ c.flag [:s, :section], :default_value => wwid.current_section
461
460
 
462
461
  c.action do |global_options,options,args|
463
462
 
@@ -488,6 +487,21 @@ command :finish do |c|
488
487
  end
489
488
  end
490
489
 
490
+ desc 'Repeat last entry as new entry'
491
+ arg_name 'section'
492
+ command [:again, :resume] do |c|
493
+ c.desc 'Section'
494
+ c.flag [:s, :section], :default_value => "All"
495
+
496
+ c.desc 'Note'
497
+ c.arg_name 'note_text'
498
+ c.flag [:n, :note]
499
+
500
+ c.action do |global_options, options, args|
501
+ wwid.restart_last({ section: options[:s], note: options[:n] })
502
+ end
503
+ end
504
+
491
505
  desc 'Tag last entry'
492
506
  arg_name 'tag1 [tag2...]'
493
507
  command :tag do |c|
@@ -555,14 +569,14 @@ command :tag do |c|
555
569
  end
556
570
 
557
571
  desc 'Mark last entry as highlighted'
558
- command :mark do |c|
572
+ command [:mark, :flag] do |c|
559
573
  c.desc 'Section'
560
574
  c.default_value wwid.current_section
561
- c.flag [:s,:section], :default_value => wwid.current_section
575
+ c.flag [:s, :section], :default_value => wwid.current_section
562
576
 
563
577
  c.desc 'Remove mark'
564
578
  c.default_value false
565
- c.switch [:r,:remove], :negatable => false, :default_value => false
579
+ c.switch [:r, :remove], :negatable => false, :default_value => false
566
580
 
567
581
 
568
582
  c.action do |global_options,options,args|
@@ -577,28 +591,30 @@ arg_name '[section|@tags]'
577
591
  command :show do |c|
578
592
  c.desc 'Tag boolean (AND,OR,NONE)'
579
593
  c.default_value "OR"
580
- c.flag [:b,:bool], :default_value => "OR"
594
+ c.flag [:b, :bool], :default_value => "OR"
581
595
 
582
596
  c.desc 'Max count to show'
583
597
  c.default_value 0
584
- c.flag [:c,:count], :default_value => 0
598
+ c.flag [:c, :count], :default_value => 0
585
599
 
586
600
  c.desc 'Age (oldest/newest)'
587
601
  c.default_value 'newest'
588
- c.flag [:a,:age], :default_value => 'newest'
602
+ c.flag [:a, :age], :default_value => 'newest'
589
603
 
590
604
  c.desc 'Sort order (asc/desc)'
591
605
  c.default_value 'asc'
592
- c.flag [:s,:sort], :default_value => 'asc'
606
+ c.flag [:s, :sort], :default_value => 'asc'
593
607
 
594
608
  c.desc %{
595
- Date range to show, or a single day to filter date on. Date range argument should be quoted. Date specifications can be natural language. To specify a range, use "to," or "through,". Example `doing show --from "monday to friday"`
609
+ Date range to show, or a single day to filter date on.
610
+ Date range argument should be quoted. Date specifications can be natural language.
611
+ To specify a range, use "to" or "through": `doing show --from "monday to friday"`
596
612
  }
597
- c.flag [:f,:from]
613
+ c.flag [:f, :from]
598
614
 
599
615
  c.desc 'Show time intervals on @done tasks'
600
616
  c.default_value true
601
- c.switch [:t,:times], :default_value => true
617
+ c.switch [:t, :times], :default_value => true
602
618
 
603
619
  c.desc 'Show intervals with totals at the end of output'
604
620
  c.default_value false
@@ -616,7 +632,7 @@ command :show do |c|
616
632
  c.switch [:only_timed], :default_value => false, :negatable => false
617
633
 
618
634
  c.desc 'Output to export format (csv|html|json)'
619
- c.flag [:o,:output]
635
+ c.flag [:o, :output]
620
636
  c.action do |global_options,options,args|
621
637
 
622
638
  tag_filter = false
@@ -681,19 +697,24 @@ command :show do |c|
681
697
  end
682
698
 
683
699
  desc 'Search for entries'
684
- long_desc 'Search all sections (or limit to a single section) for entries matching text or regular expression. Normal strings are fuzzy matched, delineate regex with /expression/'
700
+ long_desc <<-'EODESC'
701
+ Search all sections (or limit to a single section) for entries matching text or regular expression. Normal strings are fuzzy matched.
702
+
703
+ To search with regular expressions, single quote the string and surround with slashes: `doing search '/\bm.*?x\b/'`
704
+ EODESC
705
+
685
706
  arg_name 'search_pattern'
686
- command [:grep,:search] do |c|
707
+ command [:grep, :search] do |c|
687
708
  c.desc 'Section'
688
709
  c.default_value "all"
689
- c.flag [:s,:section], :default_value => "All"
710
+ c.flag [:s, :section], :default_value => "All"
690
711
 
691
712
  c.desc 'Output to export format (csv|html|json)'
692
- c.flag [:o,:output]
713
+ c.flag [:o, :output]
693
714
 
694
715
  c.desc 'Show time intervals on @done tasks'
695
716
  c.default_value true
696
- c.switch [:t,:times], :default_value => true
717
+ c.switch [:t, :times], :default_value => true
697
718
 
698
719
  c.desc 'Show intervals with totals at the end of output'
699
720
  c.default_value false
@@ -728,11 +749,11 @@ arg_name 'count'
728
749
  command :recent do |c|
729
750
  c.desc 'Section'
730
751
  c.default_value "All"
731
- c.flag [:s,:section], :default_value => "All"
752
+ c.flag [:s, :section], :default_value => "All"
732
753
 
733
754
  c.desc 'Show time intervals on @done tasks'
734
755
  c.default_value true
735
- c.switch [:t,:times], :default_value => true
756
+ c.switch [:t, :times], :default_value => true
736
757
 
737
758
  c.desc 'Show intervals with totals at the end of output'
738
759
  c.default_value false
@@ -769,11 +790,11 @@ command :today do |c|
769
790
  c.desc 'Specify a section'
770
791
  c.arg_name 'section_name'
771
792
  c.default_value "All"
772
- c.flag [:s,:section], :default_value => 'All'
793
+ c.flag [:s, :section], :default_value => 'All'
773
794
 
774
795
  c.desc 'Show time intervals on @done tasks'
775
796
  c.default_value true
776
- c.switch [:t,:times], :default_value => true
797
+ c.switch [:t, :times], :default_value => true
777
798
 
778
799
  c.desc 'Show time totals at the end of output'
779
800
  c.default_value false
@@ -787,7 +808,7 @@ command :today do |c|
787
808
  c.flag [:tag_sort], :default_value => default
788
809
 
789
810
  c.desc 'Output to export format (csv|html|json)'
790
- c.flag [:o,:output]
811
+ c.flag [:o, :output]
791
812
 
792
813
  c.action do |global_options,options,args|
793
814
 
@@ -806,11 +827,11 @@ command :on do |c|
806
827
  c.desc 'Section'
807
828
  c.arg_name 'section_name'
808
829
  c.default_value 'All'
809
- c.flag [:s,:section], :default_value => 'All'
830
+ c.flag [:s, :section], :default_value => 'All'
810
831
 
811
832
  c.desc 'Show time intervals on @done tasks'
812
833
  c.default_value true
813
- c.switch [:t,:times], :default_value => true
834
+ c.switch [:t, :times], :default_value => true
814
835
 
815
836
  c.desc 'Show time totals at the end of output'
816
837
  c.default_value false
@@ -824,7 +845,7 @@ command :on do |c|
824
845
  c.flag [:tag_sort], :default_value => default
825
846
 
826
847
  c.desc 'Output to export format (csv|html|json)'
827
- c.flag [:o,:output]
848
+ c.flag [:o, :output]
828
849
 
829
850
  c.action do |global_options,options,args|
830
851
 
@@ -858,14 +879,14 @@ command :yesterday do |c|
858
879
  c.desc 'Specify a section'
859
880
  c.arg_name 'section_name'
860
881
  c.default_value "All"
861
- c.flag [:s,:section], :default_value => 'All'
882
+ c.flag [:s, :section], :default_value => 'All'
862
883
 
863
884
  c.desc 'Output to export format (csv|html|json)'
864
- c.flag [:o,:output]
885
+ c.flag [:o, :output]
865
886
 
866
887
  c.desc 'Show time intervals on @done tasks'
867
888
  c.default_value true
868
- c.switch [:t,:times], :default_value => true
889
+ c.switch [:t, :times], :default_value => true
869
890
 
870
891
  c.desc 'Show time totals at the end of output'
871
892
  c.default_value false
@@ -889,7 +910,7 @@ desc 'Show the last entry'
889
910
  command :last do |c|
890
911
  c.desc 'Specify a section'
891
912
  c.default_value "All"
892
- c.flag [:s,:section]
913
+ c.flag [:s, :section]
893
914
 
894
915
  c.action do |global_options,options,args|
895
916
  puts wwid.last(true,options[:s]).strip
@@ -900,7 +921,7 @@ desc 'List sections'
900
921
  command :sections do |c|
901
922
  c.desc 'List in single column'
902
923
  c.default_value false
903
- c.switch [:c,:column], :default_value => false
924
+ c.switch [:c, :column], :default_value => false
904
925
 
905
926
  c.action do |global_options,options,args|
906
927
  joiner = options[:c] ? "\n" : "\t"
@@ -951,17 +972,17 @@ desc 'Display a user-created view'
951
972
  arg_name 'view_name'
952
973
  command :view do |c|
953
974
  c.desc 'Section (override view settings)'
954
- c.flag [:s,:section]
975
+ c.flag [:s, :section]
955
976
 
956
977
  c.desc 'Count to display (override view settings)'
957
- c.flag [:c,:count], :must_match => /^\d+$/, :type => Integer
978
+ c.flag [:c, :count], :must_match => /^\d+$/, :type => Integer
958
979
 
959
980
  c.desc 'Output to export format (csv|html|json)'
960
- c.flag [:o,:output]
981
+ c.flag [:o, :output]
961
982
 
962
983
  c.desc 'Show time intervals on @done tasks'
963
984
  c.default_value true
964
- c.switch [:t,:times], :default_value => true
985
+ c.switch [:t, :times], :default_value => true
965
986
 
966
987
  c.desc 'Show intervals with totals at the end of output'
967
988
  c.default_value false
@@ -1039,7 +1060,7 @@ desc 'List available custom views'
1039
1060
  command :views do |c|
1040
1061
  c.desc 'List in single column'
1041
1062
  c.default_value false
1042
- c.switch [:c,:column], :default_value => false
1063
+ c.switch [:c, :column], :default_value => false
1043
1064
 
1044
1065
  c.action do |global_options,options,args|
1045
1066
  joiner = options[:c] ? "\n" : "\t"
@@ -1053,15 +1074,15 @@ default_value wwid.current_section
1053
1074
  command :archive do |c|
1054
1075
  c.desc 'Count to keep (ignored if archiving by tag)'
1055
1076
  c.default_value 5
1056
- c.flag [:k,:keep], :default_value => 5, :must_match => /^\d+$/, :type => Integer
1077
+ c.flag [:k, :keep], :default_value => 5, :must_match => /^\d+$/, :type => Integer
1057
1078
 
1058
1079
  c.desc 'Move entries to'
1059
1080
  c.default_value "Archive"
1060
- c.flag [:t,:to], :default_value => "Archive"
1081
+ c.flag [:t, :to], :default_value => "Archive"
1061
1082
 
1062
1083
  c.desc 'Tag boolean'
1063
1084
  c.default_value "AND"
1064
- c.flag [:b,:bool], :default_value => "AND"
1085
+ c.flag [:b, :bool], :default_value => "AND"
1065
1086
 
1066
1087
  c.action do |global_options,options,args|
1067
1088
  if args.length > 0
@@ -1130,7 +1151,7 @@ desc 'Edit the configuration file'
1130
1151
  command :config do |c|
1131
1152
  c.desc 'Editor to use'
1132
1153
  c.default_value ENV['EDITOR']
1133
- c.flag [:e,:editor], :default_value => nil
1154
+ c.flag [:e, :editor], :default_value => nil
1134
1155
 
1135
1156
  if `uname` =~ /Darwins/
1136
1157
  c.desc 'Application to use'
@@ -1169,7 +1190,7 @@ desc 'Undo the last change to the doing_file'
1169
1190
  command :undo do |c|
1170
1191
  c.desc 'Specify alternate doing file'
1171
1192
  c.default_value wwid.doing_file
1172
- c.flag [:f,:file], :default_value => wwid.doing_file
1193
+ c.flag [:f, :file], :default_value => wwid.doing_file
1173
1194
 
1174
1195
  c.action do |global_options,options,args|
1175
1196
  file = options[:f] || wwid.doing_file
@@ -1212,7 +1233,7 @@ post do |global,command,options,args|
1212
1233
  if global[:stdout]
1213
1234
  $stdout.print wwid.results.join("\n")
1214
1235
  else
1215
- $stderr.puts wwid.results.join("\n")
1236
+ warn wwid.results.join("\n")
1216
1237
  end
1217
1238
  end
1218
1239