winr 1.0.6 → 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 +17 -7
  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: 9edbfd97d6566e4b2a73a54020d1a4ccccdcbb1dbc65f771d8c58b527868ec5e
4
- data.tar.gz: 1e5b06ca102234793875f50e37f9424ac1a977b91922e4662fb1552d90f14bb2
3
+ metadata.gz: 82fb01b69c84385579f3004548ec2f191b144da19bf4e357b1dc585b83015a17
4
+ data.tar.gz: d640496674a3504eee59be7b1fbb84de642d5e91ca5a2b469a8821d947219067
5
5
  SHA512:
6
- metadata.gz: 890807ab0362d1e7db37baa79dea67a0a502c1cdb5debf66bef70d7d8688818068603500dc23e9308f0cc931a1ccf77b7db17fce10a6893d1cd5a518596acde9
7
- data.tar.gz: d15d49fb4f467fd70345411d6a146acf55248a5698f396d05eba780f3ddf620d77a002e9690db9e4447e87c642570628ba79d4a93cc495f3283b3011ecf0e3d3
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
@@ -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.6"
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.6
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