1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

dumper.rb: stop getting --destdir option value

via current directory. It's kind of a global state and fragile to
implementation changes in other places, and how the `Dir.getwd` is set
is not obvious from just reading around `RubyVM::Dumper#initialize` if
it depends on the global state.

tool/ruby_vm/controllers/application_controller.rb: explicitly pass
destdir to RubyVM::Dumper.

tool/ruby_vm/scripts/insns2vm.rb: explicitly pass destdir parsed from
optparse.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
k0kubun 2018-01-27 01:59:08 +00:00
parent d678c274aa
commit be27efdb83
3 changed files with 10 additions and 9 deletions

View file

@ -16,9 +16,10 @@ require_relative '../models/typemap'
require_relative '../loaders/vm_opts_h' require_relative '../loaders/vm_opts_h'
class ApplicationController class ApplicationController
def generate i def generate i, destdir
path = Pathname.new i path = Pathname.new i
dumper = RubyVM::Dumper.new i dst = Pathname.new(destdir).join(i)
dumper = RubyVM::Dumper.new dst
return [path, dumper] return [path, dumper]
end end
end end

View file

@ -80,11 +80,9 @@ class RubyVM::Dumper
. join . join
end end
def initialize path def initialize dst
@erb = {} @erb = {}
@empty = new_binding @empty = new_binding
dst = Pathname.new Dir.getwd
dst += path
@file = cstr dst.realdirpath.to_path @file = cstr dst.realdirpath.to_path
end end

View file

@ -14,13 +14,14 @@ require 'optparse'
require_relative '../controllers/application_controller.rb' require_relative '../controllers/application_controller.rb'
def router argv def router argv
targets = generate_parser.parse argv options = { destdir: Dir.getwd }
targets = generate_parser(options).parse argv
return targets.map do |i| return targets.map do |i|
next ApplicationController.new.generate i next ApplicationController.new.generate i, options[:destdir]
end end
end end
def generate_parser def generate_parser(options)
OptionParser.new do |this| OptionParser.new do |this|
this.on "-I", "--srcdir=DIR", <<-'end' this.on "-I", "--srcdir=DIR", <<-'end'
Historically this option has been passed to the script. This is Historically this option has been passed to the script. This is
@ -78,7 +79,8 @@ def generate_parser
THIS IS THE ONLY OPTION THAT WORKS today. Change destination THIS IS THE ONLY OPTION THAT WORKS today. Change destination
directory from the current working directory to the given path. directory from the current working directory to the given path.
begin begin
Dir.chdir dir raise "directory was not found in '#{dir}'" unless Dir.eixst?(dir)
options[:destdir] = dir
end end
this.on "-V", "--[no-]verbose", <<-'end' this.on "-V", "--[no-]verbose", <<-'end'