benchmark_driver 0.16.1 → 0.16.2

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: 2aa17cc07885ff406870c16844aa57b9230f81a1be2104627af5e21131ba9fb9
4
- data.tar.gz: 6b3d0dfcc8fe50785811a98eb1d62093a90463150aff7eb7d1773c07a9c72391
3
+ metadata.gz: d12d73c435a4bc6f93f92bfa7facf60c4b7badc985249f5ccb71b77137454106
4
+ data.tar.gz: 53d4c9ffeb1d3b682359ecf96e29e02b8013ac22e130b936910fb99fba162cc6
5
5
  SHA512:
6
- metadata.gz: dc65698d4628c758ec49a32769d9f4e86c1b3d2721777227e7bca285c32b75687e7ec05d93351c4df37ed789e1d96fb0e717fe56440b972e34f03ce04341ca9b
7
- data.tar.gz: 139315d91d21b9f86a276a3257eec66bdff8f317dd358619d99a6fcdcafabbe9e1fb9a9837b4607f97dbcc2df911b0d11ac128d228c10c644d7336cecbf396e8
6
+ metadata.gz: 2075268423fa15c86e3dcf70c5378cc70bc5a9bc2b245515dc098f009f770c832cd5a6148c7a9c1e77ab2c7eed5e9e014476cdc66a83e8ec71835ed6a52a05a8
7
+ data.tar.gz: 07f0c6f4f205fb4179e4bc44ce38937cd51a455a9a93b64a29a61597f5a9286aadb731b4a825ea7d6a0199c7677adad1e866e6f464cf23a34b1bb6583af0ee67
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # v0.16.2
2
+
3
+ - Add --chruby option to use a Ruby managed by chruby
4
+
1
5
  # v0.16.1
2
6
 
3
7
  - Add --output-humanize option to --output=simple
data/exe/benchmark-driver CHANGED
@@ -48,6 +48,11 @@ config = BenchmarkDriver::Config.new.tap do |c|
48
48
  executables << BenchmarkDriver::Rbenv.parse_spec(version)
49
49
  end
50
50
  end if system("which rbenv > #{File::NULL} 2>&1")
51
+ o.on('--chruby VERSIONS', String, 'Ruby executables in chruby (x.x.x arg1;y.y.y arg2;...)') do |r|
52
+ r.split(';').each do |version|
53
+ executables << BenchmarkDriver::Chruby.parse_spec(version)
54
+ end
55
+ end if Dir.exist?('/opt/rubies') || Dir.exist?("#{ENV['HOME']}/.rubies")
51
56
  o.on('--rvm VERSIONS', String, 'Ruby executables in rvm (x.x.x arg1;y.y.y arg2;...)') do |r|
52
57
  r.split(';').each do |version|
53
58
  executables << BenchmarkDriver::Rvm.parse_spec(version)
@@ -0,0 +1,27 @@
1
+ require 'shellwords'
2
+
3
+ module BenchmarkDriver
4
+ module Chruby
5
+ # @param [String] version
6
+ def self.ruby_path(version)
7
+ prefix = (Dir.glob('/opt/rubies/*') + Dir.glob("#{ENV['HOME']}/.rubies/*")).find do |dir|
8
+ File.basename(dir) == version
9
+ end
10
+ unless prefix
11
+ abort "Failed to find '#{version}' in /opt/rubies or ~/.rubies"
12
+ end
13
+ "#{prefix}/bin/ruby"
14
+ end
15
+
16
+ # @param [String] full_spec - "2.5.0", "2.5.0 --jit", "JIT::2.5.0 --jit", etc.
17
+ def self.parse_spec(full_spec)
18
+ name, spec = full_spec.split('::', 2)
19
+ spec ||= name # if `::` is not given, use the whole string as spec
20
+ version, *args = spec.shellsplit
21
+ BenchmarkDriver::Config::Executable.new(
22
+ name: name,
23
+ command: [BenchmarkDriver::Chruby.ruby_path(version), *args],
24
+ )
25
+ end
26
+ end
27
+ end
@@ -1,3 +1,3 @@
1
1
  module BenchmarkDriver
2
- VERSION = '0.16.1'
2
+ VERSION = '0.16.2'
3
3
  end
@@ -3,6 +3,7 @@ require 'benchmark_driver/config'
3
3
  require 'benchmark_driver/job_parser'
4
4
  require 'benchmark_driver/output'
5
5
  require 'benchmark_driver/rbenv'
6
+ require 'benchmark_driver/chruby'
6
7
  require 'benchmark_driver/rvm'
7
8
  require 'benchmark_driver/repeater'
8
9
  require 'benchmark_driver/ridkuse'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benchmark_driver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.1
4
+ version: 0.16.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-11 00:00:00.000000000 Z
11
+ date: 2022-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,6 +100,7 @@ files:
100
100
  - images/optcarrot.png
101
101
  - lib/benchmark_driver.rb
102
102
  - lib/benchmark_driver/bulk_output.rb
103
+ - lib/benchmark_driver/chruby.rb
103
104
  - lib/benchmark_driver/config.rb
104
105
  - lib/benchmark_driver/default_job.rb
105
106
  - lib/benchmark_driver/default_job_parser.rb