cronwatch 0.6.0 → 0.6.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: ec7587a5fbce705cc56d7002fb87f2e19203e1809ae7f7cd59ecb27567bf5af3
4
- data.tar.gz: 4f32738132a32e24afba53d8c9fd6a8c5a4641aa62781eb488bd57d82602f37c
3
+ metadata.gz: 2f515d13b757f2063defbf1c390f41d8970417a02991d5f137639221daa095c9
4
+ data.tar.gz: 8843a960d7249f58200456b706ce60cc8ecd5cb7490be84639aed8ff0bf5b639
5
5
  SHA512:
6
- metadata.gz: 014e7798af599f89e95240e5be8749384055b594dae55818fee608636c6c5de40507c083c1ae9800c212d5585b0c4c30746170101f89fe20a4252181b4337061
7
- data.tar.gz: e0e6041e9daa2fb233b320c3a222b4e87916d7f9f71417690b4b24fcb6fcd5bba5de0e0cc57612bd2781fb1ffdc18ef2e4e89585173581f5b959701dab0bb74f
6
+ metadata.gz: d95b276c86d464ab53c871f1967c5880822bcf677c7a96384cf7ee42f6d02f73da7eccf244aaceff5e4bd72ee06886f1dc025fe342e239b28ae5d74c87a5caf8
7
+ data.tar.gz: 16c1ac8fcb3f1e18b1f81e7447d7a237fd80e4acc5276e06d99e55a2802b2cea3aca40372a4fd7b7679e3558072cdb31e0bfd1a6dda6aa1321ad73bd2e995247
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Cronwatch
4
4
  # Kept in step with @cronwatch/sdk.
5
- VERSION = "0.6.0"
5
+ VERSION = "0.6.1"
6
6
  end
@@ -195,6 +195,12 @@ module Cronwatch
195
195
  text(value).gsub("&", "&amp;").gsub("<", "&lt;").gsub(">", "&gt;").gsub('"', "&quot;").gsub("'", "&#39;")
196
196
  end
197
197
 
198
+ # escapeName: a job name shown as text, with a break allowed after each
199
+ # run of _ : . / - so it wraps at its separators. Never in an attribute.
200
+ def name_html(value)
201
+ h(value).gsub(%r{([_:./-]+)(?=[^_:./-])}, '\1<wbr>')
202
+ end
203
+
198
204
  # String(value), the way a template literal writes it.
199
205
  def text(value)
200
206
  case value
@@ -278,7 +284,7 @@ module Cronwatch
278
284
  home = %(<a href="#{h(base)}/">#{MARK}<span>CronWatch</span></a>)
279
285
  return %(<p class="brand">#{home}</p>) if crumb.nil?
280
286
 
281
- %(<p class="brand">#{home}<span class="slash" aria-hidden="true">/</span><span class="crumb">#{h(crumb)}</span></p>)
287
+ %(<p class="brand">#{home}<span class="slash" aria-hidden="true">/</span><span class="crumb">#{name_html(crumb)}</span></p>)
282
288
  end
283
289
 
284
290
  # The job's health, with any open condition it does not already say (over budget, slow) after it.
@@ -375,7 +381,7 @@ module Cronwatch
375
381
  end
376
382
  <<~ROW.chomp
377
383
  <tr>
378
- <td class="job"><a class="name" href="#{h(base)}/jobs/#{encode_uri_component(job.name)}">#{h(job.name)}</a>#{description}</td>
384
+ <td class="job"><a class="name" href="#{h(base)}/jobs/#{encode_uri_component(job.name)}">#{name_html(job.name)}</a>#{description}</td>
379
385
  <td class="health">#{health_state(job)}</td>
380
386
  <td class="nowrap hide-sm">#{schedule}</td>
381
387
  <td class="nowrap last">#{last_cell}</td>
@@ -510,7 +516,7 @@ module Cronwatch
510
516
  <section class="sec intro" aria-label="Job">
511
517
  <h2>Job</h2>
512
518
  <div>
513
- <h1 class="jobname">#{h(job.name)}</h1>
519
+ <h1 class="jobname">#{name_html(job.name)}</h1>
514
520
  #{truthy?(d.description) ? %(<p class="desc">#{h(d.description)}</p>) : ""}
515
521
  <p class="stateline">#{health_state(job)}#{why ? %(<span class="why">#{h(why)}</span>) : ""}</p>
516
522
  <div class="actions">
@@ -399,7 +399,7 @@ module Cronwatch
399
399
  parts = lane(input, span, now_in_lane: false, label: job.name)
400
400
  schedule = job.definition.schedule.nil? ? "no schedule" : job.definition.schedule
401
401
  [
402
- %(<li class="lane"><div class="who"><i class="sq #{state_class(job)}" aria-hidden="true"></i><a class="name" href="#{h(base)}/jobs/#{HTML.encode_uri_component(job.name)}">#{h(job.name)}</a><span class="sched">#{h(schedule)}</span></div><div class="track">#{parts.svg}#{parts.note}</div></li>),
402
+ %(<li class="lane"><div class="who"><i class="sq #{state_class(job)}" aria-hidden="true"></i><a class="name" href="#{h(base)}/jobs/#{HTML.encode_uri_component(job.name)}">#{HTML.name_html(job.name)}</a><span class="sched">#{h(schedule)}</span></div><div class="track">#{parts.svg}#{parts.note}</div></li>),
403
403
  "<li>#{h("#{job.name} (#{schedule}): #{parts.words}.")}</li>",
404
404
  ]
405
405
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cronwatch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon C. Phillips