mushy 0.24.0 → 0.25.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: 5e76c4fac239938383546eb9dcec5faa82b28dc94663343c3c16345ddf45ee5f
4
- data.tar.gz: d5a6e435fa286e0cba5e52bc43752c7a2723d629c15566c214dfab368de00d06
3
+ metadata.gz: de49d985993c99da7e7958e7a888c9dda279f84cea27008247bd12a18a073a64
4
+ data.tar.gz: ac8ad19c8a74e0ed6b331f130cd033eabee8b7b9d0e48366d993e215a24f8df1
5
5
  SHA512:
6
- metadata.gz: 06ed9957d991a0158ddd30b62cf5c2652ec1271f117479e0f4f240bb8b24f0d735e921b9be32f373e5d96f614e8623a1d8e924c52e919173a7e4c8da60446bac
7
- data.tar.gz: e1d42f2ed6a29433a0c802d46a840e13f5516d607436a2044c8da8265fcc465db29a8aa081c787409ab296f590f5eb045e32126e9050c8f4a08485a19408052e
6
+ metadata.gz: f00bebd0036154717b203074dc267d0129352d904e35e9bc390d676ad5e69d6c49cf793d982dc78ba45aed3842e506277d39d2a0a43ae8f226d4798c54463dff
7
+ data.tar.gz: 8542950faae9ae53f241ead12ebb2a2601155b3159a3e7188d9dbb71a4368407059daffaa4132ebfc7148e0245104281f386779ac247b5d21de634d13f726059
data/Gemfile ADDED
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
6
+
7
+ gem 'daemons', '~> 1'
8
+ gem 'faraday', '~> 1'
9
+ gem 'ferrum', '~> 0.11'
10
+ gem 'liquid', '~> 5'
11
+ gem 'listen', '~> 3.5'
12
+ gem 'minitest', '~> 5'
13
+ gem 'nokogiri', '~> 1'
14
+ gem 'pony', '~> 1.13'
15
+ gem 'sinatra', '~> 2.1'
16
+ gem 'symbolized', '~> 0.0.1'
17
+ gem 'thor', '~> 1.1'
data/Gemfile.lock ADDED
@@ -0,0 +1,107 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ mushy (0.24.0)
5
+ daemons (~> 1)
6
+ faraday (~> 1)
7
+ ferrum (~> 0.11)
8
+ liquid (~> 5)
9
+ listen (~> 3.5)
10
+ nokogiri (~> 1)
11
+ pony (~> 1.13)
12
+ sinatra (~> 2.1)
13
+ symbolized (~> 0.0.1)
14
+ thor (~> 1.1)
15
+
16
+ GEM
17
+ remote: https://rubygems.org/
18
+ specs:
19
+ addressable (2.8.0)
20
+ public_suffix (>= 2.0.2, < 5.0)
21
+ cliver (0.3.2)
22
+ concurrent-ruby (1.1.10)
23
+ daemons (1.4.1)
24
+ faraday (1.10.0)
25
+ faraday-em_http (~> 1.0)
26
+ faraday-em_synchrony (~> 1.0)
27
+ faraday-excon (~> 1.1)
28
+ faraday-httpclient (~> 1.0)
29
+ faraday-multipart (~> 1.0)
30
+ faraday-net_http (~> 1.0)
31
+ faraday-net_http_persistent (~> 1.0)
32
+ faraday-patron (~> 1.0)
33
+ faraday-rack (~> 1.0)
34
+ faraday-retry (~> 1.0)
35
+ ruby2_keywords (>= 0.0.4)
36
+ faraday-em_http (1.0.0)
37
+ faraday-em_synchrony (1.0.0)
38
+ faraday-excon (1.1.0)
39
+ faraday-httpclient (1.0.1)
40
+ faraday-multipart (1.0.4)
41
+ multipart-post (~> 2)
42
+ faraday-net_http (1.0.1)
43
+ faraday-net_http_persistent (1.2.0)
44
+ faraday-patron (1.0.0)
45
+ faraday-rack (1.0.0)
46
+ faraday-retry (1.0.3)
47
+ ferrum (0.11)
48
+ addressable (~> 2.5)
49
+ cliver (~> 0.3)
50
+ concurrent-ruby (~> 1.1)
51
+ websocket-driver (>= 0.6, < 0.8)
52
+ ffi (1.15.5)
53
+ liquid (5.4.0)
54
+ listen (3.7.1)
55
+ rb-fsevent (~> 0.10, >= 0.10.3)
56
+ rb-inotify (~> 0.9, >= 0.9.10)
57
+ mail (2.7.1)
58
+ mini_mime (>= 0.1.1)
59
+ mini_mime (1.1.2)
60
+ minitest (5.16.2)
61
+ multipart-post (2.2.3)
62
+ mustermann (2.0.2)
63
+ ruby2_keywords (~> 0.0.1)
64
+ nokogiri (1.13.8-arm64-darwin)
65
+ racc (~> 1.4)
66
+ pony (1.13.1)
67
+ mail (>= 2.0)
68
+ public_suffix (4.0.7)
69
+ racc (1.6.0)
70
+ rack (2.2.4)
71
+ rack-protection (2.2.2)
72
+ rack
73
+ rb-fsevent (0.11.1)
74
+ rb-inotify (0.10.1)
75
+ ffi (~> 1.0)
76
+ ruby2_keywords (0.0.5)
77
+ sinatra (2.2.2)
78
+ mustermann (~> 2.0)
79
+ rack (~> 2.2)
80
+ rack-protection (= 2.2.2)
81
+ tilt (~> 2.0)
82
+ symbolized (0.0.1)
83
+ thor (1.2.1)
84
+ tilt (2.0.11)
85
+ websocket-driver (0.7.5)
86
+ websocket-extensions (>= 0.1.0)
87
+ websocket-extensions (0.1.5)
88
+
89
+ PLATFORMS
90
+ arm64-darwin-21
91
+
92
+ DEPENDENCIES
93
+ daemons (~> 1)
94
+ faraday (~> 1)
95
+ ferrum (~> 0.11)
96
+ liquid (~> 5)
97
+ listen (~> 3.5)
98
+ minitest (~> 5)
99
+ mushy!
100
+ nokogiri (~> 1)
101
+ pony (~> 1.13)
102
+ sinatra (~> 2.1)
103
+ symbolized (~> 0.0.1)
104
+ thor (~> 1.1)
105
+
106
+ BUNDLED WITH
107
+ 2.3.19
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "mushy"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/exe/mushy ADDED
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'thor'
5
+ require 'mushy'
6
+
7
+ class MushyCLI < Thor
8
+ argument :file, optional: true, type: :string
9
+ argument :values, optional: true, type: :hash
10
+
11
+ desc "start FILE", "Run this workflow file."
12
+ def start
13
+ v = values || {}
14
+ Mushy::Builder::Api.start(file, v).tap do |run|
15
+ MushyCLI.set_special_values({ method: 'web', file: file, run: run }) if run.is_a?(Mushy::FireUpAWebServer)
16
+ end
17
+ end
18
+
19
+ desc "build FILE", 'Build a flow.'
20
+ def build
21
+ MushyCLI.set_special_values( { method: 'build', file: file } )
22
+ end
23
+
24
+ def self.set_special_values data
25
+ @special = data
26
+ end
27
+
28
+ def self.get_special_values
29
+ @special
30
+ end
31
+ end
32
+
33
+ MushyCLI.start(ARGV)
34
+
35
+ exit unless MushyCLI.get_special_values
36
+
37
+ require 'sinatra'
38
+ enable :run
39
+
40
+ if MushyCLI.get_special_values[:method] == 'web'
41
+ hey = lambda do |file, request, params|
42
+ end
43
+
44
+ [:get, :post, :patch, :delete].each do |method|
45
+ (1..10).map { |x| (1...x).map { |_| '*' }.join('/') }.each do |url|
46
+ self.send(method, url) do
47
+ raw = {
48
+ accept: request.accept.map(&:to_s),
49
+ body: request.body.read,
50
+ scheme: nil,
51
+ script_name: nil,
52
+ path_info: nil,
53
+ port: nil,
54
+ request_method: nil,
55
+ query_string: nil,
56
+ content_length: nil,
57
+ media_type: nil,
58
+ host: nil,
59
+ form_data?: nil,
60
+ referrer: nil,
61
+ user_agent: nil,
62
+ xhr?: nil,
63
+ url: nil,
64
+ path: nil,
65
+ ip: nil,
66
+ secure?: nil,
67
+ forwarded?: nil,
68
+ }.reduce({}) { |t, i| t[i[0]] = i[1] || request.send(i[0]).to_s; t }
69
+
70
+ values = { method: request.request_method, params: params, request: raw }
71
+ Mushy::Builder::Api.start(MushyCLI.get_special_values[:file], values)
72
+ end
73
+ end
74
+ end
75
+ elsif MushyCLI.get_special_values[:method] == 'build'
76
+ the_file = MushyCLI.get_special_values[:file]
77
+
78
+ get '/' do
79
+ Mushy::Builder::Index.file
80
+ end
81
+
82
+ get '/bulma.css' do
83
+ content_type :css
84
+ Mushy::Builder::Bulma.file
85
+ end
86
+
87
+ get '/dark.css' do
88
+ content_type :css
89
+ Mushy::Builder::Dark.file
90
+ end
91
+
92
+ get '/axios.js' do
93
+ content_type :js
94
+ Mushy::Builder::Axios.file
95
+ end
96
+
97
+ get '/vue.js' do
98
+ content_type :js
99
+ Mushy::Builder::Vue.file
100
+ end
101
+
102
+ get '/flow' do
103
+ content_type :json
104
+ Mushy::Builder::Api.get_flow(the_file).to_json
105
+ end
106
+
107
+ get '/fluxs' do
108
+ content_type :json
109
+ Mushy::Builder::Api.get_fluxs.to_json
110
+ end
111
+
112
+ post '/run' do
113
+ content_type :json
114
+
115
+ result = Mushy::Builder::Api.run request.body.read
116
+
117
+ { result: result }.to_json
118
+ end
119
+
120
+ post '/save' do
121
+ content_type :json
122
+
123
+ result = Mushy::Builder::Api.save the_file, request.body.read
124
+
125
+ { result: result }.to_json
126
+ end
127
+ end
@@ -71,6 +71,20 @@ module Mushy::Builder::Api
71
71
  exit
