marked-conductor 1.0.10 → 1.0.12
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 +17 -0
- data/bin/conductor +25 -1
- data/html/Conductor/Condition.html +30 -26
- data/html/Conductor/Env.html +16 -13
- data/html/Conductor/Script.html +36 -26
- data/html/Conductor.html +19 -6
- data/html/Object.html +4 -2
- data/html/String.html +46 -23
- data/html/created.rid +8 -8
- data/html/js/search_index.js +1 -1
- data/html/js/search_index.js.gz +0 -0
- data/lib/conductor/condition.rb +20 -9
- data/lib/conductor/env.rb +18 -7
- data/lib/conductor/script.rb +40 -18
- data/lib/conductor/string.rb +53 -1
- data/lib/conductor/version.rb +1 -1
- data/lib/conductor.rb +1 -1
- metadata +2 -2
data/html/String.html
CHANGED
@@ -122,10 +122,12 @@
|
|
122
122
|
</div>
|
123
123
|
|
124
124
|
<div class="method-description">
|
125
|
-
|
125
|
+
<p>Test if a string is a boolean</p>
|
126
|
+
|
127
|
+
<p>@return [Boolean] test result</p>
|
126
128
|
|
127
129
|
<div class="method-source-code" id="bool-3F-source">
|
128
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
130
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 77</span>
|
129
131
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">bool?</span>
|
130
132
|
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">"utf-8"</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^(?:y(?:es)?|no?|t(?:rue)?|f(?:alse)?)$/</span>)
|
131
133
|
<span class="ruby-keyword">end</span></pre>
|
@@ -145,10 +147,12 @@
|
|
145
147
|
</div>
|
146
148
|
|
147
149
|
<div class="method-description">
|
148
|
-
|
150
|
+
<p>Convert a string boolean to symbol</p>
|
151
|
+
|
152
|
+
<p>@return [Symbol] symbolized version</p>
|
149
153
|
|
150
154
|
<div class="method-source-code" id="bool_to_symbol-source">
|
151
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
155
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 10</span>
|
152
156
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">bool_to_symbol</span>
|
153
157
|
<span class="ruby-keyword">case</span> <span class="ruby-keyword">self</span>
|
154
158
|
<span class="ruby-keyword">when</span> <span class="ruby-regexp">/(NOT|!!)/</span>
|
@@ -175,12 +179,14 @@
|
|
175
179
|
</div>
|
176
180
|
|
177
181
|
<div class="method-description">
|
178
|
-
|
182
|
+
<p>Test a string to see if it’s a UTC date</p>
|
183
|
+
|
184
|
+
<p>@return [Boolean] test result</p>
|
179
185
|
|
180
186
|
<div class="method-source-code" id="date-3F-source">
|
181
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
187
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 26</span>
|
182
188
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">date?</span>
|
183
|
-
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">"utf-8"</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^\d{4}-\d{2}-\d{2}
|
189
|
+
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">"utf-8"</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^\d{4}-\d{2}-\d{2}( \d\d:\d\d)?$/</span>)
|
184
190
|
<span class="ruby-keyword">end</span></pre>
|
185
191
|
</div>
|
186
192
|
</div>
|
@@ -198,10 +204,12 @@
|
|
198
204
|
</div>
|
199
205
|
|
200
206
|
<div class="method-description">
|
201
|
-
|
207
|
+
<p>Test if a string starts with MMD metadata</p>
|
208
|
+
|
209
|
+
<p>@return [Boolean] test result</p>
|
202
210
|
|
203
211
|
<div class="method-source-code" id="meta-3F-source">
|
204
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
212
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 95</span>
|
205
213
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">meta?</span>
|
206
214
|
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">'utf-8'</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^\w+: +\S+/m</span>)
|
207
215
|
<span class="ruby-keyword">end</span></pre>
|
@@ -221,10 +229,12 @@
|
|
221
229
|
</div>
|
222
230
|
|
223
231
|
<div class="method-description">
|
224
|
-
|
232
|
+
<p>Test if a string is a number</p>
|
233
|
+
|
234
|
+
<p>@return [Boolean] test result</p>
|
225
235
|
|
226
236
|
<div class="method-source-code" id="number-3F-source">
|
227
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
237
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 68</span>
|
228
238
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">number?</span>
|
229
239
|
<span class="ruby-identifier">to_f</span>.<span class="ruby-identifier">positive?</span>
|
230
240
|
<span class="ruby-keyword">end</span></pre>
|
@@ -244,10 +254,12 @@
|
|
244
254
|
</div>
|
245
255
|
|
246
256
|
<div class="method-description">
|
247
|
-
|
257
|
+
<p>Remove time from string</p>
|
258
|
+
|
259
|
+
<p>@return [String] string with time removed</p>
|
248
260
|
|
249
261
|
<div class="method-source-code" id="strip_time-source">
|
250
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
262
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 54</span>
|
251
263
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">strip_time</span>
|
252
264
|
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">"utf-8"</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/ \d{1,2}(:\d\d)? *([ap]m)?/i</span>, <span class="ruby-string">""</span>)
|
253
265
|
<span class="ruby-keyword">end</span></pre>
|
@@ -267,10 +279,12 @@
|
|
267
279
|
</div>
|
268
280
|
|
269
281
|
<div class="method-description">
|
270
|
-
|
282
|
+
<p>Test a string to see if it includes a time</p>
|
283
|
+
|
284
|
+
<p>@return [Boolean] test result</p>
|
271
285
|
|
272
286
|
<div class="method-source-code" id="time-3F-source">
|
273
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
287
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 35</span>
|
274
288
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">time?</span>
|
275
289
|
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">"utf-8"</span>).<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/ \d{1,2}(:\d\d)? *([ap]m)?/i</span>)
|
276
290
|
<span class="ruby-keyword">end</span></pre>
|
@@ -295,7 +309,7 @@
|
|
295
309
|
<p>@return [Boolean] Bool representation of the object.</p>
|
296
310
|
|
297
311
|
<div class="method-source-code" id="to_bool-source">
|
298
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
312
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 114</span>
|
299
313
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_bool</span>
|
300
314
|
<span class="ruby-keyword">case</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">'utf-8'</span>)
|
301
315
|
<span class="ruby-keyword">when</span> <span class="ruby-regexp">/^[yt]/i</span>
|
@@ -320,10 +334,12 @@
|
|
320
334
|
</div>
|
321
335
|
|
322
336
|
<div class="method-description">
|
323
|
-
|
337
|
+
<p>Destructive version of <a href="String.html#method-i-to_bool"><code>to_bool</code></a></p>
|
338
|
+
|
339
|
+
<p>@see <a href="String.html#method-i-to_bool"><code>to_bool</code></a></p>
|
324
340
|
|
325
341
|
<div class="method-source-code" id="to_bool-21-source">
|
326
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
342
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 105</span>
|
327
343
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_bool!</span>
|
328
344
|
<span class="ruby-identifier">replace</span> <span class="ruby-identifier">to_bool</span>
|
329
345
|
<span class="ruby-keyword">end</span></pre>
|
@@ -343,10 +359,15 @@
|
|
343
359
|
</div>
|
344
360
|
|
345
361
|
<div class="method-description">
|
346
|
-
|
362
|
+
<p>Convert a natural language string to a Date</p>
|
363
|
+
|
364
|
+
<pre class="ruby"><span class="ruby-identifier">object</span>
|
365
|
+
</pre>
|
366
|
+
|
367
|
+
<p>@return [Date] Resulting Date object</p>
|
347
368
|
|
348
369
|
<div class="method-source-code" id="to_date-source">
|
349
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
370
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 45</span>
|
350
371
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_date</span>
|
351
372
|
<span class="ruby-constant">Chronic</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">"utf-8"</span>))
|
352
373
|
<span class="ruby-keyword">end</span></pre>
|
@@ -369,7 +390,7 @@
|
|
369
390
|
|
370
391
|
|
371
392
|
<div class="method-source-code" id="to_day-source">
|
372
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
393
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 58</span>
|
373
394
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_day</span>(<span class="ruby-identifier">time</span> = <span class="ruby-value">:end</span>)
|
374
395
|
<span class="ruby-identifier">t</span> = <span class="ruby-identifier">time</span> <span class="ruby-operator">==</span> <span class="ruby-value">:end</span> <span class="ruby-operator">?</span> <span class="ruby-string">"23:59"</span> <span class="ruby-operator">:</span> <span class="ruby-string">"00:00"</span>
|
375
396
|
<span class="ruby-constant">Chronic</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-node">"#{strip_time} #{t}"</span>)
|
@@ -390,10 +411,12 @@
|
|
390
411
|
</div>
|
391
412
|
|
392
413
|
<div class="method-description">
|
393
|
-
|
414
|
+
<p>Test if string starts with YAML</p>
|
415
|
+
|
416
|
+
<p>@return [Boolean] test result</p>
|
394
417
|
|
395
418
|
<div class="method-source-code" id="yaml-3F-source">
|
396
|
-
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line
|
419
|
+
<pre><span class="ruby-comment"># File lib/conductor/string.rb, line 86</span>
|
397
420
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">yaml?</span>
|
398
421
|
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">force_encoding</span>(<span class="ruby-string">'utf-8'</span>).<span class="ruby-identifier">match?</span>(<span class="ruby-regexp">/^---/m</span>)
|
399
422
|
<span class="ruby-keyword">end</span></pre>
|
data/html/created.rid
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
|
1
|
+
Wed, 01 May 2024 13:06:18 -0500
|
2
2
|
README.rdoc Sun, 28 Apr 2024 13:21:34 -0500
|
3
|
-
lib/conductor.rb
|
3
|
+
lib/conductor.rb Wed, 01 May 2024 13:05:15 -0500
|
4
4
|
lib/conductor/array.rb Sat, 27 Apr 2024 11:54:28 -0500
|
5
5
|
lib/conductor/boolean.rb Thu, 25 Apr 2024 14:25:59 -0500
|
6
6
|
lib/conductor/command.rb Sat, 27 Apr 2024 11:54:28 -0500
|
7
|
-
lib/conductor/condition.rb
|
7
|
+
lib/conductor/condition.rb Mon, 29 Apr 2024 09:19:15 -0500
|
8
8
|
lib/conductor/config.rb Sat, 27 Apr 2024 11:54:28 -0500
|
9
|
-
lib/conductor/env.rb
|
9
|
+
lib/conductor/env.rb Mon, 29 Apr 2024 09:28:21 -0500
|
10
10
|
lib/conductor/hash.rb Sat, 27 Apr 2024 11:54:28 -0500
|
11
|
-
lib/conductor/script.rb
|
12
|
-
lib/conductor/string.rb
|
13
|
-
lib/conductor/version.rb
|
14
|
-
bin/conductor Sun, 28 Apr 2024
|
11
|
+
lib/conductor/script.rb Sun, 28 Apr 2024 16:21:49 -0500
|
12
|
+
lib/conductor/string.rb Mon, 29 Apr 2024 09:46:03 -0500
|
13
|
+
lib/conductor/version.rb Mon, 29 Apr 2024 09:46:58 -0500
|
14
|
+
bin/conductor Sun, 28 Apr 2024 16:24:45 -0500
|
data/html/js/search_index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
var search_data = {"index":{"searchIndex":["array","conductor","command","condition","config","env","script","falseclass","hash","object","string","trueclass","args=()","args=()","bool?()","bool?()","bool?()","bool_to_symbol()","clean_condition()","conduct()","create_config()","date?()","env()","execute_track()","load_test_env()","meta?()","new()","new()","new()","new()","number?()","operator_to_symbol()","parse_condition()","path=()","path=()","run()","run()","sample_config()","split_booleans()","split_condition()","stdin()","strip_time()","symbolize_keys()","symbolize_keys()","symbolize_keys!()","symbolize_keys!()","test_condition()","test_meta()","test_operator()","test_pandoc()","test_string()","test_tree()","test_truthy()","test_type()","test_yaml()","time?()","to_bool()","to_bool!()","to_date()","to_day()","to_s()","true?()","yaml?()","readme"],"longSearchIndex":["array","conductor","conductor::command","conductor::condition","conductor::config","conductor::env","conductor::script","falseclass","hash","object","string","trueclass","conductor::command#args=()","conductor::script#args=()","falseclass#bool?()","string#bool?()","trueclass#bool?()","string#bool_to_symbol()","object#clean_condition()","conductor::conduct()","conductor#create_config()","string#date?()","conductor::env::env()","conductor::execute_track()","conductor::env::load_test_env()","string#meta?()","conductor::command::new()","conductor::condition::new()","conductor::config::new()","conductor::script::new()","string#number?()","conductor::condition#operator_to_symbol()","conductor::condition#parse_condition()","conductor::command#path=()","conductor::script#path=()","conductor::command#run()","conductor::script#run()","conductor#sample_config()","conductor::condition#split_booleans()","conductor::condition#split_condition()","conductor::stdin()","string#strip_time()","array#symbolize_keys()","hash#symbolize_keys()","array#symbolize_keys!()","hash#symbolize_keys!()","conductor::condition#test_condition()","conductor::condition#test_meta()","conductor::condition#test_operator()","conductor::condition#test_pandoc()","conductor::condition#test_string()","conductor::condition#test_tree()","conductor::condition#test_truthy()","conductor::condition#test_type()","conductor::condition#test_yaml()","string#time?()","string#to_bool()","string#to_bool!()","string#to_date()","string#to_day()","conductor::env::to_s()","conductor::condition#true?()","string#yaml?()",""],"info":[["Array","","Array.html","",""],["Conductor","","Conductor.html","",""],["Conductor::Command","","Conductor/Command.html","","<p>Command runner\n"],["Conductor::Condition","","Conductor/Condition.html","",""],["Conductor::Config","","Conductor/Config.html","","<p>Configuration methods\n"],["Conductor::Env","","Conductor/Env.html","",""],["Conductor::Script","","Conductor/Script.html","","<p>Script runner\n"],["FalseClass","","FalseClass.html","","<p>False class\n"],["Hash","","Hash.html","",""],["Object","","Object.html","",""],["String","","String.html","","<p>String helpers\n"],["TrueClass","","TrueClass.html","","<p>True class\n"],["args=","Conductor::Command","Conductor/Command.html#method-i-args-3D","(array)",""],["args=","Conductor::Script","Conductor/Script.html#method-i-args-3D","(array)",""],["bool?","FalseClass","FalseClass.html#method-i-bool-3F","()",""],["bool?","String","String.html#method-i-bool-3F","()",""],["bool?","TrueClass","TrueClass.html#method-i-bool-3F","()",""],["bool_to_symbol","String","String.html#method-i-bool_to_symbol","()",""],["clean_condition","Object","Object.html#method-i-clean_condition","(condition)",""],["conduct","Conductor","Conductor.html#method-c-conduct","(tracks, res = nil, condition = nil)",""],["create_config","Conductor","Conductor.html#method-i-create_config","(config_file)",""],["date?","String","String.html#method-i-date-3F","()",""],["env","Conductor::Env","Conductor/Env.html#method-c-env","()",""],["execute_track","Conductor","Conductor.html#method-c-execute_track","(track)",""],["load_test_env","Conductor::Env","Conductor/Env.html#method-c-load_test_env","()",""],["meta?","String","String.html#method-i-meta-3F","()",""],["new","Conductor::Command","Conductor/Command.html#method-c-new","(command)",""],["new","Conductor::Condition","Conductor/Condition.html#method-c-new","(condition)",""],["new","Conductor::Config","Conductor/Config.html#method-c-new","()",""],["new","Conductor::Script","Conductor/Script.html#method-c-new","(script)",""],["number?","String","String.html#method-i-number-3F","()",""],["operator_to_symbol","Conductor::Condition","Conductor/Condition.html#method-i-operator_to_symbol","(operator)",""],["parse_condition","Conductor::Condition","Conductor/Condition.html#method-i-parse_condition","()",""],["path=","Conductor::Command","Conductor/Command.html#method-i-path-3D","(path)",""],["path=","Conductor::Script","Conductor/Script.html#method-i-path-3D","(path)",""],["run","Conductor::Command","Conductor/Command.html#method-i-run","()",""],["run","Conductor::Script","Conductor/Script.html#method-i-run","()",""],["sample_config","Conductor","Conductor.html#method-i-sample_config","()",""],["split_booleans","Conductor::Condition","Conductor/Condition.html#method-i-split_booleans","(condition)","<p>@brief Splits booleans and tests components.\n<p>@param condition The condition to test\n<p>@return …\n"],["split_condition","Conductor::Condition","Conductor/Condition.html#method-i-split_condition","(condition)","<p>@brief Splits a natural language condition.\n<p>@param condition The condition @return [Array] …\n"],["stdin","Conductor","Conductor.html#method-c-stdin","()",""],["strip_time","String","String.html#method-i-strip_time","()",""],["symbolize_keys","Array","Array.html#method-i-symbolize_keys","()",""],["symbolize_keys","Hash","Hash.html#method-i-symbolize_keys","()",""],["symbolize_keys!","Array","Array.html#method-i-symbolize_keys-21","()",""],["symbolize_keys!","Hash","Hash.html#method-i-symbolize_keys-21","()",""],["test_condition","Conductor::Condition","Conductor/Condition.html#method-i-test_condition","(condition)",""],["test_meta","Conductor::Condition","Conductor/Condition.html#method-i-test_meta","(content, value, key, operator)","<p>@brief Test for MultiMarkdown metadata,\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">optionally</span> <span class=\"ruby-identifier\">key</span> <span class=\"ruby-keyword\">and</span> <span class=\"ruby-identifier\">value</span>\n</pre>\n<p>@param content [String] The …\n"],["test_operator","Conductor::Condition","Conductor/Condition.html#method-i-test_operator","(value1, value2, operator)","<p>@brief Test operators\n<p>@param value1 Value @param value2 Value to test @param …\n"],["test_pandoc","Conductor::Condition","Conductor/Condition.html#method-i-test_pandoc","(content, operator)",""],["test_string","Conductor::Condition","Conductor/Condition.html#method-i-test_string","(val1, val2, operator)","<p>@brief Compare a string based on operator\n<p>@param val1 The string to test against @param …\n"],["test_tree","Conductor::Condition","Conductor/Condition.html#method-i-test_tree","(origin, value, operator)","<p>@brief Test for the existince of a\n\n<pre>file/directory in the parent tree</pre>\n<p>@param origin Starting …\n"],["test_truthy","Conductor::Condition","Conductor/Condition.html#method-i-test_truthy","(value1, value2, operator)","<p>@brief Test “truthiness”\n<p>@param value1 Value to test against @param value2 …\n"],["test_type","Conductor::Condition","Conductor/Condition.html#method-i-test_type","(val1, val2, operator)","<p>@brief Test for type of value\n<p>@param val1 value @param val2 value to test against …\n"],["test_yaml","Conductor::Condition","Conductor/Condition.html#method-i-test_yaml","(content, value, key, operator)","<p>@brief Test for presence of yaml, optionall for\n\n<pre>a key, optionally for a key's value</pre>\n<p>@param content …\n"],["time?","String","String.html#method-i-time-3F","()",""],["to_bool","String","String.html#method-i-to_bool","()","<p>Returns a bool representation of the string.\n<p>@return [Boolean] Bool representation of the object. …\n"],["to_bool!","String","String.html#method-i-to_bool-21","()",""],["to_date","String","String.html#method-i-to_date","()",""],["to_day","String","String.html#method-i-to_day","(time = :end)",""],["to_s","Conductor::Env","Conductor/Env.html#method-c-to_s","()",""],["true?","Conductor::Condition","Conductor/Condition.html#method-i-true-3F","()",""],["yaml?","String","String.html#method-i-yaml-3F","()",""],["README","","README_rdoc.html","","<p>Marked Conductor\n<p>A command line tool that functions as a custom processor handler for Marked 2.\n"]]}}
|
1
|
+
var search_data = {"index":{"searchIndex":["array","conductor","command","condition","config","env","script","falseclass","hash","object","string","trueclass","args=()","args=()","bool?()","bool?()","bool?()","bool_to_symbol()","clean_condition()","conduct()","create_config()","date?()","env()","execute_track()","load_test_env()","meta?()","new()","new()","new()","new()","number?()","operator_to_symbol()","parse_condition()","path=()","path=()","run()","run()","sample_config()","split_booleans()","split_condition()","stdin()","strip_time()","symbolize_keys()","symbolize_keys()","symbolize_keys!()","symbolize_keys!()","test_condition()","test_meta()","test_operator()","test_pandoc()","test_string()","test_tree()","test_truthy()","test_type()","test_yaml()","time?()","to_bool()","to_bool!()","to_date()","to_day()","to_s()","true?()","yaml?()","readme"],"longSearchIndex":["array","conductor","conductor::command","conductor::condition","conductor::config","conductor::env","conductor::script","falseclass","hash","object","string","trueclass","conductor::command#args=()","conductor::script#args=()","falseclass#bool?()","string#bool?()","trueclass#bool?()","string#bool_to_symbol()","object#clean_condition()","conductor::conduct()","conductor#create_config()","string#date?()","conductor::env::env()","conductor::execute_track()","conductor::env::load_test_env()","string#meta?()","conductor::command::new()","conductor::condition::new()","conductor::config::new()","conductor::script::new()","string#number?()","conductor::condition#operator_to_symbol()","conductor::condition#parse_condition()","conductor::command#path=()","conductor::script#path=()","conductor::command#run()","conductor::script#run()","conductor#sample_config()","conductor::condition#split_booleans()","conductor::condition#split_condition()","conductor::stdin()","string#strip_time()","array#symbolize_keys()","hash#symbolize_keys()","array#symbolize_keys!()","hash#symbolize_keys!()","conductor::condition#test_condition()","conductor::condition#test_meta()","conductor::condition#test_operator()","conductor::condition#test_pandoc()","conductor::condition#test_string()","conductor::condition#test_tree()","conductor::condition#test_truthy()","conductor::condition#test_type()","conductor::condition#test_yaml()","string#time?()","string#to_bool()","string#to_bool!()","string#to_date()","string#to_day()","conductor::env::to_s()","conductor::condition#true?()","string#yaml?()",""],"info":[["Array","","Array.html","",""],["Conductor","","Conductor.html","","<p>Main Conductor class\n"],["Conductor::Command","","Conductor/Command.html","","<p>Command runner\n"],["Conductor::Condition","","Conductor/Condition.html","",""],["Conductor::Config","","Conductor/Config.html","","<p>Configuration methods\n"],["Conductor::Env","","Conductor/Env.html","","<p>Environment variables\n"],["Conductor::Script","","Conductor/Script.html","","<p>Script runner\n"],["FalseClass","","FalseClass.html","","<p>False class\n"],["Hash","","Hash.html","",""],["Object","","Object.html","",""],["String","","String.html","","<p>String helpers\n"],["TrueClass","","TrueClass.html","","<p>True class\n"],["args=","Conductor::Command","Conductor/Command.html#method-i-args-3D","(array)",""],["args=","Conductor::Script","Conductor/Script.html#method-i-args-3D","(array)","<p>Set the args array\n<p>@param array The array\n"],["bool?","FalseClass","FalseClass.html#method-i-bool-3F","()",""],["bool?","String","String.html#method-i-bool-3F","()","<p>Test if a string is a boolean\n<p>@return [Boolean] test result\n"],["bool?","TrueClass","TrueClass.html#method-i-bool-3F","()",""],["bool_to_symbol","String","String.html#method-i-bool_to_symbol","()","<p>Convert a string boolean to symbol\n<p>@return [Symbol] symbolized version\n"],["clean_condition","Object","Object.html#method-i-clean_condition","(condition)","<p>Clean up conditions for output\n<p>@param condition The condition\n"],["conduct","Conductor","Conductor.html#method-c-conduct","(tracks, res = nil, condition = nil)","<p>Main function to parse conditions and\n\n<pre>execute actions. Executes recursively for\nsub-tracks.</pre>\n<p>@param …\n"],["create_config","Conductor","Conductor.html#method-i-create_config","(config_file)",""],["date?","String","String.html#method-i-date-3F","()","<p>Test a string to see if it’s a UTC date\n<p>@return [Boolean] test result\n"],["env","Conductor::Env","Conductor/Env.html#method-c-env","()","<p>Define @env using Marked environment variables\n"],["execute_track","Conductor","Conductor.html#method-c-execute_track","(track)","<p>Execute commands/scripts in the track\n<p>@param track The track\n<p>@return Resulting STDOUT output …\n"],["load_test_env","Conductor::Env","Conductor/Env.html#method-c-load_test_env","()","<p>Loads a test environment.\n"],["meta?","String","String.html#method-i-meta-3F","()","<p>Test if a string starts with MMD metadata\n<p>@return [Boolean] test result\n"],["new","Conductor::Command","Conductor/Command.html#method-c-new","(command)",""],["new","Conductor::Condition","Conductor/Condition.html#method-c-new","(condition)","<p>Initializes the given condition.\n<p>@param condition The condition\n"],["new","Conductor::Config","Conductor/Config.html#method-c-new","()",""],["new","Conductor::Script","Conductor/Script.html#method-c-new","(script)","<p>Initializes the given script.\n<p>@param script The script/path\n"],["number?","String","String.html#method-i-number-3F","()","<p>Test if a string is a number\n<p>@return [Boolean] test result\n"],["operator_to_symbol","Conductor::Condition","Conductor/Condition.html#method-i-operator_to_symbol","(operator)",""],["parse_condition","Conductor::Condition","Conductor/Condition.html#method-i-parse_condition","()",""],["path=","Conductor::Command","Conductor/Command.html#method-i-path-3D","(path)",""],["path=","Conductor::Script","Conductor/Script.html#method-i-path-3D","(path)","<p>Set script path, automatically expands/tests\n<p>@param path The path\n"],["run","Conductor::Command","Conductor/Command.html#method-i-run","()",""],["run","Conductor::Script","Conductor/Script.html#method-i-run","()","<p>Execute the script\n<p>@return [String] script results (STDOUT)\n"],["sample_config","Conductor","Conductor.html#method-i-sample_config","()",""],["split_booleans","Conductor::Condition","Conductor/Condition.html#method-i-split_booleans","(condition)","<p>Splits booleans and tests components.\n<p>@param condition The condition to test\n<p>@return [Boolean] …\n"],["split_condition","Conductor::Condition","Conductor/Condition.html#method-i-split_condition","(condition)","<p>Splits a natural language condition.\n<p>@param condition The condition @return [Array] Value, value …\n"],["stdin","Conductor","Conductor.html#method-c-stdin","()",""],["strip_time","String","String.html#method-i-strip_time","()","<p>Remove time from string\n<p>@return [String] string with time removed\n"],["symbolize_keys","Array","Array.html#method-i-symbolize_keys","()",""],["symbolize_keys","Hash","Hash.html#method-i-symbolize_keys","()",""],["symbolize_keys!","Array","Array.html#method-i-symbolize_keys-21","()",""],["symbolize_keys!","Hash","Hash.html#method-i-symbolize_keys-21","()",""],["test_condition","Conductor::Condition","Conductor/Condition.html#method-i-test_condition","(condition)",""],["test_meta","Conductor::Condition","Conductor/Condition.html#method-i-test_meta","(content, value, key, operator)","<p>Test for MultiMarkdown metadata,\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">optionally</span> <span class=\"ruby-identifier\">key</span> <span class=\"ruby-keyword\">and</span> <span class=\"ruby-identifier\">value</span>\n</pre>\n<p>@param content [String] The text content …\n"],["test_operator","Conductor::Condition","Conductor/Condition.html#method-i-test_operator","(value1, value2, operator)","<p>Test operators\n<p>@param value1 Value @param value2 Value to test @param operator …\n"],["test_pandoc","Conductor::Condition","Conductor/Condition.html#method-i-test_pandoc","(content, operator)",""],["test_string","Conductor::Condition","Conductor/Condition.html#method-i-test_string","(val1, val2, operator)","<p>Compare a string based on operator\n<p>@param val1 The string to test against @param val2 …\n"],["test_tree","Conductor::Condition","Conductor/Condition.html#method-i-test_tree","(origin, value, operator)","<p>Test for the existince of a\n\n<pre>file/directory in the parent tree</pre>\n<p>@param origin Starting directory …\n"],["test_truthy","Conductor::Condition","Conductor/Condition.html#method-i-test_truthy","(value1, value2, operator)","<p>Test “truthiness”\n<p>@param value1 Value to test against @param value2 Value to …\n"],["test_type","Conductor::Condition","Conductor/Condition.html#method-i-test_type","(val1, val2, operator)","<p>Test for type of value\n<p>@param val1 value @param val2 value to test against @param …\n"],["test_yaml","Conductor::Condition","Conductor/Condition.html#method-i-test_yaml","(content, value, key, operator)","<p>Test for presence of yaml, optionall for\n\n<pre>a key, optionally for a key's value</pre>\n<p>@param content Text …\n"],["time?","String","String.html#method-i-time-3F","()","<p>Test a string to see if it includes a time\n<p>@return [Boolean] test result\n"],["to_bool","String","String.html#method-i-to_bool","()","<p>Returns a bool representation of the string.\n<p>@return [Boolean] Bool representation of the object. …\n"],["to_bool!","String","String.html#method-i-to_bool-21","()","<p>Destructive version of #to_bool\n<p>@see #to_bool\n"],["to_date","String","String.html#method-i-to_date","()","<p>Convert a natural language string to a Date\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">object</span>\n</pre>\n<p>@return [Date] Resulting Date object\n"],["to_day","String","String.html#method-i-to_day","(time = :end)",""],["to_s","Conductor::Env","Conductor/Env.html#method-c-to_s","()","<p>env to string\n<p>@return [String] shell-compatible string representation of @env\n"],["true?","Conductor::Condition","Conductor/Condition.html#method-i-true-3F","()","<p>Tests condition\n<p>@return [Boolean] test result\n"],["yaml?","String","String.html#method-i-yaml-3F","()","<p>Test if string starts with YAML\n<p>@return [Boolean] test result\n"],["README","","README_rdoc.html","","<p>Marked Conductor\n<p>A command line tool that functions as a custom processor handler for Marked 2.\n"]]}}
|
data/html/js/search_index.js.gz
CHANGED
Binary file
|
data/lib/conductor/condition.rb
CHANGED
@@ -2,17 +2,28 @@
|
|
2
2
|
|
3
3
|
module Conductor
|
4
4
|
class Condition
|
5
|
+
|
6
|
+
##
|
7
|
+
## Initializes the given condition.
|
8
|
+
##
|
9
|
+
## @param condition The condition
|
10
|
+
##
|
5
11
|
def initialize(condition)
|
6
12
|
@condition = condition
|
7
13
|
@env = Conductor::Env.env
|
8
14
|
end
|
9
15
|
|
16
|
+
##
|
17
|
+
## Tests condition
|
18
|
+
##
|
19
|
+
## @return [Boolean] test result
|
20
|
+
##
|
10
21
|
def true?
|
11
22
|
parse_condition
|
12
23
|
end
|
13
24
|
|
14
25
|
##
|
15
|
-
##
|
26
|
+
## Splits booleans and tests components.
|
16
27
|
##
|
17
28
|
## @param condition The condition to test
|
18
29
|
##
|
@@ -52,7 +63,7 @@ module Conductor
|
|
52
63
|
end
|
53
64
|
|
54
65
|
##
|
55
|
-
##
|
66
|
+
## Test operators
|
56
67
|
##
|
57
68
|
## @param value1 Value
|
58
69
|
## @param value2 Value to test
|
@@ -80,7 +91,7 @@ module Conductor
|
|
80
91
|
end
|
81
92
|
|
82
93
|
##
|
83
|
-
##
|
94
|
+
## Splits a natural language condition.
|
84
95
|
##
|
85
96
|
## @param condition The condition
|
86
97
|
## @return [Array] Value, value to compare, operator
|
@@ -105,7 +116,7 @@ module Conductor
|
|
105
116
|
end
|
106
117
|
|
107
118
|
##
|
108
|
-
##
|
119
|
+
## Test for type of value
|
109
120
|
##
|
110
121
|
## @param val1 value
|
111
122
|
## @param val2 value to test against
|
@@ -130,7 +141,7 @@ module Conductor
|
|
130
141
|
end
|
131
142
|
|
132
143
|
##
|
133
|
-
##
|
144
|
+
## Compare a string based on operator
|
134
145
|
##
|
135
146
|
## @param val1 The string to test against
|
136
147
|
## @param val2 The value to test
|
@@ -194,7 +205,7 @@ module Conductor
|
|
194
205
|
end
|
195
206
|
|
196
207
|
##
|
197
|
-
##
|
208
|
+
## Test for the existince of a
|
198
209
|
## file/directory in the parent tree
|
199
210
|
##
|
200
211
|
## @param origin Starting directory
|
@@ -219,7 +230,7 @@ module Conductor
|
|
219
230
|
end
|
220
231
|
|
221
232
|
##
|
222
|
-
##
|
233
|
+
## Test "truthiness"
|
223
234
|
##
|
224
235
|
## @param value1 Value to test against
|
225
236
|
## @param value2 Value to test
|
@@ -238,7 +249,7 @@ module Conductor
|
|
238
249
|
end
|
239
250
|
|
240
251
|
##
|
241
|
-
##
|
252
|
+
## Test for presence of yaml, optionall for
|
242
253
|
## a key, optionally for a key's value
|
243
254
|
##
|
244
255
|
## @param content Text content containing YAML
|
@@ -286,7 +297,7 @@ module Conductor
|
|
286
297
|
end
|
287
298
|
|
288
299
|
##
|
289
|
-
##
|
300
|
+
## Test for MultiMarkdown metadata,
|
290
301
|
## optionally key and value
|
291
302
|
##
|
292
303
|
## @param content [String] The text content
|
data/lib/conductor/env.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Conductor
|
4
|
+
# Environment variables
|
4
5
|
module Env
|
6
|
+
##
|
7
|
+
## Define @env using Marked environment variables
|
8
|
+
##
|
5
9
|
def self.env
|
6
|
-
|
10
|
+
if ENV["CONDUCTOR_TEST"] == "true"
|
7
11
|
load_test_env
|
8
12
|
else
|
9
13
|
@env ||= {
|
@@ -23,23 +27,31 @@ module Conductor
|
|
23
27
|
@env
|
24
28
|
end
|
25
29
|
|
30
|
+
##
|
31
|
+
## Loads a test environment.
|
32
|
+
##
|
26
33
|
def self.load_test_env
|
27
34
|
@env = {
|
28
35
|
home: "/Users/ttscoff",
|
29
36
|
css_path: "/Applications/Marked 2.app/Contents/Resources/swiss.css",
|
30
37
|
ext: "md",
|
31
38
|
includes: [],
|
32
|
-
origin: "/Users/ttscoff/
|
33
|
-
filepath: "/Users/ttscoff/
|
39
|
+
origin: "/Users/ttscoff/Sites/dev/bt/source/_posts/",
|
40
|
+
filepath: "/Users/ttscoff/Sites/dev/bt/source/_posts/2024-04-01-automating-the-dimspirations-workflow.md",
|
34
41
|
filename: "advanced-features.md",
|
35
42
|
phase: "PROCESS",
|
36
43
|
outline: "NONE",
|
37
|
-
path: "/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/ttscoff/
|
44
|
+
path: "/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/ttscoff/Sites/dev/bt/source/_posts"
|
38
45
|
}
|
39
46
|
end
|
40
47
|
|
48
|
+
##
|
49
|
+
## env to string
|
50
|
+
##
|
51
|
+
## @return [String] shell-compatible string representation of @env
|
52
|
+
##
|
41
53
|
def self.to_s
|
42
|
-
|
54
|
+
{
|
43
55
|
"HOME" => @env[:home],
|
44
56
|
"MARKED_CSS_PATH" => @env[:css_path],
|
45
57
|
"MARKED_EXT" => @env[:ext],
|
@@ -49,8 +61,7 @@ module Conductor
|
|
49
61
|
"MARKED_PHASE" => @env[:phase],
|
50
62
|
"OUTLINE" => @env[:outline],
|
51
63
|
"PATH" => @env[:path]
|
52
|
-
}
|
53
|
-
out_h.map { |k, v| %(#{k}="#{v}") }.join(" ")
|
64
|
+
}.map { |k, v| %(#{k}="#{v}") }.join(" ")
|
54
65
|
end
|
55
66
|
end
|
56
67
|
end
|
data/lib/conductor/script.rb
CHANGED
@@ -5,41 +5,63 @@ module Conductor
|
|
5
5
|
class Script
|
6
6
|
attr_reader :args, :path
|
7
7
|
|
8
|
+
##
|
9
|
+
## Initializes the given script.
|
10
|
+
##
|
11
|
+
## @param script The script/path
|
12
|
+
##
|
8
13
|
def initialize(script)
|
9
14
|
parts = Shellwords.split(script)
|
10
15
|
self.path = parts[0]
|
11
16
|
self.args = parts[1..].join(" ")
|
12
17
|
end
|
13
18
|
|
19
|
+
##
|
20
|
+
## Set script path, automatically expands/tests
|
21
|
+
##
|
22
|
+
## @param path The path
|
23
|
+
##
|
14
24
|
def path=(path)
|
15
25
|
@path = if %r{^[%/]}.match?(path)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
File.expand_path(path)
|
27
|
+
else
|
28
|
+
script_dir = File.expand_path("~/.config/conductor/scripts")
|
29
|
+
if File.exist?(File.join(script_dir, path))
|
30
|
+
File.join(script_dir, path)
|
31
|
+
elsif TTY::Which.exist?(path)
|
32
|
+
TTY::Which.which(path)
|
33
|
+
else
|
34
|
+
raise "Path to #{path} not found"
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
28
38
|
end
|
29
39
|
|
40
|
+
##
|
41
|
+
## Set the args array
|
42
|
+
##
|
43
|
+
## @param array The array
|
44
|
+
##
|
30
45
|
def args=(array)
|
31
46
|
@args = if array.is_a?(Array)
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
47
|
+
array.join(" ")
|
48
|
+
else
|
49
|
+
array
|
50
|
+
end
|
36
51
|
end
|
37
52
|
|
53
|
+
##
|
54
|
+
## Execute the script
|
55
|
+
##
|
56
|
+
## @return [String] script results (STDOUT)
|
57
|
+
##
|
38
58
|
def run
|
39
59
|
stdin = Conductor.stdin
|
40
60
|
|
41
61
|
raise "Script path not defined" unless @path
|
42
62
|
|
63
|
+
raise "Script not executable" unless File.executable?(@path)
|
64
|
+
|
43
65
|
use_stdin = true
|
44
66
|
if /\$\{?file\}?/.match?(args)
|
45
67
|
use_stdin = false
|
@@ -50,9 +72,9 @@ module Conductor
|
|
50
72
|
end
|
51
73
|
|
52
74
|
if use_stdin
|
53
|
-
`echo #{Shellwords.escape(stdin)} | #{Env} #{path} #{args}`
|
75
|
+
`echo #{Shellwords.escape(stdin)} | #{Env} #{@path} #{@args}`
|
54
76
|
else
|
55
|
-
`#{Env} #{path} #{args}`
|
77
|
+
`#{Env} #{@path} #{@args}`
|
56
78
|
end
|
57
79
|
end
|
58
80
|
end
|
data/lib/conductor/string.rb
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
# String helpers
|
4
4
|
class ::String
|
5
|
+
##
|
6
|
+
## Convert a string boolean to symbol
|
7
|
+
##
|
8
|
+
## @return [Symbol] symbolized version
|
9
|
+
##
|
5
10
|
def bool_to_symbol
|
6
11
|
case self
|
7
12
|
when /(NOT|!!)/
|
@@ -13,18 +18,39 @@ class ::String
|
|
13
18
|
end
|
14
19
|
end
|
15
20
|
|
21
|
+
##
|
22
|
+
## Test a string to see if it's a UTC date
|
23
|
+
##
|
24
|
+
## @return [Boolean] test result
|
25
|
+
##
|
16
26
|
def date?
|
17
|
-
dup.force_encoding("utf-8").match?(/^\d{4}-\d{2}-\d{2}
|
27
|
+
dup.force_encoding("utf-8").match?(/^\d{4}-\d{2}-\d{2}( \d\d:\d\d)?$/)
|
18
28
|
end
|
19
29
|
|
30
|
+
##
|
31
|
+
## Test a string to see if it includes a time
|
32
|
+
##
|
33
|
+
## @return [Boolean] test result
|
34
|
+
##
|
20
35
|
def time?
|
21
36
|
dup.force_encoding("utf-8").match(/ \d{1,2}(:\d\d)? *([ap]m)?/i)
|
22
37
|
end
|
23
38
|
|
39
|
+
##
|
40
|
+
## Convert a natural language string to a Date
|
41
|
+
## object
|
42
|
+
##
|
43
|
+
## @return [Date] Resulting Date object
|
44
|
+
##
|
24
45
|
def to_date
|
25
46
|
Chronic.parse(dup.force_encoding("utf-8"))
|
26
47
|
end
|
27
48
|
|
49
|
+
##
|
50
|
+
## Remove time from string
|
51
|
+
##
|
52
|
+
## @return [String] string with time removed
|
53
|
+
##
|
28
54
|
def strip_time
|
29
55
|
dup.force_encoding("utf-8").sub(/ \d{1,2}(:\d\d)? *([ap]m)?/i, "")
|
30
56
|
end
|
@@ -34,22 +60,48 @@ class ::String
|
|
34
60
|
Chronic.parse("#{strip_time} #{t}")
|
35
61
|
end
|
36
62
|
|
63
|
+
##
|
64
|
+
## Test if a string is a number
|
65
|
+
##
|
66
|
+
## @return [Boolean] test result
|
67
|
+
##
|
37
68
|
def number?
|
38
69
|
to_f.positive?
|
39
70
|
end
|
40
71
|
|
72
|
+
##
|
73
|
+
## Test if a string is a boolean
|
74
|
+
##
|
75
|
+
## @return [Boolean] test result
|
76
|
+
##
|
41
77
|
def bool?
|
42
78
|
dup.force_encoding("utf-8").match?(/^(?:y(?:es)?|no?|t(?:rue)?|f(?:alse)?)$/)
|
43
79
|
end
|
44
80
|
|
81
|
+
##
|
82
|
+
## Test if string starts with YAML
|
83
|
+
##
|
84
|
+
## @return [Boolean] test result
|
85
|
+
##
|
45
86
|
def yaml?
|
46
87
|
dup.force_encoding('utf-8').match?(/^---/m)
|
47
88
|
end
|
48
89
|
|
90
|
+
##
|
91
|
+
## Test if a string starts with MMD metadata
|
92
|
+
##
|
93
|
+
## @return [Boolean] test result
|
94
|
+
##
|
49
95
|
def meta?
|
50
96
|
dup.force_encoding('utf-8').match?(/^\w+: +\S+/m)
|
51
97
|
end
|
52
98
|
|
99
|
+
##
|
100
|
+
## Destructive version of #to_bool
|
101
|
+
##
|
102
|
+
##
|
103
|
+
## @see #to_bool
|
104
|
+
##
|
53
105
|
def to_bool!
|
54
106
|
replace to_bool
|
55
107
|
end
|
data/lib/conductor/version.rb
CHANGED
data/lib/conductor.rb
CHANGED
@@ -25,7 +25,7 @@ module Conductor
|
|
25
25
|
|
26
26
|
def stdin
|
27
27
|
warn "input on STDIN required" unless $stdin.stat.size.positive? || $stdin.fcntl(Fcntl::F_GETFL, 0).zero?
|
28
|
-
@stdin ||= $stdin.read.
|
28
|
+
@stdin ||= $stdin.read.force_encoding("utf-8")
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|