doing 2.1.69 → 2.1.72
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/CHANGELOG.md +16 -0
- data/Gemfile.lock +3 -3
- data/bin/commands/commands.rb +57 -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/ArrayCleanup.html +1 -1
- data/docs/doc/Doing/ArrayNestedHash.html +1 -1
- data/docs/doc/Doing/ArrayTags.html +1 -1
- data/docs/doc/Doing/CSVExport.html +1 -1
- data/docs/doc/Doing/CalendarImport.html +1 -1
- data/docs/doc/Doing/Change.html +1 -1
- data/docs/doc/Doing/Changes.html +1 -1
- data/docs/doc/Doing/ChronifyArray.html +1 -1
- data/docs/doc/Doing/ChronifyNumeric.html +1 -1
- data/docs/doc/Doing/ChronifyString.html +1 -1
- data/docs/doc/Doing/Color.html +1 -1
- data/docs/doc/Doing/Completion/BashCompletions.html +1 -1
- data/docs/doc/Doing/Completion/FigCompletions.html +1 -1
- data/docs/doc/Doing/Completion/FishCompletions.html +1 -1
- data/docs/doc/Doing/Completion/StringUtils.html +1 -1
- data/docs/doc/Doing/Completion/ZshCompletions.html +1 -1
- data/docs/doc/Doing/Completion.html +1 -1
- data/docs/doc/Doing/Configuration.html +1 -1
- data/docs/doc/Doing/DayOneRenderer.html +1 -1
- data/docs/doc/Doing/DayoneExport.html +1 -1
- data/docs/doc/Doing/DoingExport.html +1 -1
- data/docs/doc/Doing/DoingImport.html +1 -1
- data/docs/doc/Doing/Entry.html +1 -1
- 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/HistoryLimitError.html +1 -1
- data/docs/doc/Doing/Errors/InvalidPlugin.html +1 -1
- data/docs/doc/Doing/Errors/MissingBackupFile.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/HTMLExport.html +1 -1
- data/docs/doc/Doing/Hooks.html +1 -1
- data/docs/doc/Doing/Item.html +1 -1
- data/docs/doc/Doing/ItemDates.html +1 -1
- data/docs/doc/Doing/ItemQuery.html +1 -1
- data/docs/doc/Doing/ItemState.html +1 -1
- data/docs/doc/Doing/ItemTags.html +1 -1
- data/docs/doc/Doing/Items.html +1 -1
- data/docs/doc/Doing/JSONExport.html +1 -1
- data/docs/doc/Doing/JSONImport.html +1 -1
- data/docs/doc/Doing/Logger.html +1 -1
- data/docs/doc/Doing/MarkdownExport.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 +1 -1
- data/docs/doc/Doing/PromptChoose.html +1 -1
- data/docs/doc/Doing/PromptFZF.html +1 -1
- data/docs/doc/Doing/PromptInput.html +1 -1
- data/docs/doc/Doing/PromptSTD.html +1 -1
- data/docs/doc/Doing/PromptYN.html +1 -1
- data/docs/doc/Doing/Section.html +1 -1
- data/docs/doc/Doing/StringHighlight.html +1 -1
- data/docs/doc/Doing/StringNormalize.html +84 -1
- data/docs/doc/Doing/StringQuery.html +1 -1
- data/docs/doc/Doing/StringTags.html +1 -1
- data/docs/doc/Doing/StringTransform.html +1 -1
- data/docs/doc/Doing/StringTruncate.html +1 -1
- data/docs/doc/Doing/StringURL.html +1 -1
- data/docs/doc/Doing/SymbolNormalize.html +1 -1
- data/docs/doc/Doing/TaskPaperExport.html +1 -1
- data/docs/doc/Doing/TemplateExport.html +1 -1
- data/docs/doc/Doing/TemplateString.html +2 -2
- data/docs/doc/Doing/TimingImport.html +1 -1
- data/docs/doc/Doing/Types.html +1 -1
- data/docs/doc/Doing/Util/Backup.html +1 -1
- data/docs/doc/Doing/Util.html +1 -1
- data/docs/doc/Doing/Version.html +1 -1
- data/docs/doc/Doing/WWID.html +1 -1
- data/docs/doc/Doing.html +2 -2
- data/docs/doc/FalseClass.html +1 -1
- data/docs/doc/GLI/Commands/Help.html +1 -1
- 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/Numeric.html +1 -1
- data/docs/doc/Object.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 +2 -2
- data/docs/doc/Symbol.html +1 -1
- data/docs/doc/Time.html +1 -1
- data/docs/doc/TrueClass.html +1 -1
- data/docs/doc/_index.html +1 -1
- data/docs/doc/file.README.html +1 -1
- data/docs/doc/index.html +1 -1
- data/docs/doc/method_list.html +417 -409
- data/docs/doc/top-level-namespace.html +1 -1
- data/doing.gemspec +0 -1
- data/doing.rdoc +50 -3
- data/lib/completion/_doing.zsh +4 -0
- data/lib/completion/doing.bash +11 -0
- data/lib/completion/doing.fish +5 -0
- data/lib/completion/doing.ts +40 -0
- data/lib/doing/normalize.rb +20 -0
- data/lib/doing/prompt/choose.rb +1 -1
- data/lib/doing/version.rb +1 -1
- metadata +2 -2
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
</div>
|
|
217
217
|
|
|
218
218
|
<div id="footer">
|
|
219
|
-
Generated on Sun
|
|
219
|
+
Generated on Sun Jan 1 07:08:46 2023 by
|
|
220
220
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
221
221
|
0.9.28 (ruby-3.0.1).
|
|
222
222
|
</div>
|
data/doing.gemspec
CHANGED
|
@@ -18,7 +18,6 @@ spec = Gem::Specification.new do |s|
|
|
|
18
18
|
`git ls-files -z`.split("\x0").reject { |f| f.strip =~ %r{^((test|spec|features)/|\.git|buildnotes)} }
|
|
19
19
|
end
|
|
20
20
|
s.require_paths << 'lib'
|
|
21
|
-
|
|
22
21
|
s.extra_rdoc_files = ['README.md']
|
|
23
22
|
s.rdoc_options << '--title' << 'doing' << '--main' << 'README.md' << '--markup' << 'markdown'
|
|
24
23
|
s.bindir = 'bin'
|
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.1.
|
|
8
|
+
v2.1.72
|
|
9
9
|
|
|
10
10
|
=== Global Options
|
|
11
11
|
=== --config_file arg
|
|
@@ -504,11 +504,29 @@ Enable and disable Doing commands
|
|
|
504
504
|
|
|
505
505
|
|
|
506
506
|
===== Commands
|
|
507
|
-
====== Command: <tt>add|enable COMMAND [COMMAND...]</tt>
|
|
507
|
+
====== Command: <tt>add|enable [COMMAND [COMMAND...]]</tt>
|
|
508
508
|
Enable Doing commands
|
|
509
509
|
|
|
510
510
|
Run without arguments to select commands from a list.
|
|
511
|
-
====== Command: <tt>
|
|
511
|
+
====== Command: <tt>ls|list [QUERY]...</tt>
|
|
512
|
+
List enabled commands
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
======= Options
|
|
516
|
+
======= -s|--style QUERY
|
|
517
|
+
|
|
518
|
+
List style (column, tab, comma, *space)
|
|
519
|
+
|
|
520
|
+
[Default Value] None
|
|
521
|
+
[Must Match] (?-mix:^[cts].*)
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
======= -d|--[no-]disabled
|
|
525
|
+
List disabled commands
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
====== Command: <tt>remove|disable [COMMAND [COMMAND...]]</tt>
|
|
512
530
|
Disable Doing commands
|
|
513
531
|
|
|
514
532
|
|
|
@@ -1271,6 +1289,35 @@ Force exact search string matching (case sensitive)
|
|
|
1271
1289
|
|
|
1272
1290
|
|
|
1273
1291
|
|
|
1292
|
+
==== Command: <tt>later ENTRY</tt>
|
|
1293
|
+
Add an item to the Later section
|
|
1294
|
+
|
|
1295
|
+
|
|
1296
|
+
===== Options
|
|
1297
|
+
===== -b|--back|--started DATE_STRING
|
|
1298
|
+
|
|
1299
|
+
Backdate start time to date string [4pm|20m|2h|yesterday noon]
|
|
1300
|
+
|
|
1301
|
+
[Default Value] None
|
|
1302
|
+
|
|
1303
|
+
|
|
1304
|
+
===== -n|--note TEXT
|
|
1305
|
+
|
|
1306
|
+
Note
|
|
1307
|
+
|
|
1308
|
+
[Default Value] None
|
|
1309
|
+
|
|
1310
|
+
|
|
1311
|
+
===== --ask
|
|
1312
|
+
Prompt for note via multi-line input
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
===== -e|--editor
|
|
1317
|
+
Edit entry with vim
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
|
|
1274
1321
|
==== Command: <tt>mark|flag </tt>
|
|
1275
1322
|
Mark last entry as flagged
|
|
1276
1323
|
|
data/lib/completion/_doing.zsh
CHANGED
|
@@ -27,6 +27,7 @@ function _doing() {
|
|
|
27
27
|
'help:Shows a list of commands or help for one command'
|
|
28
28
|
'import:Import entries from an external source'
|
|
29
29
|
'last:Show the last entry'
|
|
30
|
+
'later:Add an item to the Later section'
|
|
30
31
|
'mark:Mark last entry as flagged'
|
|
31
32
|
'flag:Mark last entry as flagged'
|
|
32
33
|
'meanwhile:Finish any running @meanwhile tasks and optionally create a new one'
|
|
@@ -126,6 +127,9 @@ function _doing() {
|
|
|
126
127
|
last)
|
|
127
128
|
args=( "--bool[Boolean used to combine multiple tags]:BOOLEAN:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" "--config_template[Output using a template from configuration]:TEMPLATE_KEY:" {'(--delete)-d','(-d)--delete'}"[Delete the last entry]" "--duration[Show elapsed time if entry is not tagged @done]" {'(--editor)-e','(-e)--editor'}"[Edit entry with vim]" {'(--hilite)-h','(-h)--hilite'}"[Highlight search matches in output]" "--not[Show items that *don't* match search/tag filters]" {'(--output)-o','(-o)--output'}"[Output to export format]:FORMAT:" {'(--section)-s','(-s)--section'}"[Specify a section]:NAME:" "--save[Save all current command line options as a new view]:VIEW_NAME:" "--search[Filter entries using a search query]:QUERY:" "--tag[Filter entries by tag]:TAG:" "--template[Override output format with a template string containing %placeholders]:TEMPLATE_STRING:" "--title[Title string to be used for output formats that require it]:TITLE:" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
|
|
128
129
|
;;
|
|
130
|
+
later)
|
|
131
|
+
args=( "--ask[Prompt for note via multi-line input]" "--started[Backdate start time to date string [4pm|20m|2h|yesterday noon]]:DATE_STRING:" {'(--editor)-e','(-e)--editor'}"[Edit entry with vim]" {'(--note)-n','(-n)--note'}"[Note]:TEXT:" )
|
|
132
|
+
;;
|
|
129
133
|
mark)
|
|
130
134
|
args=( "--bool[Boolean used to combine multiple tags]:BOOLEAN:" {'(--count)-c','(-c)--count'}"[How many recent entries to tag]:COUNT:" "--case[Case sensitivity for search string matching [(c)ase-sensitive]:TYPE:" {'(--date)-d','(-d)--date'}"[Include current date/time with tag]" "--force[Don't ask permission to flag all entries when count is 0]" {'(--interactive)-i','(-i)--interactive'}"[Select item(s) to flag from a menu of matching entries]" "--not[Flag items that *don't* match search/tag filters]" {'(--remove)-r','(-r)--remove'}"[Remove flag]" {'(--section)-s','(-s)--section'}"[Section]:SECTION_NAME:" "--search[Filter entries using a search query]:QUERY:" "--tag[Filter entries by tag]:TAG:" {'(--unfinished)-u','(-u)--unfinished'}"[Flag last entry]" "--val[Perform a tag value query]:QUERY:" {'(--exact)-x','(-x)--exact'}"[Force exact search string matching]" )
|
|
131
135
|
;;
|
data/lib/completion/doing.bash
CHANGED
|
@@ -148,6 +148,16 @@ _doing_last() {
|
|
|
148
148
|
fi
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
_doing_later() {
|
|
152
|
+
|
|
153
|
+
if [[ "$token" == --* ]]; then
|
|
154
|
+
COMPREPLY=( $( compgen -W '--ask --started --editor --note' -- $token ) )
|
|
155
|
+
elif [[ "$token" == -* ]]; then
|
|
156
|
+
COMPREPLY=( $( compgen -W '-e -n --ask --started --editor --note' -- $token ) )
|
|
157
|
+
|
|
158
|
+
fi
|
|
159
|
+
}
|
|
160
|
+
|
|
151
161
|
_doing_mark() {
|
|
152
162
|
|
|
153
163
|
if [[ "$token" == --* ]]; then
|
|
@@ -456,6 +466,7 @@ _doing()
|
|
|
456
466
|
elif [[ $last =~ (help) ]]; then _doing_help
|
|
457
467
|
elif [[ $last =~ (import) ]]; then _doing_import
|
|
458
468
|
elif [[ $last =~ (last) ]]; then _doing_last
|
|
469
|
+
elif [[ $last =~ (later) ]]; then _doing_later
|
|
459
470
|
elif [[ $last =~ (mark|flag) ]]; then _doing_mark
|
|
460
471
|
elif [[ $last =~ (meanwhile) ]]; then _doing_meanwhile
|
|
461
472
|
elif [[ $last =~ (note) ]]; then _doing_note
|
data/lib/completion/doing.fish
CHANGED
|
@@ -150,6 +150,7 @@ complete -xc doing -n '__fish_doing_needs_command' -a 'grep search' -d Search\ f
|
|
|
150
150
|
complete -xc doing -n '__fish_doing_needs_command' -a 'help' -d Shows\ a\ list\ of\ commands\ or\ help\ for\ one\ command
|
|
151
151
|
complete -xc doing -n '__fish_doing_needs_command' -a 'import' -d Import\ entries\ from\ an\ external\ source
|
|
152
152
|
complete -xc doing -n '__fish_doing_needs_command' -a 'last' -d Show\ the\ last\ entry
|
|
153
|
+
complete -xc doing -n '__fish_doing_needs_command' -a 'later' -d Add\ an\ item\ to\ the\ Later\ section
|
|
153
154
|
complete -xc doing -n '__fish_doing_needs_command' -a 'mark flag' -d Mark\ last\ entry\ as\ flagged
|
|
154
155
|
complete -xc doing -n '__fish_doing_needs_command' -a 'meanwhile' -d Finish\ any\ running\ @meanwhile\ tasks\ and\ optionally\ create\ a\ new\ one
|
|
155
156
|
complete -xc doing -n '__fish_doing_needs_command' -a 'note' -d Add\ a\ note\ to\ the\ last\ entry
|
|
@@ -326,6 +327,10 @@ complete -c doing -l template -f -r -n '__fish_doing_using_command last' -d Ove
|
|
|
326
327
|
complete -c doing -l title -f -r -n '__fish_doing_using_command last' -d Title\ string\ to\ be\ used\ for\ output\ formats\ that\ require\ it
|
|
327
328
|
complete -c doing -l val -f -r -n '__fish_doing_using_command last' -d Perform\ a\ tag\ value\ query
|
|
328
329
|
complete -c doing -l exact -s x -f -n '__fish_doing_using_command last' -d Force\ exact\ search\ string\ matching
|
|
330
|
+
complete -c doing -l ask -f -n '__fish_doing_using_command later' -d Prompt\ for\ note\ via\ multi-line\ input
|
|
331
|
+
complete -c doing -l started -f -r -n '__fish_doing_using_command later' -d Backdate\ start\ time\ to\ date\ string\ \[4pm\|20m\|2h\|yesterday\ noon\]
|
|
332
|
+
complete -c doing -l editor -s e -f -n '__fish_doing_using_command later' -d Edit\ entry\ with\ vim
|
|
333
|
+
complete -c doing -l note -s n -f -r -n '__fish_doing_using_command later' -d Note
|
|
329
334
|
complete -c doing -l bool -f -r -n '__fish_doing_using_command mark flag' -d Boolean\ used\ to\ combine\ multiple\ tags
|
|
330
335
|
complete -c doing -l count -s c -f -r -n '__fish_doing_using_command mark flag' -d How\ many\ recent\ entries\ to\ tag
|
|
331
336
|
complete -c doing -l case -f -r -n '__fish_doing_using_command mark flag' -d Case\ sensitivity\ for\ search\ string\ matching\ \[\(c\)ase-sensitive
|
data/lib/completion/doing.ts
CHANGED
|
@@ -2023,6 +2023,46 @@ const completionSpec: Fig.Spec = {
|
|
|
2023
2023
|
|
|
2024
2024
|
},
|
|
2025
2025
|
|
|
2026
|
+
{
|
|
2027
|
+
name: "later",
|
|
2028
|
+
description: "Add an item to the Later section",
|
|
2029
|
+
options: [
|
|
2030
|
+
{
|
|
2031
|
+
name: ["--ask"],
|
|
2032
|
+
description: "Prompt for note via multi-line input",
|
|
2033
|
+
|
|
2034
|
+
},
|
|
2035
|
+
|
|
2036
|
+
{
|
|
2037
|
+
name: ["--started"],
|
|
2038
|
+
description: "Backdate start time to date string [4pm|20m|2h|yesterday noon]",
|
|
2039
|
+
args: {
|
|
2040
|
+
name: "DATE_STRING",
|
|
2041
|
+
description: "DATE_STRING",
|
|
2042
|
+
},
|
|
2043
|
+
|
|
2044
|
+
},
|
|
2045
|
+
|
|
2046
|
+
{
|
|
2047
|
+
name: ["-e", "--editor"],
|
|
2048
|
+
description: "Edit entry with vim",
|
|
2049
|
+
|
|
2050
|
+
},
|
|
2051
|
+
|
|
2052
|
+
{
|
|
2053
|
+
name: ["-n", "--note"],
|
|
2054
|
+
description: "Note",
|
|
2055
|
+
args: {
|
|
2056
|
+
name: "TEXT",
|
|
2057
|
+
description: "TEXT",
|
|
2058
|
+
},
|
|
2059
|
+
|
|
2060
|
+
},
|
|
2061
|
+
|
|
2062
|
+
],
|
|
2063
|
+
|
|
2064
|
+
},
|
|
2065
|
+
|
|
2026
2066
|
{
|
|
2027
2067
|
name: "mark",
|
|
2028
2068
|
description: "Mark last entry as flagged",
|
data/lib/doing/normalize.rb
CHANGED
|
@@ -26,6 +26,26 @@ module Doing
|
|
|
26
26
|
replace normalize_tag_sort(default)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
+
##
|
|
30
|
+
## Normalize list output style
|
|
31
|
+
##
|
|
32
|
+
## @param default The default
|
|
33
|
+
##
|
|
34
|
+
## @return [Symbol] :comma, :column, :tab, :space
|
|
35
|
+
##
|
|
36
|
+
def normalize_list_style(default = :space)
|
|
37
|
+
case self
|
|
38
|
+
when /^com/i
|
|
39
|
+
:comma
|
|
40
|
+
when /^c/i
|
|
41
|
+
:column
|
|
42
|
+
when /^t/i
|
|
43
|
+
:tab
|
|
44
|
+
else
|
|
45
|
+
:space
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
29
49
|
##
|
|
30
50
|
## Convert an age string to a qualified type
|
|
31
51
|
##
|
data/lib/doing/prompt/choose.rb
CHANGED
|
@@ -17,7 +17,7 @@ module Doing
|
|
|
17
17
|
def choose_from(options, prompt: 'Make a selection: ', multiple: false, sorted: true, fzf_args: [])
|
|
18
18
|
return nil unless $stdout.isatty
|
|
19
19
|
|
|
20
|
-
# fzf_args << '-1' # User is expecting a menu, and even if only one it
|
|
20
|
+
# fzf_args << '-1' # User is expecting a menu, and even if only one it serves as confirmation
|
|
21
21
|
default_args = []
|
|
22
22
|
default_args << %(--prompt="#{prompt}")
|
|
23
23
|
default_args << "--height=#{options.count + 2}"
|
data/lib/doing/version.rb
CHANGED
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.72
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brett Terpstra
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-01-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: github-markup
|