72
72
  end
73
73
 
74
+ web_flux = flow.fluxs.select { |x| x.is_a?(Mushy::Web) }.first
75
+ if web_flux
76
+ if event[:method]
77
+ return Mushy::Runner.new.start event, web_flux, flow
78
+ else
79
+ return Mushy::FireUpAWebServer.new.tap do |x|
80
+ x.id = SecureRandom.uuid
81
+ x.flow_id = flow.id
82
+ x.flow = flow
83
+ x.flux = web_flux
84
+ end
85
+ end
86
+ end
87
+
74
88
  cli_flux = flow.fluxs.select { |x| x.is_a?(Mushy::Cli) }.first
75
89
 
76
90
  Mushy::Runner.new.start event, cli_flux, flow
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ #
6
+ # A DELETE request.
7
+ #
8
+ class Mushy::Delete < Mushy::HttpOperation
9
+ def self.details
10
+ super.merge({
11
+ examples: {
12
+ 'Successful Call' => {
13
+ description: 'This will send a DELETE to an API endpoint.',
14
+ config: { url: 'http://localhost:3000/api/v1/db/data/v1/people/1' },
15
+ result: {
16
+ status: 200,
17
+ url: 'http://localhost:3000/api/v1/db/data/v1/people/1',
18
+ time: 0.11498799989931285,
19
+ reason_phrase: 'OK',
20
+ headers: {
21
+ 'content-type' => 'application/json; charset=utf-8',
22
+ 'content-length' => '1'
23
+ },
24
+ body: '1'
25
+ }
26
+ }
27
+ }
28
+ })
29
+ end
30
+ end
@@ -1,30 +1,32 @@
1
- require 'faraday'
2
-
3
- module Mushy
4
-
5
- class Get < Flux
6
-
7
- def process event, config
8
-
9
- faraday = Faraday.new do |connection|
10
- connection.adapter Faraday.default_adapter
11
- end
1
+ # frozen_string_literal: true
12
2
 
