winr 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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