mushy 0.10.0 → 0.11.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed2624dde9bf79c8dd70a430474613a591b647ba78c67cb04078da5ddfb64940
4
- data.tar.gz: 42ea21e12bdea8fc767aee5e30c4d9c32a82ab83c786ea7bb101fcc3f7b1d154
3
+ metadata.gz: a7e8090ce2ca66c9aff11ada4b9beee80bb7866dcd27d51b618c1cfa699b2d4f
4
+ data.tar.gz: b9849eca063fa80c99e465c498994c04796245e01c79762338616563e484c312
5
5
  SHA512:
6
- metadata.gz: b904acfb460d9e6e5515274d7b435700b7e26903dbcdcc69471f0bf521f50c67dd6a0fd4857e95de3836d1cbf40c7facc4968ead6cec4d70b8e47a4ac77d0cb7
7
- data.tar.gz: 4b9ceca6ce17b561ec36c84ba31f9772beb0557b02b6da5f703b2699622c3de2b6a272c2a4627bee1a653283c988db4be4dc92a58fed181f6baf51c26cbdc7b0
6
+ metadata.gz: b632030b6ce53a9364e6861b466e6574cd9f2e5836964db87a4124109bb4e0c23d801c448b40b1270e367cc2ab7eecb04b4ef94fa86ae844e1626f2a97471f52
7
+ data.tar.gz: 421e022ab044af27b72b2380be9343c22fa94c435388512712045f717af46c3ee10a2524e2784aff5bfb5c0e1bbe3a255b73a47ab38d514e17bb9307b626dad2
data/lib/mushy.rb CHANGED
@@ -3,9 +3,16 @@ require 'symbolized'
3
3
 
4
4
  Dir[File.dirname(__FILE__) + '/mushy/*.rb'].each { |f| require f }
5
5
 
6
- important_flux_files = ['bash', 'browser'].map { |x| "#{x}.rb" }
6
+ important_flux_files = [
7
+ 'bash',
8
+ 'browser',
9
+ 'simple_python_program',
10
+ ].map { |x| "#{x}.rb" }
11
+
7
12
  Dir[File.dirname(__FILE__) + '/mushy/fluxs/*.rb']
8
- .sort_by { |f| important_flux_files.any? { |x| f.end_with?(x) } ? 0 : 1 }
9
- .each { |f| require f }
13
+ .map { |x| [x, important_flux_files.find_index(x.split("\/")[-1]) || 9999999] }
14
+ .sort_by { |x| x[1] }
15
+ .map { |x| x[0] }
16
+ .each { |f| require f }
10
17
 
11
18
  Dir[File.dirname(__FILE__) + '/mushy/builder/*.rb'].each { |f| require f }
@@ -0,0 +1,56 @@
1
+ module Mushy
2
+
3
+ class SenseHatEnvironmentalSensors < SimplePythonProgram
4
+
5
+ def self.details
6
+ {
7
+ name: 'SenseHatEnvironmentalSensors',
8
+ description: 'Pull values from the Sense HAT environmental sensors.',
9
+ config: Mushy::SimplePythonProgram.default_config,
10
+ }.tap do |c|
11
+ measurements
12
+ .sort_by { |x| default_measurements.include?(x) ? 0 : 1 }
13
+ .each do |measurement|
14
+ c[:config][measurement] = {
15
+ description: "Pull #{measurement}.",
16
+ type: 'boolean',
17
+ shrink: true,
18
+ value: default_measurements.include?(measurement) ? 'true' : '',
19
+ }
20
+ end
21
+ end
22
+ end
23
+
24
+ def self.measurements
25
+ [
26
+ :humidity,
27
+ :temperature,
28
+ :temperature_from_humidity,
29
+ :temperature_from_pressure,
30
+ :pressure,
31
+ ]
32
+ end
33
+
34
+ def self.default_measurements
35
+ [:humidity, :temperature, :pressure]
36
+ end
37
+
38
+ def python_program event, config
39
+ values = self.class.measurements
40
+ .select { |x| config[x] == 'true' }
41
+ .reduce({}) { |t, i| t[i] = "get_#{i}"; t}
42
+ .map { |m| "\"#{m[0]}\": sense.#{m[1]}()" }
43
+ .join(',')
44
+
45
+ <<PYTHON
46
+ from sense_hat import SenseHat
47
+ import json
48
+ sense = SenseHat()
49
+ value = json.dumps({#{values}})
50
+ print(value)
51
+ PYTHON
52
+ end
53
+
54
+ end
55
+
56
+ end
@@ -0,0 +1,32 @@
1
+ module Mushy
2
+
3
+ class SimplePythonProgram < Bash
4
+
5
+ def self.default_config
6
+ Mushy::Bash.details[:config].tap do |config|
7
+ config.delete :command
8
+ config.delete :directory
9
+ end
10
+ end
11
+
12
+ def process event, config
13
+
14
+ lines = python_program(event, config)
15
+ .split('\n')
16
+ .map { |x| x.rstrip }
17
+ .select { |x| x && x != '' }
18
+ .map { |x| x.gsub('"', '\"') }
19
+
20
+ config[:command] = "python -c \"#{lines.join(';')}\""
21
+
22
+ result = super event, config
23
+
24
+ return nil unless result[:success]
25
+
26
+ JSON.parse result[:text]
27
+
28
+ end
29
+
30
+ end
31
+
32
+ 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.10.0'
7
+ s.version = '0.11.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.10.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Cauthon
@@ -204,6 +204,8 @@ files:
204
204
  - lib/mushy/fluxs/read_csv.rb
205
205
  - lib/mushy/fluxs/read_file.rb
206
206
  - lib/mushy/fluxs/screenshot.rb
207
+ - lib/mushy/fluxs/sense_hat_environmental_sensors.rb
208
+ - lib/mushy/fluxs/simple_python_program.rb
207
209
  - lib/mushy/fluxs/smtp.rb
208
210
  - lib/mushy/fluxs/times.rb
209
211
  - lib/mushy/fluxs/write_file.rb