13
- headers = config[:headers] || {}
14
- data = {}
15
- url = config[:url]
16
-
17
- response = faraday.get config[:url], data, headers
18
-
19
- {
20
- status: response.status,
21
- url: url,
22
- reason_phrase: response.reason_phrase,
23
- headers: response.headers,
24
- body: response.body,
25
- }
26
- end
3
+ require 'faraday'
27
4
 
5
+ #
6
+ # A GET request.
7
+ #
8
+ class Mushy::Get < Mushy::HttpOperation
9
+ def self.details
10
+ super.merge({
11
+ examples: {
12
+ 'Successful Call' => {
13
+ description: "This will send a #{operation.upcase} to https://www.google.com.",
14
+ config: { url: 'https://www.google.com' },
15
+ result: {
16
+ status: 400,
17
+ url: 'https://www.google.com',
18
+ time: 0.12829399993643165,
19
+ reason_phrase: 'OK',
20
+ headers: {
21
+ 'access-control-allow-origin': '*',
22
+ 'content-type': 'application/json; charset=utf-8',
23
+ 'content-length': '193',
24
+ 'keep-alive': 'timeout=5'
25
+ },
26
+ body: '{}'
27
+ }
28
+ }
29
+ }
30
+ })
28
31
  end
29
-
30
- end
32
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ #
6
+ # A HTTP Operation request.
7
+ #
8
+ class Mushy::HttpOperation < Mushy::Flux
9
+ def self.operation
10
+ name.split('::').last.downcase
11
+ end
12
+
13
+ def operation
14
+ self.class.operation
15
+ end
16
+
17
+ def self.details
18
+ {
19
+ name: operation.capitalize,
20
+ title: "Make a #{operation.upcase} call",
21
+ fluxGroup: { name: 'Web' },
22
+ description: "Makes a #{operation} call to a URL",
23
+ config: {
24
+ url: {
25
+ description: 'The URL to visit.',
26
+ type: 'text',
27
+ value: 'https://www.google.com'
28
+ },
29
+ headers: {
30
+ description: 'Headers for the web request.',
31
+ type: 'keyvalue',
32
+ shrink: true,
33
+ value: {}
34
+ },
35
+ params: {
36
+ description: 'Parameters for the URL.',
37
+ type: 'keyvalue',
38
+ shrink: true,
39
+ value: {}
40
+ },
41
+ body: {
42
+ description: 'The body of the request.',
43
+ type: 'text',
44
+ shrink: true,
45
+ value: ''
46
+ },
47
+ },
48
+ examples: {
49
+ }
50
+ }
51
+ end
52
+
53
+ def process(_event, config) # rubocop:disable Metrics/MethodLength
54
+ args = {
55
+ params: config[:params],
56
+ headers: config[:headers]
57
+ }
58
+
59
+ faraday = Faraday.new(**args) do |connection|
60
+ connection.adapter Faraday.default_adapter
61
+ end
62
+
63
+ start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
64
+
65
+ response = faraday.send(operation.to_sym, config[:url]) do |request|
66
+ request.body = config[:body] if config[:body].to_s != ''
67
+ end
68
+
69
+ time = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
70
+
71
+ url = response.instance_variable_get(:@env).url.to_s
72
+
73
+ {
74
+ status: response.status,
75
+ url: url,
76
+ time: time,
77
+ reason_phrase: response.reason_phrase,
78
+ headers: response.headers,
79
+ body: response.body
80
+ }
81
+ end
82
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ #
6
+ # A PATCH request.
7
+ #
8
+ class Mushy::Patch < Mushy::HttpOperation
9
+ def self.details
10
+ super.merge({
11
+ examples: {
12
+ 'Successful Call' => {
13
+ description: "This will send a #{operation.upcase} to https://www.google.com.",
14
+ config: { url: 'https://www.google.com' },
15
+ result: {
16
+ status: 400,
17
+ url: 'https://www.google.com',
18
+ time: 0.12829399993643165,
19
+ reason_phrase: 'OK',
20
+ headers: {
21
+ 'access-control-allow-origin': '*',
22
+ 'content-type': 'application/json; charset=utf-8',
23
+ 'content-length': '193',
24
+ 'keep-alive': 'timeout=5'
25
+ },
26
+ body: '{}'
27
+ }
28
+ }
29
+ }
30
+ })
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ #
6
+ # A POST request.
7
+ #
8
+ class Mushy::Post < Mushy::HttpOperation
9
+ def self.details
10
+ super.merge({
11
+ examples: {
12
+ 'Successful Call' => {
13
+ description: "This will send a #{operation.upcase} to https://www.google.com.",
14
+ config: { url: 'https://www.google.com' },
15
+ result: {
16
+ status: 400,
17
+ url: 'https://www.google.com',
18
+ time: 0.12829399993643165,
19
+ reason_phrase: 'OK',
20
+ headers: {
21
+ 'access-control-allow-origin': '*',
22
+ 'content-type': 'application/json; charset=utf-8',
23
+ 'content-length': '193',
24
+ 'keep-alive': 'timeout=5'
25
+ },
26
+ body: '{}'
27
+ }
28
+ }
29
+ }
30
+ })
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ #
6
+ # A PUT request.
7
+ #
8
+ class Mushy::Put < Mushy::HttpOperation
9
+ def self.details
10
+ super.merge({
11
+ examples: {
12
+ 'Successful Call' => {
13
+ description: "This will send a #{operation.upcase} to https://www.google.com.",
14
+ config: { url: 'https://www.google.com' },
15
+ result: {
16
+ status: 400,
17
+ url: 'https://www.google.com',
18
+ time: 0.12829399993643165,
19
+ reason_phrase: 'OK',
20
+ headers: {
21
+ 'access-control-allow-origin': '*',
22
+ 'content-type': 'application/json; charset=utf-8',
23
+ 'content-length': '193',
24
+ 'keep-alive': 'timeout=5'
25
+ },
26
+ body: '{}'
27
+ }
28
+ }
29
+ }
30
+ })
31
+ end
32
+ end
@@ -20,7 +20,7 @@ module Mushy
20
20
 
