mushy 0.15.3 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/hey.mushy +29 -0
- data/lib/mushy/builder/api.rb +15 -3
- data/lib/mushy/builder/documentation.rb +37 -0
- data/lib/mushy/builder/index.rb +88 -15
- data/lib/mushy/flux.rb +5 -1
- data/lib/mushy/fluxs/bash.rb +24 -0
- data/lib/mushy/fluxs/browser.rb +120 -0
- data/lib/mushy/fluxs/build_csv.rb +23 -0
- data/lib/mushy/fluxs/cli.rb +12 -0
- data/lib/mushy/fluxs/collection.rb +3 -1
- data/lib/mushy/fluxs/document.rb +16 -0
- data/lib/mushy/fluxs/environment.rb +13 -0
- data/lib/mushy/fluxs/file_watch.rb +30 -1
- data/lib/mushy/fluxs/filter.rb +28 -0
- data/lib/mushy/fluxs/format.rb +42 -1
- data/lib/mushy/fluxs/git_log.rb +2 -0
- data/lib/mushy/fluxs/global_variables.rb +17 -1
- data/lib/mushy/fluxs/interval.rb +2 -0
- data/lib/mushy/fluxs/ls.rb +112 -0
- data/lib/mushy/fluxs/parse_html.rb +37 -1
- data/lib/mushy/fluxs/pdf.rb +72 -1
- data/lib/mushy/fluxs/pwd.rb +42 -1
- data/lib/mushy/fluxs/read_csv.rb +27 -0
- data/lib/mushy/fluxs/read_file.rb +24 -9
- data/lib/mushy/fluxs/read_json.rb +21 -7
- data/lib/mushy/fluxs/screenshot.rb +72 -2
- 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 -0
- data/lib/mushy/fluxs/times.rb +9 -0
- data/lib/mushy/fluxs/twilio_message.rb +113 -0
- data/lib/mushy/fluxs/write_file.rb +48 -0
- data/lib/mushy/fluxs/write_json.rb +16 -0
- data/mushy.gemspec +1 -1
- metadata +8 -7
- data/lib/mushy/fluxs/print.rb +0 -26
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.',
|
@@ -13,6 +15,20 @@ module Mushy
|
|
13
15
|
value: '',
|
14
16
|
},
|
15
17
|
},
|
18
|
+
examples: {
|
19
|
+
"Example" => {
|
20
|
+
description: 'Using this Flux to build a document',
|
21
|
+
input: {
|
22
|
+
people: [ { name: "John" }, { name: "Jane" } ]
|
23
|
+
},
|
24
|
+
config: {
|
25
|
+
document: '{% for person in people %} {{ person.name }} {% endfor %}'
|
26
|
+
},
|
27
|
+
result: {
|
28
|
+
document: ' John Jane ',
|
29
|
+
}
|
30
|
+
},
|
31
|
+
}
|
16
32
|
}
|
17
33
|
end
|
18
34
|
|
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Environment',
|
8
|
+
title: 'Pull environment variables',
|
8
9
|
description: 'Pull environment variables.',
|
10
|
+
fluxGroup: { name: 'Environment' },
|
9
11
|
config: {
|
10
12
|
variables: {
|
11
13
|
description: 'Map the environment variables to a new event.',
|
@@ -13,6 +15,17 @@ module Mushy
|
|
13
15
|
value: {},
|
14
16
|
},
|
15
17
|
},
|
18
|
+
examples: {
|
19
|
+
"Example" => {
|
20
|
+
description: 'Get environmental variables.',
|
21
|
+
config: {
|
22
|
+
variables: { text_domain: 'TEXTDOMAIN' }
|
23
|
+
},
|
24
|
+
result: {
|
25
|
+
text_domain: 'Linux-PAM',
|
26
|
+
}
|
27
|
+
},
|
28
|
+
}
|
16
29
|
}
|
17
30
|
end
|
18
31
|
|
@@ -7,14 +7,43 @@ module Mushy
|
|
7
7
|
def self.details
|
8
8
|
{
|
9
9
|
name: 'FileWatch',
|
10
|
+
title: 'Start a flow when files change',
|
11
|
+
fluxGroup: { name: 'Starters', position: 0 },
|
10
12
|
description: 'Watch for file changes.',
|
11
13
|
config: {
|
12
14
|
directory: {
|
13
|
-
description: 'The directory to watch.',
|
15
|
+
description: 'The directory to watch, defaults to the current directory.',
|
14
16
|
type: 'text',
|
17
|
+
shrink: true,
|
15
18
|
value: '',
|
16
19
|
},
|
17
20
|
},
|
21
|
+
examples: {
|
22
|
+
"Files Added" => {
|
23
|
+
description: 'When a file is added, this type of result will be returned.',
|
24
|
+
result: {
|
25
|
+
modified: [],
|
26
|
+
added: ["/home/pi/Desktop/mushy/bin/hey.txt"],
|
27
|
+
removed:[]
|
28
|
+
}
|
29
|
+
},
|
30
|
+
"Files Removed" => {
|
31
|
+
description: 'When a file is deleted, this type of result will be returned.',
|
32
|
+
result: {
|
33
|
+
modified: [],
|
34
|
+
added: [],
|
35
|
+
removed:["/home/pi/Desktop/mushy/mushy-0.15.3.gem"]
|
36
|
+
}
|
37
|
+
},
|
38
|
+
"Files Modified" => {
|
39
|
+
description: 'When a file is modified, this type of result will be returned.',
|
40
|
+
result: {
|
41
|
+
modified: ["/home/pi/Desktop/mushy/lib/mushy/fluxs/environment.rb"],
|
42
|
+
added: [],
|
43
|
+
removed:[]
|
44
|
+
}
|
45
|
+
},
|
46
|
+
}
|
18
47
|
}
|
19
48
|
end
|
20
49
|
|
data/lib/mushy/fluxs/filter.rb
CHANGED
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Filter',
|
8
|
+
title: 'Filter events',
|
8
9
|
description: 'Filters events based on criteria.',
|
10
|
+
fluxGroup: { name: 'Flows' },
|
9
11
|
config: {
|
10
12
|
equal: {
|
11
13
|
description: 'Provide key/value pairs that must match in the event.',
|
@@ -36,6 +38,32 @@ module Mushy
|
|
36
38
|
value: {},
|
37
39
|
},
|
38
40
|
},
|
41
|
+
examples: {
|
42
|
+
"Match On A Value" => {
|
43
|
+
description: 'The input is returned if it matches on a value.',
|
44
|
+
input: {
|
45
|
+
name: "John",
|
46
|
+
},
|
47
|
+
config: {
|
48
|
+
matches: { name: "John" }
|
49
|
+
},
|
50
|
+
result: {
|
51
|
+
name: "John",
|
52
|
+
}
|
53
|
+
},
|
54
|
+
"Contains A Value" => {
|
55
|
+
description: 'The input is returned if it contains a value.',
|
56
|
+
input: {
|
57
|
+
name: "John",
|
58
|
+
},
|
59
|
+
config: {
|
60
|
+
contains: { name: "H" }
|
61
|
+
},
|
62
|
+
result: {
|
63
|
+
name: "John",
|
64
|
+
}
|
65
|
+
},
|
66
|
+
}
|
39
67
|
}
|
40
68
|
end
|
41
69
|
|
data/lib/mushy/fluxs/format.rb
CHANGED
@@ -5,8 +5,49 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Format',
|
8
|
-
|
8
|
+
title: 'Alter the format of an event',
|
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: {},
|
12
|
+
examples: {
|
13
|
+
"Simplest Example" => {
|
14
|
+
description: 'It only returns what is passed to it.',
|
15
|
+
input: {
|
16
|
+
hello: 'world',
|
17
|
+
},
|
18
|
+
config: {
|
19
|
+
},
|
20
|
+
result: {
|
21
|
+
hello: 'world',
|
22
|
+
}
|
23
|
+
},
|
24
|
+
"Changing The Event" => {
|
25
|
+
description: 'The common fluxing can still be used to alter the event.',
|
26
|
+
input: {
|
27
|
+
things: [
|
28
|
+
{ name: "Elephant", type: "Mammal" },
|
29
|
+
{ name: "Alligator", type: "Reptile" },
|
30
|
+
{ name: "Giraffe", type: "Mammal" }
|
31
|
+
]
|
32
|
+
},
|
33
|
+
config: { outgoing_split:"things",group:"type|animal_type" },
|
34
|
+
result: [
|
35
|
+
{
|
36
|
+
animal_type: [
|
37
|
+
{
|
38
|
+
name: "Elephant",
|
39
|
+
type: "Mammal"
|
40
|
+
},
|
41
|
+
{
|
42
|
+
name: "Giraffe",
|
43
|
+
type: "Mammal"
|
44
|
+
}
|
45
|
+
]
|
46
|
+
},
|
47
|
+
{ animal_type:[ { name:"Alligator",type:"Reptile" } ] }
|
48
|
+
]
|
49
|
+
},
|
50
|
+
}
|
10
51
|
}
|
11
52
|
end
|
12
53
|
|
data/lib/mushy/fluxs/git_log.rb
CHANGED
@@ -7,7 +7,9 @@ module Mushy
|
|
7
7
|
def self.details
|
8
8
|
{
|
9
9
|
name: 'GlobalVariables',
|
10
|
-
|
10
|
+
title: 'Set global variables',
|
11
|
+
fluxGroup: { name: 'Flows' },
|
12
|
+
description: 'Add global variables to use in any future flux. Returns what was passed to it.',
|
11
13
|
config: {
|
12
14
|
values: {
|
13
15
|
description: 'Provide key/value pairs that will be set as global variables.',
|
@@ -16,6 +18,20 @@ module Mushy
|
|
16
18
|
value: {},
|
17
19
|
},
|
18
20
|
},
|
21
|
+
examples: {
|
22
|
+
"Setting Config Variables" => {
|
23
|
+
description: 'Set a variable to use in any flux. Here, I can use {{api_key}} anywhere.',
|
24
|
+
input: {
|
25
|
+
hey: 'you'
|
26
|
+
},
|
27
|
+
config: {
|
28
|
+
values: { api_key: 'my api key' }
|
29
|
+
},
|
30
|
+
result: {
|
31
|
+
hey: 'you',
|
32
|
+
}
|
33
|
+
},
|
34
|
+
}
|
19
35
|
}
|
20
36
|
end
|
21
37
|
|
data/lib/mushy/fluxs/interval.rb
CHANGED
data/lib/mushy/fluxs/ls.rb
CHANGED
@@ -5,7 +5,9 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
{
|
7
7
|
name: 'Ls',
|
8
|
+
title: 'List Files',
|
8
9
|
description: 'Run the "ls" command.',
|
10
|
+
fluxGroup: { name: 'Files' },
|
9
11
|
config: Mushy::Bash.details[:config].tap { |c| c.delete :command },
|
10
12
|
}.tap do |c|
|
11
13
|
c[:config][:recursive] = {
|
@@ -20,6 +22,114 @@ module Mushy
|
|
20
22
|
shrink: true,
|
21
23
|
value: '',
|
22
24
|
}
|
25
|
+
end.tap do |c|
|
26
|
+
c[:examples] = {
|
27
|
+
"Run In A Directory" => {
|
28
|
+
description: 'This will run the ls command in the specified directory.',
|
29
|
+
config: {
|
30
|
+
directory: '/home/pi/Desktop/mushy'
|
31
|
+
},
|
32
|
+
result: [{
|
33
|
+
inode: "416921",
|
34
|
+
hard_links: 1,
|
35
|
+
owner: "pi",
|
36
|
+
group: "pi",
|
37
|
+
size: 1270,
|
38
|
+
date: {
|
39
|
+
year: 2021,
|
40
|
+
month: 10,
|
41
|
+
day: 1,
|
42
|
+
hour: 10,
|
43
|
+
minute: 43,
|
44
|
+
second: 35,
|
45
|
+
nanosecond: 664409766,
|
46
|
+
utc_offset: -18000,
|
47
|
+
weekday: 5,
|
48
|
+
day_of_month: 1,
|
49
|
+
day_of_year: 274,
|
50
|
+
string: "2021-10-01 10:43:35 -0500",
|
51
|
+
epoch_integer: 1633103015,
|
52
|
+
epoch_float: 1633103015.6644099,
|
53
|
+
seconds_ago: 454725.436212074
|
54
|
+
},
|
55
|
+
name: "mushy.gemspec",
|
56
|
+
type: "-",
|
57
|
+
owner_permission: "rw-",
|
58
|
+
group_permission: "r--",
|
59
|
+
other_permission: "r--",
|
60
|
+
directory: "/home/pi/Desktop/mushy",
|
61
|
+
path: "/home/pi/Desktop/mushy/mushy.gemspec"
|
62
|
+
},
|
63
|
+
{
|
64
|
+
inode: "403479",
|
65
|
+
hard_links: 3,
|
66
|
+
owner: "pi",
|
67
|
+
group: "pi",
|
68
|
+
size: 4096,
|
69
|
+
date: {
|
70
|
+
year: 2021,
|
71
|
+
month: 3,
|
72
|
+
day: 18,
|
73
|
+
hour: 8,
|
74
|
+
minute: 58,
|
75
|
+
second: 51,
|
76
|
+
nanosecond: 149096220,
|
77
|
+
utc_offset: -18000,
|
78
|
+
weekday: 4,
|
79
|
+
day_of_month: 18,
|
80
|
+
day_of_year: 77,
|
81
|
+
string: "2021-03-18 08:58:51 -0500",
|
82
|
+
epoch_integer: 1616075931,
|
83
|
+
epoch_float: 1616075931.1490963,
|
84
|
+
seconds_ago: 17482042.0544623
|
85
|
+
},
|
86
|
+
name: "test",
|
87
|
+
type: "d",
|
88
|
+
owner_permission: "rwx",
|
89
|
+
group_permission: "r-x",
|
90
|
+
other_permission: "r-x",
|
91
|
+
directory: "test"
|
92
|
+
}
|
93
|
+
]
|
94
|
+
},
|
95
|
+
"Run For a Specific File" => {
|
96
|
+
description: 'This will run the ls command in the specified directory.',
|
97
|
+
config: {
|
98
|
+
path: 'mushy.gemspec'
|
99
|
+
},
|
100
|
+
result: {
|
101
|
+
inode: "416921",
|
102
|
+
hard_links: 1,
|
103
|
+
owner: "pi",
|
104
|
+
group: "pi",
|
105
|
+
size: 1270,
|
106
|
+
date: {
|
107
|
+
year: 2021,
|
108
|
+
month: 10,
|
109
|
+
day: 1,
|
110
|
+
hour: 10,
|
111
|
+
minute: 43,
|
112
|
+
second: 35,
|
113
|
+
nanosecond: 664409766,
|
114
|
+
utc_offset: -18000,
|
115
|
+
weekday: 5,
|
116
|
+
day_of_month: 1,
|
117
|
+
day_of_year: 274,
|
118
|
+
string: "2021-10-01 10:43:35 -0500",
|
119
|
+
epoch_integer: 1633103015,
|
120
|
+
epoch_float: 1633103015.6644099,
|
121
|
+
seconds_ago: 454725.436212074
|
122
|
+
},
|
123
|
+
name: "mushy.gemspec",
|
124
|
+
type: "-",
|
125
|
+
owner_permission: "rw-",
|
126
|
+
group_permission: "r--",
|
127
|
+
other_permission: "r--",
|
128
|
+
directory: "/home/pi/Desktop/mushy",
|
129
|
+
path: "/home/pi/Desktop/mushy/mushy.gemspec"
|
130
|
+
}
|
131
|
+
}
|
132
|
+
}
|
23
133
|
end
|
24
134
|
end
|
25
135
|
|
@@ -129,6 +239,8 @@ module Mushy
|
|
129
239
|
name_segments = result[:name].split "\/"
|
130
240
|
result[:name] = name_segments.pop
|
131
241
|
result[:directory] = name_segments.join "\/"
|
242
|
+
elsif result[:type] == 'd'
|
243
|
+
result[:directory] = result[:name]
|
132
244
|
else
|
133
245
|
result[:path] = File.join result[:directory], result[:name]
|
134
246
|
end
|
@@ -7,7 +7,9 @@ module Mushy
|
|
7
7
|
def self.details
|
8
8
|
{
|
9
9
|
name: 'ParseHtml',
|
10
|
-
|
10
|
+
title: 'Parse HTML',
|
11
|
+
fluxGroup: { name: 'Web' },
|
12
|
+
description: 'Extract data from HTML.',
|
11
13
|
config: {
|
12
14
|
path: {
|
13
15
|
description: 'The path to the HTML in the incoming event.',
|
@@ -20,6 +22,40 @@ module Mushy
|
|
20
22
|
value: { url: 'a|@href' },
|
21
23
|
}
|
22
24
|
},
|
25
|
+
examples: {
|
26
|
+
"Example 1" => {
|
27
|
+
description: 'Pulling all links out of HTML.',
|
28
|
+
input: {
|
29
|
+
html: '<a href="one">First</a><a href="two">Second</a>'
|
30
|
+
},
|
31
|
+
config: {
|
32
|
+
path: 'html',
|
33
|
+
extract: {
|
34
|
+
url: "a|@href",
|
35
|
+
name: "a"
|
36
|
+
},
|
37
|
+
},
|
38
|
+
result: [
|
39
|
+
{ url: 'one', name: 'First' },
|
40
|
+
{ url: 'two', name: 'Second' }
|
41
|
+
]
|
42
|
+
},
|
43
|
+
"Example 2" => {
|
44
|
+
description: 'Pulling the contents of a single div.',
|
45
|
+
input: {
|
46
|
+
html: "<div class=\"main\" data-this=\"you\">HEY</a>"
|
47
|
+
},
|
48
|
+
config: {
|
49
|
+
path: 'html',
|
50
|
+
extract: {
|
51
|
+
content: "div.main",
|
52
|
+
class: "div|@class",
|
53
|
+
"data-this" => "div|@data-this",
|
54
|
+
},
|
55
|
+
},
|
56
|
+
result: { content: 'HEY', class: 'main', "data-this" => "you" },
|
57
|
+
},
|
58
|
+
}
|
23
59
|
}
|
24
60
|
end
|
25
61
|
|
data/lib/mushy/fluxs/pdf.rb
CHANGED
@@ -5,6 +5,7 @@ module Mushy
|
|
5
5
|
def self.details
|
6
6
|
details = Browser.details
|
7
7
|
details[:name] = 'Pdf'
|
8
|
+
details[:title] = 'PDF'
|
8
9
|
details[:description] = 'Turn a URL into a PDF.'
|
9
10
|
|
10
11
|
details[:config][:path] = {
|
@@ -20,7 +21,77 @@ module Mushy
|
|
20
21
|
value: '',
|
21
22
|
}
|
22
23
|
|
23
|
-
details
|
24
|
+
details.tap do |config|
|
25
|
+
config[:examples] = {
|
26
|
+
"PDF of google.com" => {
|
27
|
+
description: 'This will open https://www.google.com and take a screenshot.',
|
28
|
+
config: {
|
29
|
+
url: "https://www.google.com",
|
30
|
+
file: 'file.pdf'
|
31
|
+
},
|
32
|
+
result: {
|
33
|
+
url: "https://www.google.com/",
|
34
|
+
status: 200,
|
35
|
+
title: "Google",
|
36
|
+
cookies: [
|
37
|
+
{
|
38
|
+
name: "1P_JAR",
|
39
|
+
value: "2021-10-07-21",
|
40
|
+
domain: ".google.com",
|
41
|
+
path: "/",
|
42
|
+
expires: 1636232420.005369,
|
43
|
+
size: 19,
|
44
|
+
httpOnly: false,
|
45
|
+
secure: true,
|
46
|
+
session: false,
|
47
|
+
sameSite: "None",
|
48
|
+
priority: "Medium"
|
49
|
+
}
|
50
|
+
],
|
51
|
+
headers: {},
|
52
|
+
time: 1.520785498,
|
53
|
+
body: "...",
|
54
|
+
options: {
|
55
|
+
path: "file.pdf",
|
56
|
+
full: true,
|
57
|
+
quality: 100
|
58
|
+
},
|
59
|
+
file: {
|
60
|
+
inode: "439545",
|
61
|
+
hard_links: 1,
|
62
|
+
owner: "pi",
|
63
|
+
group: "pi",
|
64
|
+
size: 54269,
|
65
|
+
date: {
|
66
|
+
year: 2021,
|
67
|
+
month: 10,
|
68
|
+
day: 7,
|
69
|
+
hour: 16,
|
70
|
+
minute: 0,
|
71
|
+
second: 20,
|
72
|
+
nanosecond: 444437482,
|
73
|
+
utc_offset: -18000,
|
74
|
+
weekday: 4,
|
75
|
+
day_of_month: 7,
|
76
|
+
day_of_year: 280,
|
77
|
+
string: "2021-10-07 16:00:20 -0500",
|
78
|
+
epoch_integer: 1633640420,
|
79
|
+
epoch_float: 1633640420.4444375,
|
80
|
+
seconds_ago: 0.016297478
|
81
|
+
},
|
82
|
+
name: "file.pdf",
|
83
|
+
type: "-",
|
84
|
+
owner_permission: "rw-",
|
85
|
+
group_permission: "r--",
|
86
|
+
other_permission: "r--",
|
87
|
+
directory: "/home/pi/Desktop/mushy",
|
88
|
+
path: "/home/pi/Desktop/mushy/file.pdf"
|
89
|
+
}
|
90
|
+
}
|
91
|
+
},
|
92
|
+
}
|
93
|
+
config[:fluxGroup] = { name: 'Export' }
|
94
|
+
end
|
24
95
|
end
|
25
96
|
|
26
97
|
def adjust input
|
data/lib/mushy/fluxs/pwd.rb
CHANGED
@@ -5,9 +5,50 @@ 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|
|
13
|
+
c[:examples] = {
|
14
|
+
"Example" => {
|
15
|
+
description: 'This will run the pwd command and return the directory information.',
|
16
|
+
result: {
|
17
|
+
pwd: {
|
18
|
+
inode: "403091",
|
19
|
+
hard_links: 5,
|
20
|
+
owner: "pi",
|
21
|
+
group: "pi",
|
22
|
+
size: 4095,
|
23
|
+
date: {
|
24
|
+
year: 2020,
|
25
|
+
month: 9,
|
26
|
+
day: 5,
|
27
|
+
hour: 10,
|
28
|
+
minute: 43,
|
29
|
+
second: 36,
|
30
|
+
nanosecond: 325720074,
|
31
|
+
utc_offset: -18001,
|
32
|
+
weekday: 2,
|
33
|
+
day_of_month: 5,
|
34
|
+
day_of_year: 278,
|
35
|
+
string: "2020-10-06 11:44:37 -0500",
|
36
|
+
epoch_integer: 1633538676,
|
37
|
+
epoch_float: 1633538676.32572,
|
38
|
+
seconds_ago: 17558.38995246
|
39
|
+
},
|
40
|
+
name: "mushy",
|
41
|
+
type: "d",
|
42
|
+
owner_permission: "rwx",
|
43
|
+
group_permission: "r-x",
|
44
|
+
other_permission: "r-x",
|
45
|
+
directory: "/home/pi/Desktop",
|
46
|
+
path: "/home/pi/Desktop/mushy"
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
end
|
11
52
|
end
|
12
53
|
|
13
54
|
def process event, config
|
data/lib/mushy/fluxs/read_csv.rb
CHANGED
@@ -7,6 +7,8 @@ module Mushy
|
|
7
7
|
def self.details
|
8
8
|
{
|
9
9
|
name: 'ReadCsv',
|
10
|
+
title: 'Read CSV',
|
11
|
+
fluxGroup: { name: 'CSV' },
|
10
12
|
description: 'Read CSV content into events.',
|
11
13
|
config: {
|
12
14
|
data: {
|
@@ -21,6 +23,31 @@ module Mushy
|
|
21
23
|
value: '',
|
22
24
|
},
|
23
25
|
},
|
26
|
+
examples: {
|
27
|
+
"With Headers" => {
|
28
|
+
description: 'Using this Flux to read a CSV into many events.',
|
29
|
+
input: {
|
30
|
+
csv: "first,last,height\njane,doe,short"
|
31
|
+
},
|
32
|
+
config: {
|
33
|
+
data: '{{csv}}'
|
34
|
+
},
|
35
|
+
result: { "first": "jane", "last": "doe", "height": "short" }
|
36
|
+
},
|
37
|
+
"No Headers" => {
|
38
|
+
description: 'Using this Flux to read a CSV into many events.',
|
39
|
+
input: {
|
40
|
+
csv: "john,doe,tall\njane,doe,short"
|
41
|
+
},
|
42
|
+
config: {
|
43
|
+
data: '{{csv}}'
|
44
|
+
},
|
45
|
+
result: [
|
46
|
+
{ "a": "john", "b": "doe", "c": "tall" },
|
47
|
+
{ "a": "jane", "b": "doe", "c": "short" }
|
48
|
+
]
|
49
|
+
},
|
50
|
+
}
|
24
51
|
}
|
25
52
|
end
|
26
53
|
|