mushy 0.14.0 → 0.15.1

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: b4c62a636d8faf6ca9d33417aedbda1eb581230b6ab315a86a4ff1658728cf8a
4
- data.tar.gz: cc21350ef0fa4b63f76f7fe164d056cb4f74130d70c1983adbee10174703c11b
3
+ metadata.gz: 4c7413fc5021f3f75a4bc76d587e8cf608cf16d39c91bab9caf3916d0eebcc97
4
+ data.tar.gz: c4480bd98782f580b3949e4f956c9aab3cce8387ccf923a284ae4b113e316bab
5
5
  SHA512:
6
- metadata.gz: 40a53dfcca4cca13cfb31bb002502952bf7b8cf5d8ec1362cf4628c245bf924c385ffd3fd332097e38aef6b2c54066afd19d4767f6c4a58916139d3786b25f41
7
- data.tar.gz: 4383e6eebc85f2395d0c2f960d37464888f7d208dd13be5dde55815e1d7977e9f79e415054cca4ae892bb68d7cfb19530a0b7062ced690ea38ae22f54263b496
6
+ metadata.gz: 0e9a557ea1b36bd47af03d8b392d2f74e7ad2eefa7c83fa3a81130e8cb5b5bda8be8750bdb649bd8b1ead65cb295ed9d45ce6fe0a89c419d3073e68d9e242b4b
7
+ data.tar.gz: bb0f6fc0ac8d21049841d27ffa991a39ad3328c16313799926d25a0b6b1646c12705bc5e4206afce2e5c12b4badb42b6ea969fe7ac20842bce1aed5bd88af986
data/bin/mushy CHANGED
@@ -44,6 +44,11 @@ get '/' do
44
44
  Mushy::Builder::Index.file
45
45
  end
46
46
 
47
+ get '/bulma.css' do
48
+ content_type :css
49
+ Mushy::Builder::Bulma.file
50
+ end
51
+
47
52
  get '/dark.css' do
48
53
  content_type :css
49
54
  Mushy::Builder::Dark.file
@@ -56,25 +56,26 @@ module Mushy
56
56
  <div class="columns">
57
57
  <div class="column is-half">
58
58
  <mip-heavy :data="setup"></mip-heavy>
59
- <mip-mediumred v-for="(data, id) in configs" v-show="setup.flux.value === id" :data="data" medium="hey"></mip-medium>
59
+ <mip-mediumred v-for="(data, id) in configs" v-show="setup.flux.value === id" :data="data" medium="hey"></mip-mediumred>
60
60
  </div>
61
61
  <div class="column is-half">
62
- <mip-mediumgreen v-for="(data, id) in configs" v-show="setup.flux.value === id" :data="data" medium="hey"></mip-medium>
62
+ <mip-mediumgreen v-for="(data, id) in configs" v-show="setup.flux.value === id" :data="data" medium="hey"></mip-mediumgreen>
63
63
 
64
64
  <div v-bind:class="setup.testResultModal">
65
65
  <div class="modal-background"></div>
66
66
  <div class="modal-card">
67
67
  <header class="modal-card-head">
68
- <p class="modal-card-title">Modal title</p>
68
+ <p class="modal-card-title">Test Results</p>
69
+ <div v-if="results.errorMessage"></div>
70
+ <div v-else>{{results.length}} result{{results.length == 1 ? "" : "s"}}</div>
69
71
  <button class="delete" aria-label="close" v-on:click.prevent.stop="setup.testResultModal['is-active'] = false"></button>
70
72
  </header>
71
73
  <section class="modal-card-body">
72
74
  <div v-if="results.errorMessage">{{results.errorMessage}}</div>
73
- <div v-else>{{results.length}} result{{results.length == 1 ? "" : "s"}}</div>
74
75
  <mip-heavy v-for="data in results" :data="data"></mip-heavy>
75
76
  </section>
76
77
  <footer class="modal-card-foot">
77
- <button class="button is-success">GO</button>
78
+ <button class="button is-primary" v-on:click.prevent.stop="setup.testResultModal['is-active'] = false">Done</button>
78
79
  </footer>
79
80
  </div>
80
81
  </div>
@@ -398,20 +399,9 @@ module Mushy
398
399
 
399
400
  for (var key in configs)