21
21
  def process event, config
22
22
  puts config[:message]
23
- nil
23
+ event
24
24
  end
25
25
 
26
26
  end
@@ -0,0 +1,20 @@
1
+ class Mushy::Stop < Mushy::Flux
2
+ def self.details
3
+ {
4
+ name: 'Stop',
5
+ title: 'Stopper',
6
+ fluxGroup: { name: 'Stoppers', position: 1 },
7
+ description: 'Stop the flow',
8
+ config: {
9
+ }
10
+ }
11
+ end
12
+
13
+ def process(event, _)
14
+ event
15
+ end
16
+
17
+ def stop(event)
18
+ event
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ class Mushy::Web < Mushy::Flux
2
+ def self.details
3
+ {
4
+ name: 'Web',
5
+ title: 'Set up a web endpoint',
6
+ description: '',
7
+ fluxGroup: { name: '' },
8
+ config: {
9
+ },
10
+ examples: {
11
+ }
12
+ }
13
+ end
14
+
15
+ def process(event, _)
16
+ puts event.inspect
17
+ puts 'method!!!' if event[:method]
18
+ event
19
+ end
20
+ end
data/lib/mushy/run.rb CHANGED
@@ -1,8 +1,7 @@
1
- module Mushy
1
+ class Mushy::Run
2
+ attr_accessor(:id, :flow_id)
3
+ end
2
4
 
