winr 1.0.5 → 1.1.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.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. data/bin/winr +18 -8
  3. data/bin/winr-scan.rb +24 -0
  4. data/bin/winr.yaml +10 -0
  5. data/winr.gemspec +1 -1
  6. metadata +5 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba8bbf65060f86c1c4e4c4b5ed6949292cf8668cb799f53552c139a9ccc58f7a
4
- data.tar.gz: 7609cc91cac4a78f8f7d6746d666ba711739773e75c61640e302ad76bd114d8b
3
+ metadata.gz: 82fb01b69c84385579f3004548ec2f191b144da19bf4e357b1dc585b83015a17
4
+ data.tar.gz: d640496674a3504eee59be7b1fbb84de642d5e91ca5a2b469a8821d947219067
5
5
  SHA512:
6
- metadata.gz: 5c3d5611e76d98e022306023455b704d7d9e06e725eeac96fa779ec7b7ba3554a8684ee6f8ff7a763175bb8f172928302693dbd8ce7ca5caf8c06d120005da29
7
- data.tar.gz: c8332f1ca9f8dd3d5e400098644be5c3188ffe0b8ec732f27b5b7c1677d50989a90aff561d4d6dc920aab4e517be4c47afab441c3e52a495698dc3062a004427
6
+ metadata.gz: 4acf7eb25952a98e41892ee2ee336de39d207b02e483f8b4ac7fa268fa2c6de50ea13b1e8aec50ae871e10b718d16cb9d0b9f3485a4ea84f03fee285549be671
7
+ data.tar.gz: 43806ccb95fd0f33f4cfd91bb2b18bd89ad7d62c133a606edff7df68a56341a30e5ea8c4fabd04b9d54fc6f8328f2bada26289f755a16ab1440d3f5441def126
data/bin/winr CHANGED
@@ -20,6 +20,7 @@ trap("INT") { abort "\n" }
20
20
  require "erb"
21
21
  require "optparse"
22
22
  require "shellwords"
23
+ require "yaml"
23
24
  require "tempfile"
24
25
 
25
26
  OptionParser.new.instance_eval do
@@ -76,7 +77,7 @@ module Ansi
76
77
  ansi
77
78
  end
78
79
  def ansi (*list); list.map {|code| "\e[#{$ansi[code.to_s] || 0}m"}.join + self; end
79
- def ansi!(*list); ansi(*list, :reset); end
80
+ def ansi!(*list); ansi(*list) + "\e[0m"; end
80
81
  end
81
82
  end
82
83
 
@@ -225,15 +226,24 @@ end
225
226
 
226
227
  # ==[ Workflow ]==
227
228
 
228
- # read the winr script
229
- winr = ARGV.first or abort "missing winr script"
229
+ # compile the template
230
230
  tmpl = ERB.new(template)
231
231
 
232
- # grok the config
233
- $config = eval(File.read(winr))
234
- es = $config.environments || [{}]
235
- cs = $config.contexts || [{}]
236
- ts = $config.tasks || [{}]
232
+ # read the winr script
233
+ winr = ARGV.first or abort "missing winr script"
234
+ case File.extname(winr)
235
+ when ".yaml"
236
+ $config = YAML.load(File.read(winr))
237
+ es = [ {} ]
238
+ cs = [ begin: $config["begin"] ]
239
+ ts = $config["tasks"].map {|k,v| { name: k, script: v } }
240
+ when ".rb"
241
+ $config = eval(File.read(winr))
242
+ es = $config.environments || [{}]
243
+ cs = $config.contexts || [{}]
244
+ ts = $config.tasks || [{}]
245
+ else abort "unknown winr script format '#{winr}'"
246
+ end
237
247
 
238
248
  # adjust script fields, if needed
239
249
  [*es, *cs].each do |item|
data/bin/winr-scan.rb ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ contexts: [
3
+ {
4
+ begin: <<~"|".strip
5
+ require "strscan"
6
+ scanner = StringScanner.new("test string")
7
+ |
8
+ }
9
+ ],
10
+ tasks: [
11
+ {
12
+ name: "regexp_pattern",
13
+ script: 'scanner.scan(/\w/)'
14
+ },
15
+ {
16
+ name: "regexp_literal",
17
+ script: 'scanner.scan(/test/)'
18
+ },
19
+ {
20
+ name: "string",
21
+ script: 'scanner.scan("test")'
22
+ },
23
+ ]
24
+ }
data/bin/winr.yaml ADDED
@@ -0,0 +1,10 @@
1
+ begin: |-
2
+ require "strscan"
3
+ scanner = StringScanner.new("test string")
4
+ tasks:
5
+ regexp_pattern: |
6
+ scanner.scan(/\w/)
7
+ regexp_literal: |
8
+ scanner.scan(/test/)
9
+ string: |
10
+ scanner.scan("test")
data/winr.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "winr"
5
- s.version = "1.0.5"
5
+ s.version = "1.1.0"
6
6
  s.author = "Steve Shreeve"
7
7
  s.email = "steve.shreeve@gmail.com"
8
8
  s.summary =
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: winr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Shreeve
@@ -14,6 +14,8 @@ description: A quick and lightweight benchmarking tool for Ruby
14
14
  email: steve.shreeve@gmail.com
15
15
  executables:
16
16
  - winr
17
+ - winr-scan.rb
18
+ - winr.yaml
17
19
  extensions: []
18
20
  extra_rdoc_files: []
19
21
  files:
@@ -21,6 +23,8 @@ files:
21
23
  - LICENSE
22
24
  - README.md
23
25
  - bin/winr
26
+ - bin/winr-scan.rb
27
+ - bin/winr.yaml
24
28
  - test/sum.rb
25
29
  - winr.gemspec
26
30
  homepage: https://github.com/shreeve/winr