mushy 0.15.1 → 0.15.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c7413fc5021f3f75a4bc76d587e8cf608cf16d39c91bab9caf3916d0eebcc97
4
- data.tar.gz: c4480bd98782f580b3949e4f956c9aab3cce8387ccf923a284ae4b113e316bab
3
+ metadata.gz: 4b743e14b0d41b727255550df74d33edc0c5eb33b4426e31d4eea41830aa167e
4
+ data.tar.gz: 26e61eb0310e6a512deca465c0bb375c94b28ce58a3ee296e677b60a4fea5fc3
5
5
  SHA512:
6
- metadata.gz: 0e9a557ea1b36bd47af03d8b392d2f74e7ad2eefa7c83fa3a81130e8cb5b5bda8be8750bdb649bd8b1ead65cb295ed9d45ce6fe0a89c419d3073e68d9e242b4b
7
- data.tar.gz: bb0f6fc0ac8d21049841d27ffa991a39ad3328c16313799926d25a0b6b1646c12705bc5e4206afce2e5c12b4badb42b6ea969fe7ac20842bce1aed5bd88af986
6
+ metadata.gz: 9bcfe3677a5ca79b2e0249e1b03dec50bc2a019a06f8c61dcb0b4d6e76fc7f11f28f86f32c908d666ba163427a020630f43f73d0ad2c429a35a6f66bf047eab9
7
+ data.tar.gz: 421e40fea84d8ed8e18f0f60584d55b21bb540139c6e9c28cfcf5ce8770a3102e6a92d17efe4b44fae4706bc36b9e2d080b036ba9208162ac5efe60e3c04a657
@@ -80,18 +80,49 @@ module Mushy
80
80
  puts "trying to get: #{file}"
81
81
  file = "#{file}.mushy" unless file.downcase.end_with?('.mushy')
82
82
  data = JSON.parse File.open(file).read
83
- data['fluxs']
83
+
84
+ data['fluxs'] = standardize_these data['fluxs']
85
+ data['fluxs'] = organize_as_a_flattened_tree_based_on_parents data['fluxs']
86
+
87
+ data
88
+ rescue
89
+ { fluxs: [] }
90
+ end
91
+
92
+ def self.standardize_these fluxs
93
+ fluxs
84
94
  .reject { |x| x['parents'] }
85
95
  .each { |x| x['parents'] = [x['parent']].select { |y| y } }
86
- data['fluxs']
96
+ fluxs
87
97
  .select { |x| x['parent'] }
88
98
  .each { |x| x.delete 'parent' }
89
- data['fluxs']
99
+ fluxs
90
100
  .select { |x| x['parents'] }
91
101
  .each { |x| x['parents'] = x['parents'].select { |y| y } }
92
- data
93
- rescue
94
- { fluxs: [] }
102
+
103
+ fluxs
104
+ end
105
+
106
+ def self.organize_as_a_flattened_tree_based_on_parents fluxs
107
+ fluxs = fluxs.sort_by { |x| x['parents'].count }
108
+
109
+ new_fluxs = [fluxs.first]
110
+
111
+ loop do
112
+
113
+ next_fluxs = fluxs.select { |x| x['parents'].include? new_fluxs[-1]['id'] }
114
+
115
+ unless next_fluxs.any?
116
+ next_fluxs = [fluxs.reject { |x| new_fluxs.map { |y| y['id'] }.include?(x['id']) }[0]].select { |x| x }
117
+ end
118
+
119
+ new_fluxs = [new_fluxs, next_fluxs].flatten
120
+
121
+ break unless next_fluxs.any?
122
+
123
+ end
124
+
125
+ new_fluxs
95
126
  end
96
127
 
97
128
  def self.get_fluxs
@@ -0,0 +1,26 @@
1
+ module Mushy
2
+
3
+ class Stdout < Flux
4
+
5
+ def self.details
6
+ {
7
+ name: 'Stdout',
8
+ description: 'Standard Out',
9
+ config: {
10
+ message: {
11
+ description: 'The message to display.',
12
+ type: 'text',
13
+ value: '{{message}}',
14
+ },
15
+ },
16
+ }
17
+ end
18
+
19
+ def process event, config
20
+ puts config[:message]
21
+ nil
22
+ end
23
+
24
+ end
25
+
26
+ end
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.15.1'
7
+ s.version = '0.15.3'
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.15.1
4
+ version: 0.15.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Cauthon
@@ -210,6 +210,7 @@ files:
210
210
  - lib/mushy/fluxs/sense_hat_led_matrix.rb
211
211
  - lib/mushy/fluxs/simple_python_program.rb
212
212
  - lib/mushy/fluxs/smtp.rb
213
+ - lib/mushy/fluxs/stdout.rb
213
214
  - lib/mushy/fluxs/times.rb
214
215
  - lib/mushy/fluxs/write_file.rb
215
216
  - lib/mushy/fluxs/write_json.rb