3
- class Run
4
- attr_accessor :id
5
- attr_accessor :flow_id
6
- end
7
-
8
- end
5
+ class Mushy::FireUpAWebServer < Mushy::Run
6
+ attr_accessor(:flow, :flux)
7
+ end
data/lib/mushy/runner.rb CHANGED
@@ -15,16 +15,28 @@ module Mushy
15
15
  events = run_event_with_flux starting_event, flux, flow
16
16
 
17
17
  while events.any?
18
- events = events.map { |e| runner.run_event_in_flow e, flow }.flatten
18
+ events = events.map do |event|
19
+ result = runner.run_event_in_flow(event, flow)
20
+
21
+ return result[0].flatten unless result[1]
22
+
23
+ result[0]
24
+ end.flatten
19
25
  end
20
26
 
21
27
  run
22
28
  end
23
29
 
24
- def run_event_in_flow event, flow
25
- flow.fluxs_for(event)
26
- .map { |s| runner.run_event_with_flux event, s, flow }
27
- .flatten
30
+ def run_event_in_flow(event, flow)
31
+ fluxes = flow.fluxs_for(event)
32
+
33
+ [fluxes.map do |flux|
34
+ events = runner.run_event_with_flux event, flux, flow
35
+
36
+ return [flux.stop(events[0]), false] if flux.respond_to?(:stop)
37
+
38
+ events
39
+ end.flatten, true]
28
40
  end
