mushy 0.14.0 → 0.15.1

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: 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