doing 2.0.9.pre → 2.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardoc/checksums +20 -0
- data/.yardoc/complete +0 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +1 -1
- data/Gemfile.lock +30 -10
- data/README.md +1 -1
- data/Rakefile +8 -1
- data/bin/doing +76 -30
- data/doc/Array.html +135 -0
- data/doc/Doing/Color.html +506 -0
- data/doc/Doing/Configuration.html +680 -0
- data/doc/Doing/Errors/DoingNoTraceError.html +186 -0
- data/doc/Doing/Errors/DoingRuntimeError.html +186 -0
- data/doc/Doing/Errors/DoingStandardError.html +186 -0
- data/doc/Doing/Errors/EmptyInput.html +186 -0
- data/doc/Doing/Errors/NoResults.html +186 -0
- data/doc/Doing/Errors/PluginException.html +248 -0
- data/doc/Doing/Errors/UserCancelled.html +186 -0
- data/doc/Doing/Errors/WrongCommand.html +186 -0
- data/doc/Doing/Errors.html +191 -0
- data/doc/Doing/Hooks.html +364 -0
- data/doc/Doing/Item.html +1385 -0
- data/doc/Doing/Items.html +393 -0
- data/doc/Doing/LogAdapter.html +1650 -0
- data/doc/Doing/Note.html +535 -0
- data/doc/Doing/Pager.html +268 -0
- data/doc/Doing/Plugins.html +849 -0
- data/doc/Doing/Util.html +870 -0
- data/doc/Doing/WWID.html +4827 -0
- data/doc/Doing.html +145 -0
- data/doc/GLI/Commands/MarkdownDocumentListener.html +763 -0
- data/doc/GLI/Commands.html +115 -0
- data/doc/GLI.html +115 -0
- data/doc/Hash.html +332 -0
- data/doc/Status.html +292 -0
- data/doc/String.html +1714 -0
- data/doc/Symbol.html +250 -0
- data/doc/Time.html +182 -0
- data/doc/_index.html +411 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +497 -0
- data/doc/file.README.html +123 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +123 -0
- data/doc/js/app.js +314 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +1867 -0
- data/doc/top-level-namespace.html +112 -0
- data/doing.gemspec +5 -1
- data/doing.rdoc +86 -16
- data/example_plugin.rb +6 -6
- data/lib/doing/array.rb +1 -1
- data/lib/doing/configuration.rb +14 -12
- data/lib/doing/hash.rb +1 -1
- data/lib/doing/item.rb +101 -17
- data/lib/doing/log_adapter.rb +123 -113
- data/lib/doing/note.rb +1 -1
- data/lib/doing/plugin_manager.rb +5 -5
- data/lib/doing/plugins/export/csv_export.rb +1 -1
- data/lib/doing/plugins/export/template_export.rb +5 -7
- data/lib/doing/plugins/import/calendar_import.rb +1 -1
- data/lib/doing/plugins/import/doing_import.rb +4 -4
- data/lib/doing/plugins/import/timing_import.rb +5 -3
- data/lib/doing/string.rb +75 -22
- data/lib/doing/symbol.rb +9 -5
- data/lib/doing/time.rb +1 -1
- data/lib/doing/util.rb +18 -11
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +419 -326
- data/lib/doing/wwidfile.rb +5 -5
- data/lib/doing.rb +2 -1
- data/lib/examples/plugins/say_export.rb +6 -6
- data/rdocfixer.rb +1 -1
- data/yard_templates/default/method_details/setup.rb +3 -0
- metadata +117 -4
@@ -0,0 +1,112 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Top Level Namespace
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.26
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" />
|
16
|
+
|
17
|
+
<script type="text/javascript">
|
18
|
+
pathId = "";
|
19
|
+
relpath = '';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="_index.html">Index</a> »
|
40
|
+
|
41
|
+
|
42
|
+
<span class="title">Top Level Namespace</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Top Level Namespace
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
</div>
|
80
|
+
|
81
|
+
<h2>Defined Under Namespace</h2>
|
82
|
+
<p class="children">
|
83
|
+
|
84
|
+
|
85
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Doing.html" title="Doing (module)">Doing</a></span>, <span class='object_link'><a href="GLI.html" title="GLI (module)">GLI</a></span>, <span class='object_link'><a href="Status.html" title="Status (module)">Status</a></span>
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span>, <span class='object_link'><a href="Hash.html" title="Hash (class)">Hash</a></span>, <span class='object_link'><a href="String.html" title="String (class)">String</a></span>, <span class='object_link'><a href="Symbol.html" title="Symbol (class)">Symbol</a></span>, <span class='object_link'><a href="Time.html" title="Time (class)">Time</a></span>
|
90
|
+
|
91
|
+
|
92
|
+
</p>
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
</div>
|
103
|
+
|
104
|
+
<div id="footer">
|
105
|
+
Generated on Thu Nov 18 16:39:11 2021 by
|
106
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
107
|
+
0.9.26 (ruby-3.0.1).
|
108
|
+
</div>
|
109
|
+
|
110
|
+
</div>
|
111
|
+
</body>
|
112
|
+
</html>
|
data/doing.gemspec
CHANGED
@@ -27,8 +27,12 @@ spec = Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency 'rdoc', '~> 6.3.1'
|
28
28
|
s.add_development_dependency 'aruba', '~> 1.0.2'
|
29
29
|
s.add_development_dependency 'test-unit', '~> 3.4.4'
|
30
|
+
s.add_development_dependency 'yard'
|
31
|
+
s.add_development_dependency 'redcarpet'
|
32
|
+
s.add_development_dependency 'github-markup'
|
30
33
|
s.add_runtime_dependency('gli', '~> 2.19', '>= 2.19.2')
|
31
34
|
s.add_runtime_dependency('haml','~>5.0.0', '>= 5.0.0')
|
32
35
|
s.add_runtime_dependency('chronic','~> 0.10', '>= 0.10.2')
|
33
|
-
s.add_runtime_dependency
|
36
|
+
s.add_runtime_dependency('deep_merge', '~> 1.2', '>= 1.2.1')
|
37
|
+
s.add_runtime_dependency('amatch', '~> 0.4', '>= 0.4.0')
|
34
38
|
end
|
data/doing.rdoc
CHANGED
@@ -5,7 +5,7 @@ record of what you've been doing, complete with tag-based time tracking. The
|
|
5
5
|
command line tool allows you to add entries, annotate with tags and notes, and
|
6
6
|
view your entries with myriad options, with a focus on a "natural" language syntax.
|
7
7
|
|
8
|
-
v2.0.
|
8
|
+
v2.0.10
|
9
9
|
|
10
10
|
=== Global Options
|
11
11
|
=== --config_file arg
|
@@ -92,7 +92,7 @@ Boolean used to combine multiple tags
|
|
92
92
|
|
93
93
|
===== --case TYPE
|
94
94
|
|
95
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
95
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
96
96
|
|
97
97
|
[Default Value] smart
|
98
98
|
[Must Match] (?-mix:^[csi])
|
@@ -139,6 +139,11 @@ Edit duplicated entry with vim before adding
|
|
139
139
|
|
140
140
|
|
141
141
|
|
142
|
+
===== --fuzzy
|
143
|
+
Use alternative fuzzy matching for search string
|
144
|
+
|
145
|
+
|
146
|
+
|
142
147
|
===== -i|--interactive
|
143
148
|
Select item to resume from a menu of matching entries
|
144
149
|
|
@@ -180,7 +185,7 @@ Tag boolean (AND|OR|NOT)
|
|
180
185
|
|
181
186
|
===== --case TYPE
|
182
187
|
|
183
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
188
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
184
189
|
|
185
190
|
[Default Value] smart
|
186
191
|
[Must Match] (?-mix:^[csi])
|
@@ -215,6 +220,11 @@ Tag filter, combine multiple tags with a comma. Added for compatibility with oth
|
|
215
220
|
[Default Value] None
|
216
221
|
|
217
222
|
|
223
|
+
===== --fuzzy
|
224
|
+
Use alternative fuzzy matching for search string
|
225
|
+
|
226
|
+
|
227
|
+
|
218
228
|
===== --[no-]label
|
219
229
|
Label moved items with @from(SECTION_NAME)
|
220
230
|
|
@@ -305,7 +315,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
|
305
315
|
|
306
316
|
===== --case TYPE
|
307
317
|
|
308
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
318
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
309
319
|
|
310
320
|
[Default Value] smart
|
311
321
|
[Must Match] (?-mix:^[csi])
|
@@ -337,6 +347,11 @@ Archive entries
|
|
337
347
|
|
338
348
|
|
339
349
|
|
350
|
+
===== --fuzzy
|
351
|
+
Use alternative fuzzy matching for search string
|
352
|
+
|
353
|
+
|
354
|
+
|
340
355
|
===== -i|--interactive
|
341
356
|
Select item(s) to cancel from a menu of matching entries
|
342
357
|
|
@@ -539,7 +554,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
|
539
554
|
|
540
555
|
===== --case TYPE
|
541
556
|
|
542
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
557
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
543
558
|
|
544
559
|
[Default Value] smart
|
545
560
|
[Must Match] (?-mix:^[csi])
|
@@ -591,6 +606,11 @@ Include date
|
|
591
606
|
|
592
607
|
|
593
608
|
|
609
|
+
===== --fuzzy
|
610
|
+
Use alternative fuzzy matching for search string
|
611
|
+
|
612
|
+
|
613
|
+
|
594
614
|
===== -i|--interactive
|
595
615
|
Select item(s) to finish from a menu of matching entries
|
596
616
|
|
@@ -639,7 +659,7 @@ Constrain search to entries older than date
|
|
639
659
|
|
640
660
|
===== --case TYPE
|
641
661
|
|
642
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
662
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
643
663
|
|
644
664
|
[Default Value] smart
|
645
665
|
[Must Match] (?-mix:^[csi])
|
@@ -667,6 +687,11 @@ Sort tags by (name|time)
|
|
667
687
|
[Must Match] (?i-mx:^(?:name|time)$)
|
668
688
|
|
669
689
|
|
690
|
+
===== --fuzzy
|
691
|
+
Use alternative fuzzy matching for search string
|
692
|
+
|
693
|
+
|
694
|
+
|
670
695
|
===== -i|--interactive
|
671
696
|
Display an interactive menu of results to perform further operations
|
672
697
|
|
@@ -728,7 +753,7 @@ Import entries older than date
|
|
728
753
|
|
729
754
|
===== --case TYPE
|
730
755
|
|
731
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
756
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
732
757
|
|
733
758
|
[Default Value] smart
|
734
759
|
[Must Match] (?-mix:^[csi])
|
@@ -783,6 +808,11 @@ Autotag entries
|
|
783
808
|
|
784
809
|
|
785
810
|
|
811
|
+
===== --fuzzy
|
812
|
+
Use alternative fuzzy matching for search string
|
813
|
+
|
814
|
+
|
815
|
+
|
786
816
|
===== --not
|
787
817
|
Import items that *don't* match search/tag/date filters
|
788
818
|
|
@@ -818,7 +848,7 @@ Tag boolean
|
|
818
848
|
|
819
849
|
===== --case TYPE
|
820
850
|
|
821
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
851
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
822
852
|
|
823
853
|
[Default Value] smart
|
824
854
|
[Must Match] (?-mix:^[csi])
|
@@ -850,6 +880,11 @@ Edit entry with vim
|
|
850
880
|
|
851
881
|
|
852
882
|
|
883
|
+
===== --fuzzy
|
884
|
+
Use alternative fuzzy matching for search string
|
885
|
+
|
886
|
+
|
887
|
+
|
853
888
|
===== --not
|
854
889
|
Show items that *don't* match search string or tag filter
|
855
890
|
|
@@ -907,7 +942,7 @@ How many recent entries to tag (0 for all)
|
|
907
942
|
|
908
943
|
===== --case TYPE
|
909
944
|
|
910
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
945
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
911
946
|
|
912
947
|
[Default Value] smart
|
913
948
|
[Must Match] (?-mix:^[csi])
|
@@ -945,6 +980,11 @@ Don't ask permission to flag all entries when count is 0
|
|
945
980
|
|
946
981
|
|
947
982
|
|
983
|
+
===== --fuzzy
|
984
|
+
Use alternative fuzzy matching for search string
|
985
|
+
|
986
|
+
|
987
|
+
|
948
988
|
===== -i|--interactive
|
949
989
|
Select item(s) to flag from a menu of matching entries
|
950
990
|
|
@@ -1025,7 +1065,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
|
1025
1065
|
|
1026
1066
|
===== --case TYPE
|
1027
1067
|
|
1028
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
1068
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
1029
1069
|
|
1030
1070
|
[Default Value] smart
|
1031
1071
|
[Must Match] (?-mix:^[csi])
|
@@ -1057,6 +1097,11 @@ Edit entry with vim
|
|
1057
1097
|
|
1058
1098
|
|
1059
1099
|
|
1100
|
+
===== --fuzzy
|
1101
|
+
Use alternative fuzzy matching for search string
|
1102
|
+
|
1103
|
+
|
1104
|
+
|
1060
1105
|
===== -i|--interactive
|
1061
1106
|
Select item for new note from a menu of matching entries
|
1062
1107
|
|
@@ -1247,7 +1292,7 @@ Boolean (AND|OR|NOT) with which to combine multiple tag filters
|
|
1247
1292
|
|
1248
1293
|
===== --case TYPE
|
1249
1294
|
|
1250
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
1295
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
1251
1296
|
|
1252
1297
|
[Default Value] smart
|
1253
1298
|
[Must Match] (?-mix:^[csi])
|
@@ -1274,6 +1319,11 @@ Reset last entry matching tag
|
|
1274
1319
|
[Default Value] None
|
1275
1320
|
|
1276
1321
|
|
1322
|
+
===== --fuzzy
|
1323
|
+
Use alternative fuzzy matching for search string
|
1324
|
+
|
1325
|
+
|
1326
|
+
|
1277
1327
|
===== -i|--interactive
|
1278
1328
|
Select from a menu of matching entries
|
1279
1329
|
|
@@ -1317,7 +1367,7 @@ Tag boolean (AND|OR|NOT)
|
|
1317
1367
|
|
1318
1368
|
===== --case TYPE
|
1319
1369
|
|
1320
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
1370
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
1321
1371
|
|
1322
1372
|
[Default Value] smart
|
1323
1373
|
[Must Match] (?-mix:^[csi])
|
@@ -1352,6 +1402,11 @@ Tag filter, combine multiple tags with a comma. Added for compatibility with oth
|
|
1352
1402
|
[Default Value] None
|
1353
1403
|
|
1354
1404
|
|
1405
|
+
===== --fuzzy
|
1406
|
+
Use alternative fuzzy matching for search string
|
1407
|
+
|
1408
|
+
|
1409
|
+
|
1355
1410
|
===== --not
|
1356
1411
|
Rotate items that *don't* match search string or tag filter
|
1357
1412
|
|
@@ -1383,7 +1438,7 @@ selected entries.
|
|
1383
1438
|
===== Options
|
1384
1439
|
===== --case TYPE
|
1385
1440
|
|
1386
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
1441
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
1387
1442
|
|
1388
1443
|
[Default Value] smart
|
1389
1444
|
[Must Match] (?-mix:^[csi])
|
@@ -1535,7 +1590,7 @@ Max count to show
|
|
1535
1590
|
|
1536
1591
|
===== --case TYPE
|
1537
1592
|
|
1538
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
1593
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
1539
1594
|
|
1540
1595
|
[Default Value] smart
|
1541
1596
|
[Must Match] (?-mix:^[csi])
|
@@ -1595,6 +1650,11 @@ Sort tags by (name|time)
|
|
1595
1650
|
[Must Match] (?i-mx:^(?:name|time))
|
1596
1651
|
|
1597
1652
|
|
1653
|
+
===== --fuzzy
|
1654
|
+
Use alternative fuzzy matching for search string
|
1655
|
+
|
1656
|
+
|
1657
|
+
|
1598
1658
|
===== -i|--interactive
|
1599
1659
|
Select from a menu of matching entries to perform additional operations
|
1600
1660
|
|
@@ -1698,7 +1758,7 @@ How many recent entries to tag (0 for all)
|
|
1698
1758
|
|
1699
1759
|
===== --case TYPE
|
1700
1760
|
|
1701
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
1761
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
1702
1762
|
|
1703
1763
|
[Default Value] smart
|
1704
1764
|
[Must Match] (?-mix:^[csi])
|
@@ -1748,6 +1808,11 @@ Don't ask permission to tag all entries when count is 0
|
|
1748
1808
|
|
1749
1809
|
|
1750
1810
|
|
1811
|
+
===== --fuzzy
|
1812
|
+
Use alternative fuzzy matching for search string
|
1813
|
+
|
1814
|
+
|
1815
|
+
|
1751
1816
|
===== -i|--interactive
|
1752
1817
|
Select item(s) to tag from a menu of matching entries
|
1753
1818
|
|
@@ -1898,7 +1963,7 @@ Count to display
|
|
1898
1963
|
|
1899
1964
|
===== --case TYPE
|
1900
1965
|
|
1901
|
-
Case sensitivity for search string matching [(c)ase-sensitive, (i)
|
1966
|
+
Case sensitivity for search string matching [(c)ase-sensitive, (i)gnore, (s)mart]
|
1902
1967
|
|
1903
1968
|
[Default Value] smart
|
1904
1969
|
[Must Match] (?-mix:^[csi])
|
@@ -1953,6 +2018,11 @@ Include colors in output
|
|
1953
2018
|
|
1954
2019
|
|
1955
2020
|
|
2021
|
+
===== --fuzzy
|
2022
|
+
Use alternative fuzzy matching for search string
|
2023
|
+
|
2024
|
+
|
2025
|
+
|
1956
2026
|
===== -i|--interactive
|
1957
2027
|
Select from a menu of matching entries to perform additional operations
|
1958
2028
|
|
data/example_plugin.rb
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
module Doing
|
28
28
|
##
|
29
|
-
##
|
29
|
+
## Plugin class
|
30
30
|
##
|
31
31
|
class SayExport
|
32
32
|
include Doing::Util
|
@@ -65,7 +65,7 @@ module Doing
|
|
65
65
|
##
|
66
66
|
## wwid.config['plugins'][PLUGIN_NAME][KEY]
|
67
67
|
##
|
68
|
-
##
|
68
|
+
## Method to return plugin settings (required)
|
69
69
|
##
|
70
70
|
## @return Hash of settings for this plugin
|
71
71
|
##
|
@@ -87,7 +87,7 @@ module Doing
|
|
87
87
|
## included in settings. The method should return a
|
88
88
|
## string (not output it to the STDOUT).
|
89
89
|
##
|
90
|
-
##
|
90
|
+
## Method to return template (optional)
|
91
91
|
##
|
92
92
|
## @param trigger The trigger passed to the
|
93
93
|
## template function. When this
|
@@ -96,7 +96,7 @@ module Doing
|
|
96
96
|
## used to determine which one is
|
97
97
|
## output.
|
98
98
|
##
|
99
|
-
## @return
|
99
|
+
## @return [String] template contents
|
100
100
|
##
|
101
101
|
def self.template(trigger)
|
102
102
|
return unless trigger =~ /^say(it)?$/
|
@@ -106,7 +106,7 @@ module Doing
|
|
106
106
|
|
107
107
|
|
108
108
|
##
|
109
|
-
##
|
109
|
+
## Render data received from an output
|
110
110
|
## command
|
111
111
|
##
|
112
112
|
## @param wwid The wwid object with config
|
@@ -118,7 +118,7 @@ module Doing
|
|
118
118
|
## flags passed to command
|
119
119
|
## (variables[:options])
|
120
120
|
##
|
121
|
-
## @return
|
121
|
+
## @return [String] Rendered output
|
122
122
|
##
|
123
123
|
def self.render(wwid, items, variables: {})
|
124
124
|
return if items.nil? || items.empty?
|
data/lib/doing/array.rb
CHANGED
data/lib/doing/configuration.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Doing
|
4
4
|
##
|
5
|
-
##
|
5
|
+
## Configuration object
|
6
6
|
##
|
7
7
|
class Configuration
|
8
8
|
attr_reader :settings
|
@@ -106,14 +106,15 @@ module Doing
|
|
106
106
|
|
107
107
|
def value_for_key(keypath = '')
|
108
108
|
cfg = @settings
|
109
|
+
real_path = []
|
109
110
|
unless keypath =~ /^[.*]?$/
|
110
111
|
paths = keypath.split(/[:.]/)
|
111
112
|
while paths.length.positive? && !cfg.nil?
|
112
113
|
path = paths.shift
|
113
114
|
new_cfg = nil
|
114
115
|
cfg.each do |key, val|
|
115
|
-
next unless key =~
|
116
|
-
|
116
|
+
next unless key =~ path.to_rx(distance: 2)
|
117
|
+
real_path << key
|
117
118
|
new_cfg = val
|
118
119
|
break
|
119
120
|
end
|
@@ -122,12 +123,13 @@ module Doing
|
|
122
123
|
Doing.logger.error("Key match not found: #{path}")
|
123
124
|
break
|
124
125
|
end
|
125
|
-
|
126
126
|
cfg = new_cfg
|
127
127
|
end
|
128
128
|
end
|
129
|
-
|
130
|
-
|
129
|
+
Doing.logger.debug('Config:', "translated key path #{keypath} to #{real_path.join('.')}")
|
130
|
+
result = {}
|
131
|
+
result[real_path[-1]] = cfg
|
132
|
+
result
|
131
133
|
end
|
132
134
|
|
133
135
|
# It takes the input, fills in the defaults where values do not exist.
|
@@ -148,9 +150,9 @@ module Doing
|
|
148
150
|
end
|
149
151
|
|
150
152
|
##
|
151
|
-
##
|
153
|
+
## Read user configuration and merge with defaults
|
152
154
|
##
|
153
|
-
## @param opt
|
155
|
+
## @param opt [Hash] Additional Options
|
154
156
|
##
|
155
157
|
def configure(opt = {})
|
156
158
|
@ignore_local = opt[:ignore_local] if opt[:ignore_local]
|
@@ -219,7 +221,7 @@ module Doing
|
|
219
221
|
end
|
220
222
|
|
221
223
|
##
|
222
|
-
##
|
224
|
+
## Read local configurations
|
223
225
|
##
|
224
226
|
## @return Hash of config options
|
225
227
|
##
|
@@ -251,7 +253,7 @@ module Doing
|
|
251
253
|
end
|
252
254
|
|
253
255
|
##
|
254
|
-
##
|
256
|
+
## Reads a configuration.
|
255
257
|
##
|
256
258
|
def read_config
|
257
259
|
unless File.exist?(config_file)
|
@@ -279,9 +281,9 @@ module Doing
|
|
279
281
|
end
|
280
282
|
|
281
283
|
##
|
282
|
-
##
|
284
|
+
## Finds a project-specific configuration file
|
283
285
|
##
|
284
|
-
## @return
|
286
|
+
## @return [String] A file path
|
285
287
|
##
|
286
288
|
def find_local_config
|
287
289
|
dir = Dir.pwd
|