29
41
 
30
42
  def run_event_with_flux event, flux, flow
data/lib/mushy.rb CHANGED
@@ -6,6 +6,7 @@ Dir[File.dirname(__FILE__) + '/mushy/*.rb'].each { |f| require f }
6
6
  important_flux_files = [
7
7
  :bash,
8
8
  :browser,
9
+ :http_operation,
9
10
  :simple_python_program
10
11
  ].map { |x| "#{x}.rb" }
11
12
 
data/mushy.gemspec CHANGED
@@ -4,17 +4,18 @@ require 'mushy/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'mushy'
7
- s.version = '0.24.0'
7
+ s.version = '0.25.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.'
11
11
  s.authors = ['Darren Cauthon']
12
12
  s.email = 'darren@cauthon.com'
13
13
  s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
14
- s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
14
+ s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
15
15
  s.require_paths = ["lib"]
16
16
  s.homepage = 'https://cauthon.com'
17
17
  s.license = 'MIT'
18
+ s.bindir = 'exe'
18
19
 
19
20
  s.add_development_dependency 'minitest', '~> 5'
20
21
  s.add_runtime_dependency 'sinatra', '~> 2.1'
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mushy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.0
4
+ version: 0.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Cauthon
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2020-11-23 00:00:00.000000000 Z
12
12
  dependencies:
@@ -171,7 +171,10 @@ executables:
171
171
  extensions: []
172
172
  extra_rdoc_files: []
173
173
  files:
174
- - bin/mushy
174
+ - Gemfile
175
+ - Gemfile.lock
176
+ - bin/console
177
+ - exe/mushy
175
178
  - lib/mushy.rb
176
179
  - lib/mushy/builder/api.rb
177
180
  - lib/mushy/builder/axios.rb
@@ -189,6 +192,7 @@ files:
189
192
  - lib/mushy/fluxs/build_csv.rb
190
193
  - lib/mushy/fluxs/cli.rb
191
194
  - lib/mushy/fluxs/collection.rb
195
+ - lib/mushy/fluxs/delete.rb
192
196
  - lib/mushy/fluxs/document.rb
193
197
  - lib/mushy/fluxs/environment.rb
194
198
  - lib/mushy/fluxs/file_watch.rb
@@ -197,10 +201,14 @@ files:
197
201
  - lib/mushy/fluxs/get.rb
198
202
  - lib/mushy/fluxs/git_log.rb
