mushy 0.18.0 → 0.21.0
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/lib/mushy/builder/index.rb +19 -5
- data/lib/mushy/fluxs/bash.rb +2 -0
- data/lib/mushy/fluxs/browser.rb +2 -0
- data/lib/mushy/fluxs/build_csv.rb +1 -0
- data/lib/mushy/fluxs/cli.rb +2 -1
- data/lib/mushy/fluxs/collection.rb +3 -1
- data/lib/mushy/fluxs/document.rb +2 -0
- data/lib/mushy/fluxs/environment.rb +2 -1
- data/lib/mushy/fluxs/file_watch.rb +23 -6
- data/lib/mushy/fluxs/filter.rb +2 -0
- data/lib/mushy/fluxs/format.rb +2 -0
- data/lib/mushy/fluxs/git_log.rb +2 -0
- data/lib/mushy/fluxs/global_variables.rb +2 -1
- data/lib/mushy/fluxs/interval.rb +2 -0
- data/lib/mushy/fluxs/ls.rb +28 -1
- data/lib/mushy/fluxs/parse_html.rb +1 -0
- data/lib/mushy/fluxs/pdf.rb +1 -0
- data/lib/mushy/fluxs/pwd.rb +2 -0
- data/lib/mushy/fluxs/read_csv.rb +1 -0
- data/lib/mushy/fluxs/read_file.rb +1 -0
- data/lib/mushy/fluxs/read_json.rb +1 -0
- data/lib/mushy/fluxs/regex_matches.rb +64 -0
- data/lib/mushy/fluxs/screenshot.rb +1 -0
- data/lib/mushy/fluxs/sense_hat_environmental_sensors.rb +2 -0
- data/lib/mushy/fluxs/sense_hat_led_matrix.rb +2 -0
- data/lib/mushy/fluxs/simple_python_program.rb +1 -0
- data/lib/mushy/fluxs/smtp.rb +2 -1
- data/lib/mushy/fluxs/stdout.rb +2 -1
- data/lib/mushy/fluxs/times.rb +2 -0
- data/lib/mushy/fluxs/twilio_message.rb +2 -1
- data/lib/mushy/fluxs/write_file.rb +1 -0
- data/lib/mushy/fluxs/write_json.rb +1 -0
- data/mushy.gemspec +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfd4d2f868fa9bd4c147f4cd9c7af24cea6ad38934d2e2bec53a6c8c9e396345
|
4
|
+
data.tar.gz: bf919c0d4f927dbc8ef6705b183fea9aa8d2fa73f61354603e83d2c8d01e3842
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9de7dae32eb11e0ae5448c0990e6a4be38483f3f38552e4bf519e6bdec047de6694c86734e57f2b3fe002a1ca263f9b0ed7232b1b42cc5290a2e99ee3d34745f
|
7
|
+
data.tar.gz: da103a79f76baa1cadc52d6a0f5100cfdb848212c9e6e1ac3b9dcb79fa14a527a8f1e7af8a4dc0d91e0e5d7ff77a142f8258308ecba819bfcf517a5772b03b68
|
data/lib/mushy/builder/index.rb
CHANGED
@@ -62,7 +62,9 @@ module Mushy
|
|
62
62
|
</header>
|
63
63
|
<section class="modal-card-body">
|
64
64
|
<div class="content">
|
65
|
-
<div v-for="(
|
65
|
+
<div v-for="(fluxGroup) in fluxGroups">
|
66
|
+
<h2 style="font-style:italic">{{fluxGroup.name}}</h2>
|
67
|
+
<div v-for="(fluxType, id) in fluxGroup.fluxs">
|
66
68
|
<div class="level">
|
67
69
|
<div class="level-left"><h2>{{fluxType.title || fluxType.name}}</h2></div>
|
68
70
|
<div class="level-right">
|
@@ -87,6 +89,7 @@ module Mushy
|
|
87
89
|
<div v-for="(a, b) in fluxType.documentation" v-if="fluxType['detailsTab'] == b" v-html="a"></div>
|
88
90
|
</div>
|
89
91
|
</div>
|
92
|
+
</div>
|
90
93
|
</div>
|
91
94
|
</section>
|
92
95
|
<footer class="modal-card-foot">
|
@@ -236,7 +239,7 @@ module Mushy
|
|
236
239
|
};
|
237
240
|
},
|
238
241
|
props: ['label', 'value', 'options', 'description', 'shrink'],
|
239
|
-
template: '<div><div class="level"><div class="level-left"><div class="level-item"><mip-label :id="id" :label="label" :description="description" :hide_description="shrink && !value"></mip-label></div><div class="level-item"> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a></div></div></div> <span v-for="option in options" v-if="value && value.includes(option.id)">{{option.name}} <a href="#" v-on:click.prevent.stop="remove(option.id, value);$emit(\\'update:value\\', value)">[X]</a> </span> <
|
242
|
+
template: '<div><div class="level"><div class="level-left"><div class="level-item"><mip-label :id="id" :label="label" :description="description" :hide_description="shrink && !value"></mip-label></div><div class="level-item"> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a></div></div></div> <span v-for="option in options" v-if="value && value.includes(option.id)">{{option.name}} <a href="#" v-on:click.prevent.stop="remove(option.id, value);$emit(\\'update:value\\', value)">[X]</a> </span> <div class="control"><select :name="id" v-if="value || !shrink" v-on:input="selectedValue=$event.target.value;" class="select" v-on:change.prevent.stop="doit(selectedValue, value);$emit(\\'update:value\\', value);$event.target.value=\\'\\';"><option v-for="option in options" v-bind:value="option.id">{{option.name}}</option></select></div></div>'
|
240
243
|
},
|
241
244
|
boolean: {
|
242
245
|
props: ['label', 'value', 'options', 'description', 'shrink'],
|
@@ -324,7 +327,7 @@ module Mushy
|
|
324
327
|
});
|
325
328
|
}
|
326
329
|
|
327
|
-
var thingTemplate = '<div v-bind:class="{ \\\'ml-3\\\': data.foghat==\\\'free\\\', \\\'column\\\': data.foghat!=\\\'free\\\', \\\'is-full\\\': data.foghat!=\\\'half\\\' && data.foghat!=\\\'free\\\', \\\'is-half\\\': data.foghat==\\\'half\\\' }">';
|
330
|
+
var thingTemplate = '<div v-show="data.hide != true" v-bind:class="{ \\\'ml-3\\\': data.foghat==\\\'free\\\', \\\'column\\\': data.foghat!=\\\'free\\\', \\\'is-full\\\': data.foghat!=\\\'half\\\' && data.foghat!=\\\'free\\\', \\\'is-half\\\': data.foghat==\\\'half\\\' }">';
|
328
331
|
for (var property in components)
|
329
332
|
thingTemplate = thingTemplate + '<mip-' + property + ' v-if="data.type == \\'' + property + '\\'" :id="id" ' + components[property].props.map(function(x){ return ':' + x + '.sync="data.' + x + '"';}).join(' ') + '></mip-' + property + '>'
|
330
333
|
thingTemplate = thingTemplate + '</div>';
|
@@ -335,7 +338,7 @@ module Mushy
|
|
335
338
|
console: console,
|
336
339
|
}
|
337
340
|
},
|
338
|
-
props: ['data', 'value', 'id', 'model', 'foghat'],
|
341
|
+
props: ['data', 'value', 'id', 'model', 'foghat', 'hide'],
|
339
342
|
template: thingTemplate
|
340
343
|
});
|
341
344
|
|
@@ -385,6 +388,16 @@ module Mushy
|
|
385
388
|
x['detailsTab'] = Object.getOwnPropertyNames(x.documentation)[0];
|
386
389
|
} );
|
387
390
|
|
391
|
+
fluxGroups = []
|
392
|
+
fluxdata.fluxs.map(function(x) {
|
393
|
+
if (x.fluxGroup) {} else { x.fluxGroup = { name: 'Others', position: 999999 } };
|
394
|
+
rowboat = fluxGroups.filter(function(y) { return y.name == x.fluxGroup.name })[0];
|
395
|
+
if (rowboat) {} else { fluxGroups.push(x.fluxGroup); x.fluxGroup.fluxs = [] }
|
396
|
+
rowboat = fluxGroups.filter(function(y) { return y.name == x.fluxGroup.name })[0];
|
397
|
+
rowboat.fluxs.push(x);
|
398
|
+
} );
|
399
|
+
fluxGroups = fluxGroups.sort(function(x, y) { return (x.position || 1000) - (y.position || 1000); })
|
400
|
+
|
388
401
|
var configs = {};
|
389
402
|
fluxdata.fluxs.map(function(x){
|
390
403
|
configs[x.name] = x.config;
|
@@ -446,7 +459,7 @@ module Mushy
|
|
446
459
|
},
|
447
460
|
id: { type: 'hide', value: '' },
|
448
461
|
name: { type: 'text', value: '' },
|
449
|
-
flux: { type: 'select', value: fluxdata.fluxs[0].name, options: options},
|
462
|
+
flux: { type: 'select', value: fluxdata.fluxs[0].name, options: options, hide: true },
|
450
463
|
open_flux: { type: 'button', name: 'Select a Flux', foghat: 'free', medium: 'hey', color: 'is-primary',
|
451
464
|
click: function() {
|
452
465
|
Vue.set(app.setup.fluxTypeSelect, 'is-active', true);
|
@@ -566,6 +579,7 @@ module Mushy
|
|
566
579
|
},
|
567
580
|
configs: configs,
|
568
581
|
fluxTypes: fluxTypesWithDetails,
|
582
|
+
fluxGroups: fluxGroups,
|
569
583
|
setup: setup,
|
570
584
|
flux_name_for: function(ids, fluxes) {
|
571
585
|
var fluxs = fluxes.filter(function(x){ return ids.includes(x.id) });
|
data/lib/mushy/fluxs/bash.rb
CHANGED
data/lib/mushy/fluxs/browser.rb
CHANGED
data/lib/mushy/fluxs/cli.rb
CHANGED
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Collection',
|
8
|
-
|
8
|
+
title: 'Collect and retrieve events',
|
9
|
+
description: 'Collect and retrieve events for the flow.',
|
10
|
+
fluxGroup: { name: 'Flows' },
|
9
11
|
config: {
|
10
12
|
id: {
|
11
13
|
description: 'The path to the unique id in the body of the element.',
|
data/lib/mushy/fluxs/document.rb
CHANGED
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Document',
|
8
|
+
title: 'Make a multi-line liquid value',
|
8
9
|
description: 'Create a multi-line document.',
|
10
|
+
fluxGroup: { name: 'Flows' },
|
9
11
|
config: {
|
10
12
|
document: {
|
11
13
|
description: 'The multi-line document you wish to create.',
|
@@ -5,8 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Environment',
|
8
|
-
title: '
|
8
|
+
title: 'Pull environment variables',
|
9
9
|
description: 'Pull environment variables.',
|
10
|
+
fluxGroup: { name: 'Environment' },
|
10
11
|
config: {
|
11
12
|
variables: {
|
12
13
|
description: 'Map the environment variables to a new event.',
|
@@ -7,7 +7,8 @@ module Mushy
|
|
7
7
|
def self.details
|
8
8
|
{
|
9
9
|
name: 'FileWatch',
|
10
|
-
title: '
|
10
|
+
title: 'Start a flow when files change',
|
11
|
+
fluxGroup: { name: 'Starters', position: 0 },
|
11
12
|
description: 'Watch for file changes.',
|
12
13
|
config: {
|
13
14
|
directory: {
|
@@ -16,6 +17,12 @@ module Mushy
|
|
16
17
|
shrink: true,
|
17
18
|
value: '',
|
18
19
|
},
|
20
|
+
include_all_file_details: {
|
21
|
+
description: 'If true, returns all details for the file. If false, just path & name are returned',
|
22
|
+
type: 'boolean',
|
23
|
+
shrink: true,
|
24
|
+
value: '',
|
25
|
+
}
|
19
26
|
},
|
20
27
|
examples: {
|
21
28
|
"Files Added" => {
|
@@ -46,15 +53,14 @@ module Mushy
|
|
46
53
|
}
|
47
54
|
end
|
48
55
|
|
49
|
-
def loop
|
50
|
-
|
56
|
+
def loop(&block)
|
51
57
|
directory = config[:directory].to_s != '' ? config[:directory] : Dir.pwd
|
52
58
|
|
53
59
|
listener = Listen.to(directory) do |modified, added, removed|
|
54
60
|
the_event = {
|
55
|
-
modified: modified,
|
56
|
-
added: added,
|
57
|
-
removed: removed
|
61
|
+
modified: modified.map { |f| get_the_details_for(f) },
|
62
|
+
added: added.map { |f| get_the_details_for(f) },
|
63
|
+
removed: removed.map { |f| get_the_details_for(f) }
|
58
64
|
}
|
59
65
|
block.call the_event
|
60
66
|
end
|
@@ -69,6 +75,17 @@ module Mushy
|
|
69
75
|
event
|
70
76
|
end
|
71
77
|
|
78
|
+
def get_the_details_for(file)
|
79
|
+
if config[:include_all_file_details].to_s == 'true'
|
80
|
+
Mushy::Ls.new.process({}, { path: file })[0]
|
81
|
+
else
|
82
|
+
{
|
83
|
+
path: file,
|
84
|
+
name: file.split("\/").pop
|
85
|
+
}
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
72
89
|
end
|
73
90
|
|
74
91
|
end
|
data/lib/mushy/fluxs/filter.rb
CHANGED
data/lib/mushy/fluxs/format.rb
CHANGED
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Format',
|
8
|
+
title: 'Alter the format of an event',
|
8
9
|
description: 'Return the event passed to it. This opens the opportunity to use the common fluxing to alter the event.',
|
10
|
+
fluxGroup: { name: 'Flows' },
|
9
11
|
config: {},
|
10
12
|
examples: {
|
11
13
|
"Simplest Example" => {
|
data/lib/mushy/fluxs/git_log.rb
CHANGED
@@ -7,7 +7,8 @@ module Mushy
|
|
7
7
|
def self.details
|
8
8
|
{
|
9
9
|
name: 'GlobalVariables',
|
10
|
-
title: '
|
10
|
+
title: 'Set global variables',
|
11
|
+
fluxGroup: { name: 'Flows' },
|
11
12
|
description: 'Add global variables to use in any future flux. Returns what was passed to it.',
|
12
13
|
config: {
|
13
14
|
values: {
|
data/lib/mushy/fluxs/interval.rb
CHANGED
data/lib/mushy/fluxs/ls.rb
CHANGED
@@ -2,10 +2,30 @@ module Mushy
|
|
2
2
|
|
3
3
|
class Ls < Bash
|
4
4
|
|
5
|
+
def self.the_ls_command
|
6
|
+
@the_ls_command ||= find_the_right_ls_command_to_use
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.find_the_right_ls_command_to_use
|
10
|
+
commands = [
|
11
|
+
'ls', # the normal method used to pull file information
|
12
|
+
'gls' # BSD users don't get the version of ls this needs,
|
13
|
+
# so we might need to use gls after the user runs (brew install coreutils)
|
14
|
+
]
|
15
|
+
|
16
|
+
the_command_to_use = nil
|
17
|
+
while the_command_to_use.nil? && (command = commands.shift) # keep trying till we find one that works
|
18
|
+
the_command_to_use = command if Mushy::Bash.new.process({}, { command: "#{command} --full-time" })[:success]
|
19
|
+
end
|
20
|
+
the_command_to_use || -1
|
21
|
+
end
|
22
|
+
|
5
23
|
def self.details
|
6
24
|
{
|
7
25
|
name: 'Ls',
|
26
|
+
title: 'List Files',
|
8
27
|
description: 'Run the "ls" command.',
|
28
|
+
fluxGroup: { name: 'Files' },
|
9
29
|
config: Mushy::Bash.details[:config].tap { |c| c.delete :command },
|
10
30
|
}.tap do |c|
|
11
31
|
c[:config][:recursive] = {
|
@@ -132,6 +152,8 @@ module Mushy
|
|
132
152
|
end
|
133
153
|
|
134
154
|
def process event, config
|
155
|
+
raise 'ls is not available' if self.class.the_ls_command == -1
|
156
|
+
|
135
157
|
arguments = build_the_arguments_from config
|
136
158
|
|
137
159
|
config[:command] = build_the_command_from arguments
|
@@ -142,7 +164,8 @@ module Mushy
|
|
142
164
|
end
|
143
165
|
|
144
166
|
def build_the_command_from arguments
|
145
|
-
|
167
|
+
command = self.class.the_ls_command
|
168
|
+
"#{command} #{arguments.join(' ')}"
|
146
169
|
end
|
147
170
|
|
148
171
|
def build_the_arguments_from config
|
@@ -230,6 +253,10 @@ module Mushy
|
|
230
253
|
|
231
254
|
result[:date] = Mushy::DateParts.parse result[:date]
|
232
255
|
|
256
|
+
if File.exist?(result[:name]) && result[:name].start_with?(directory)
|
257
|
+
result[:name] = result[:name].split("\/")[-1]
|
258
|
+
end
|
259
|
+
|
233
260
|
result[:directory] = directory
|
234
261
|
|
235
262
|
if result[:type] == 'd' && result[:directory] == result[:name]
|
data/lib/mushy/fluxs/pdf.rb
CHANGED
data/lib/mushy/fluxs/pwd.rb
CHANGED
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Pwd',
|
8
|
+
title: 'Get the working directory',
|
8
9
|
description: 'Run the "pwd" command.',
|
10
|
+
fluxGroup: { name: 'Environment' },
|
9
11
|
config: Mushy::Bash.details[:config].tap { |c| c.delete :command },
|
10
12
|
}.tap do |c|
|
11
13
|
c[:examples] = {
|
data/lib/mushy/fluxs/read_csv.rb
CHANGED
@@ -0,0 +1,64 @@
|
|
1
|
+
module Mushy
|
2
|
+
class RegexMatches < Flux
|
3
|
+
def self.details
|
4
|
+
{
|
5
|
+
name: 'RegexMatches',
|
6
|
+
title: 'Find regex matches',
|
7
|
+
description: 'Use a regex to search content.',
|
8
|
+
fluxGroup: { name: 'Regex' },
|
9
|
+
config: {
|
10
|
+
regex: { description: 'The regular expression to use.',
|
11
|
+
type: 'text',
|
12
|
+
value: '(\w+)' },
|
13
|
+
value: { description: 'The value against which to use the regular expression.',
|
14
|
+
type: 'text',
|
15
|
+
value: '{{value}}' }
|
16
|
+
},
|
17
|
+
examples: {
|
18
|
+
'Simple Example' => {
|
19
|
+
description: 'The simplest regex.',
|
20
|
+
input: { text: 'apple orange' },
|
21
|
+
config: {
|
22
|
+
regex: '(\w+)',
|
23
|
+
value: 'apple orange'
|
24
|
+
},
|
25
|
+
result: [ { match1: 'apple' }, { match2: 'orange' } ]
|
26
|
+
},
|
27
|
+
'Named Parameters' => {
|
28
|
+
description: 'Named Parameters.',
|
29
|
+
input: {
|
30
|
+
text: 'apple 1 orange 2'
|
31
|
+
},
|
32
|
+
config: {
|
33
|
+
regex: '(?<name>\w+) (?<count>\d+)',
|
34
|
+
value: '{{text}}'
|
35
|
+
},
|
36
|
+
result: [ { name: 'apple', count: '1' }, { name: 'orange', count: '2' } ]
|
37
|
+
},
|
38
|
+
}
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
def process(_, config)
|
43
|
+
return [] unless config[:value]
|
44
|
+
return [] if (config[:regex] || '').strip == ''
|
45
|
+
|
46
|
+
keys = config[:regex].scan(/\?<(\w+)>/).flatten
|
47
|
+
|
48
|
+
regex = Regexp.new config[:regex]
|
49
|
+
|
50
|
+
config[:value].scan(regex).map do |match|
|
51
|
+
convert_the_match_to_a_hash match, keys
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def convert_the_match_to_a_hash(match, keys)
|
56
|
+
{}.tap do |hash|
|
57
|
+
match.each_with_index do |item, index|
|
58
|
+
key = (keys[index] || "match#{index + 1}").to_sym
|
59
|
+
hash[key] = item
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'SenseHatEnvironmentalSensors',
|
8
|
+
title: 'Read Environmental Sensors',
|
8
9
|
description: 'Pull values from the Sense HAT environmental sensors.',
|
10
|
+
fluxGroup: { name: 'SenseHAT' },
|
9
11
|
config: Mushy::SimplePythonProgram.default_config,
|
10
12
|
}.tap do |c|
|
11
13
|
measurements
|
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'SenseHatLedMatrix',
|
8
|
+
title: 'Use LED Matrix',
|
8
9
|
description: 'Interface with the LED Matrix.',
|
10
|
+
fluxGroup: { name: 'SenseHAT' },
|
9
11
|
config: Mushy::SimplePythonProgram.default_config.tap do |config|
|
10
12
|
config[:get_pixels] = {
|
11
13
|
description: 'Specify the pixels you want returned as events. Use "all" to return all 64, 3,3 to return x:3 y:3, or "none" to return none.',
|
data/lib/mushy/fluxs/smtp.rb
CHANGED
data/lib/mushy/fluxs/stdout.rb
CHANGED
data/lib/mushy/fluxs/times.rb
CHANGED
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Times',
|
8
|
+
title: 'Repeat an event X times',
|
8
9
|
description: 'Return the event passed to it, X times.',
|
10
|
+
fluxGroup: { name: 'Flows' },
|
9
11
|
config: {
|
10
12
|
times: {
|
11
13
|
description: 'The number of times this event should be returned.',
|
@@ -7,6 +7,7 @@ module Mushy
|
|
7
7
|
name: 'WriteFile',
|
8
8
|
title: 'Write File',
|
9
9
|
description: 'Write a file.',
|
10
|
+
fluxGroup: { name: 'Files' },
|
10
11
|
config: file_saving_config.merge({
|
11
12
|
data: {
|
12
13
|
description: 'The text to write. You can use Liquid templating here to pull data from the event, or write hardcoded data.',
|
data/mushy.gemspec
CHANGED
@@ -4,7 +4,7 @@ require 'mushy/version'
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = 'mushy'
|
7
|
-
s.version = '0.
|
7
|
+
s.version = '0.21.0'
|
8
8
|
s.date = '2020-11-23'
|
9
9
|
s.summary = 'Process streams of work using common modules.'
|
10
10
|
s.description = 'This tool assists in the creation and processing of workflows.'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mushy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Darren Cauthon
|
@@ -205,6 +205,7 @@ files:
|
|
205
205
|
- lib/mushy/fluxs/read_csv.rb
|
206
206
|
- lib/mushy/fluxs/read_file.rb
|
207
207
|
- lib/mushy/fluxs/read_json.rb
|
208
|
+
- lib/mushy/fluxs/regex_matches.rb
|
208
209
|
- lib/mushy/fluxs/screenshot.rb
|
209
210
|
- lib/mushy/fluxs/sense_hat_environmental_sensors.rb
|
210
211
|
- lib/mushy/fluxs/sense_hat_led_matrix.rb
|