400
401
  {
401
- configs[key].save = { type: 'button', name: 'Save Changes', foghat: 'free', color: 'is-primary', click: function(config) {
402
- saveTheFlux({ app: app, config: config });
403
- saveTheFlow({ setup: app.setup, flow: app.flow });
404
- app.setup.showFlux = false;
405
- }
406
- };
407
- configs[key].cancel = { type: 'button', name: 'Ignore Changes', foghat: 'free', color: 'is-warning', click: function() {
408
- app.setup.showFlux = false;
409
- }
410
- };
411
-
412
402
  configs[key].test_event = { type: 'json', value: '{}', default: '{}', medium: 'hey' };
413
403
 
414
- configs[key].run_test = { type: 'button', name: 'Test Run This Flux', click: function(c, hey) {
404
+ configs[key].run_test = { type: 'button', name: 'Test Run This Flux', medium: 'hey', color: 'is-link', click: function(c, hey) {
415
405
  var previousName = hey.run_test.name;
416
406
  Vue.set(hey.run_test, 'name', 'Loading');
417
407
  app.results = [];
@@ -420,7 +410,7 @@ module Mushy
420
410
  the_setup.event = c.test_event;
421
411
  axios.post('/run', { config: c, setup: the_setup })
422
412
  .then(function(r){
423
- app.setup.testResultModal["is-active"] = true;
413
+ Vue.set(app.setup.testResultModal, 'is-active', true);
424
414
  var index = 1;
425
415
  for (var key in r.data.result)
426
416
  {
@@ -436,6 +426,18 @@ module Mushy
436
426
  Vue.set(hey.run_test, 'name', previousName);
437
427
  });
438
428
  } };
429
+
430
+ configs[key].save = { type: 'button', name: 'Save Changes', foghat: 'free', medium: 'hey', color: 'is-primary', click: function(config) {
431
+ saveTheFlux({ app: app, config: config });
432
+ saveTheFlow({ setup: app.setup, flow: app.flow });
433
+ app.setup.showFlux = false;
434
+ }
435
+ };
436
+ configs[key].cancel = { type: 'button', name: 'Ignore Changes', foghat: 'free', medium: 'hey', color: 'is-warning', click: function() {
437
+ app.setup.showFlux = false;
438
+ }
439
+ };
440
+
439
441
  }
440
442
 
441
443
  var loadThisFlux = function(args)
@@ -21,13 +21,27 @@ module Mushy
21
21
  type: 'keyvalue',
22
22
  value: {},
23
23
  },
24
+ contains: {
25
+ description: 'Provide key/value pairs that must be contained.',
26
+ shrink: true,
27
+ label: 'Contains',
28
+ type: 'keyvalue',
29
+ value: {},
30
+ },
31
+ notcontains: {
32
+ description: 'Provide key/value pairs that must NOT be contained.',
33
+ shrink: true,
34
+ label: 'Not Contains',
35
+ type: 'keyvalue',
36
+ value: {},
37
+ },
24
38
  },
25
39
  }
26
40
  end
27
41
 
28
42
  def process event, config
29
43
 
30
- differences = [:equal, :notequal]
44
+ differences = [:equal, :notequal, :contains, :notcontains]
31
45
  .select { |x| config[x].is_a? Hash }
32
46
  .map { |x| config[x].map { |k, v| { m: x, k: k, v1: v } } }
33
47
  .flatten
@@ -42,7 +56,7 @@ module Mushy
42
56
  def equal a, b
43
57
  [a, b]
44
58
  .map { |x| numeric?(x) ? x.to_f : x }
45
- .map { |x| x.to_s.strip.downcase }
59
+ .map { |x| nice_string x }
46
60
  .group_by { |x| x }
47
61
  .count == 1
48
62
  end
@@ -51,10 +65,23 @@ module Mushy
51
65
  equal(a, b) == false
52
66
  end
53
67
 
68
+ def contains a, b
69
+ return false unless b
70
+ nice_string(b).include? a.downcase
71
+ end
72
+
73
+ def notcontains a, b
74
+ contains(a, b) == false
75
+ end
76
+
54
77
  def numeric? value
55
78
  Float(value) != nil rescue false
56
79
  end
57
80
 
81
+ def nice_string value
82
+ value.to_s.strip.downcase
83
+ end
84
+
58
85
  end
59
86
 
60
87
  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.14.0'
7
+ s.version = '0.15.1'
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.14.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Cauthon