199
203
  - lib/mushy/fluxs/global_variables.rb
204
+ - lib/mushy/fluxs/http_operation.rb
200
205
  - lib/mushy/fluxs/interval.rb
201
206
  - lib/mushy/fluxs/ls.rb
202
207
  - lib/mushy/fluxs/parse_html.rb
208
+ - lib/mushy/fluxs/patch.rb
203
209
  - lib/mushy/fluxs/pdf.rb
210
+ - lib/mushy/fluxs/post.rb
211
+ - lib/mushy/fluxs/put.rb
204
212
  - lib/mushy/fluxs/pwd.rb
205
213
  - lib/mushy/fluxs/read_csv.rb
206
214
  - lib/mushy/fluxs/read_file.rb
@@ -212,8 +220,10 @@ files:
212
220
  - lib/mushy/fluxs/simple_python_program.rb
213
221
  - lib/mushy/fluxs/smtp.rb
214
222
  - lib/mushy/fluxs/stdout.rb
223
+ - lib/mushy/fluxs/stop.rb
215
224
  - lib/mushy/fluxs/times.rb
216
225
  - lib/mushy/fluxs/twilio_message.rb
226
+ - lib/mushy/fluxs/web.rb
217
227
  - lib/mushy/fluxs/write_file.rb
218
228
  - lib/mushy/fluxs/write_json.rb
219
229
  - lib/mushy/masher.rb
@@ -242,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
242
252
  - !ruby/object:Gem::Version
243
253
  version: '0'
244
254
  requirements: []
245
- rubygems_version: 3.2.15
255
+ rubygems_version: 3.2.32
246
256
  signing_key:
247
257
  specification_version: 4
248
258
  summary: Process streams of work using common modules.
data/bin/mushy DELETED
@@ -1,87 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'thor'
4
- require 'mushy'
5
-
6
- class MushyCLI < Thor
7
- argument :file, optional: true, type: :string
8
- argument :values, optional: true, type: :hash
9
-
10
- desc "start FILE", "Run this workflow file."
11
- def start
12
- v = values || {}
13
- Mushy::Builder::Api.start file, v
14
- end
15
-
16
- desc "build FILE", 'Build a flow.'
17
- def build
18
- MushyCLI.set_special_values( { method: 'build', file: file } )
19
- end
20
-
21
- def self.set_special_values data
22
- @special = data
23
- end
24
-
25
- def self.get_special_values
26
- @special
27
- end
28
- end
29
-
30
- MushyCLI.start(ARGV)
31
-
32
- exit unless MushyCLI.get_special_values
33
-
34
- require 'sinatra'
35
- enable :run
36
-
37
- the_file = MushyCLI.get_special_values[:file]
38
-
39
- get '/' do
40
- Mushy::Builder::Index.file
41
- end
42
-
43
- get '/bulma.css' do
44
- content_type :css
45
- Mushy::Builder::Bulma.file
46
- end
47
-
48
- get '/dark.css' do
49
- content_type :css
50
- Mushy::Builder::Dark.file
51
- end
52
-
53
- get '/axios.js' do
54
- content_type :js
55
- Mushy::Builder::Axios.file
56
- end
57
-
58
- get '/vue.js' do
59
- content_type :js
60
- Mushy::Builder::Vue.file
61
- end
62
-
63
- get '/flow' do
64
- content_type :json
65
- Mushy::Builder::Api.get_flow(the_file).to_json
66
- end
67
-
68
- get '/fluxs' do
69
- content_type :json
70
- Mushy::Builder::Api.get_fluxs.to_json
71
- end
72
-
73
- post '/run' do
74
- content_type :json
75
-
76
- result = Mushy::Builder::Api.run request.body.read
77
-
78
- { result: result }.to_json
79
- end
80
-
81
- post '/save' do
82
- content_type :json
83
-
84
- result = Mushy::Builder::Api.save the_file, request.body.read
85
-
86
- { result: result }.to_json
87
- end