[前][次][番号順一覧][スレッド一覧]

ruby-changes:49946

From: k0kubun <ko1@a...>
Date: Sat, 27 Jan 2018 10:59:13 +0900 (JST)
Subject: [ruby-changes:49946] k0kubun:r62064 (trunk): dumper.rb: stop getting --destdir option value

k0kubun	2018-01-27 10:59:08 +0900 (Sat, 27 Jan 2018)

  New Revision: 62064

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=62064

  Log:
    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.

  Modified files:
    trunk/tool/ruby_vm/controllers/application_controller.rb
    trunk/tool/ruby_vm/helpers/dumper.rb
    trunk/tool/ruby_vm/scripts/insns2vm.rb
Index: tool/ruby_vm/helpers/dumper.rb
===================================================================
--- tool/ruby_vm/helpers/dumper.rb	(revision 62063)
+++ tool/ruby_vm/helpers/dumper.rb	(revision 62064)
@@ -80,11 +80,9 @@ class RubyVM::Dumper https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/helpers/dumper.rb#L80
       . join
   end
 
-  def initialize path
+  def initialize dst
     @erb   = {}
     @empty = new_binding
-    dst    = Pathname.new Dir.getwd
-    dst   += path
     @file  = cstr dst.realdirpath.to_path
   end
 
Index: tool/ruby_vm/controllers/application_controller.rb
===================================================================
--- tool/ruby_vm/controllers/application_controller.rb	(revision 62063)
+++ tool/ruby_vm/controllers/application_controller.rb	(revision 62064)
@@ -16,9 +16,10 @@ require_relative '../models/typemap' https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/controllers/application_controller.rb#L16
 require_relative '../loaders/vm_opts_h'
 
 class ApplicationController
-  def generate i
+  def generate i, destdir
     path = Pathname.new i
-    dumper = RubyVM::Dumper.new i
+    dst = Pathname.new(destdir).join(i)
+    dumper = RubyVM::Dumper.new dst
     return [path, dumper]
   end
 end
Index: tool/ruby_vm/scripts/insns2vm.rb
===================================================================
--- tool/ruby_vm/scripts/insns2vm.rb	(revision 62063)
+++ tool/ruby_vm/scripts/insns2vm.rb	(revision 62064)
@@ -14,13 +14,14 @@ require 'optparse' https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/scripts/insns2vm.rb#L14
 require_relative '../controllers/application_controller.rb'
 
 def router argv
-  targets = generate_parser.parse argv
+  options = { destdir: Dir.getwd }
+  targets = generate_parser(options).parse argv
   return targets.map do |i|
-    next ApplicationController.new.generate i
+    next ApplicationController.new.generate i, options[:destdir]
   end
 end
 
-def generate_parser
+def generate_parser(options)
   OptionParser.new do |this|
     this.on "-I", "--srcdir=DIR", <<-'end'
       Historically this option has been passed to the script.  This is
@@ -78,7 +79,8 @@ def generate_parser https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/scripts/insns2vm.rb#L79
       THIS IS THE ONLY OPTION THAT WORKS today.  Change destination
       directory from the current working directory to the given path.
     begin
-      Dir.chdir dir
+      raise "directory was not found in '#{dir}'" unless Dir.eixst?(dir)
+      options[:destdir] = dir
     end
 
     this.on "-V", "--[no-]verbose", <<-'end'

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]