Forum: Ruby-dev [ruby-trunk - Bug #6455][Open] IRB.conf[:RC NAME GENERATOR] と IRB.conf[:SAVE HISTORY] を同時に設定すると irb

Posted by sho-h (Sho Hashimoto) (Guest)
on 2012-05-19 03:24
(Received via mailing list)
Issue #6455 has been reported by sho-h (Sho Hashimoto).

----------------------------------------
Bug #6455: IRB.conf[:RC_NAME_GENERATOR] と IRB.conf[:SAVE_HISTORY] 
を同時に設定すると irb が起動できないのを修正する
https://bugs.ruby-lang.org/issues/6455

Author: sho-h (Sho Hashimoto)
Status: Open
Priority: Normal
Assignee: keiju (Keiju Ishitsuka)
Category: lib
Target version: 2.0.0
ruby -v: ruby 1.8.7 (2010-08-16 patchlevel 302) [i486-linux]


るりまを書いている最中に気づいたのですが、IRB.conf[:RC_NAME_GENERATOR] と 
IRB.conf[:SAVE_HISTORY] を同時に設定すると irb の起動時にヒストリファイルの読み込みで例外が発生して irb 
が起動できません。

  $ irb
  /usr/lib/ruby/1.8/irb/ext/save-history.rb:77:in `exist?': can't 
convert nil into String (TypeError)
          from /usr/lib/ruby/1.8/irb/ext/save-history.rb:77:in 
`load_history'
          ...
  $

IRB.rc_file("_history") が nil を返すようになるためではないかと思います。

  $ irb -f
  irb(main):001:0> IRB.conf[:RC_NAME_GENERATOR] = Proc.new { |rc|
  irb(main):002:1*   ["/tmp/myirb.#{rc}"].detect { |path| 
File.exists?(path) }
  irb(main):003:1> }
  irb(main):004:0> IRB.rc_file("_history")
  => nil

1.8.7 で試しましたが、trunk でも同様ではないかと思います。

lib/irb/ext/save-history.rb で IRB.rc_file("_history") が nil 
であればデフォルト値を使うなどされた方がいいかもしれません。
Posted by mame (Yusuke Endoh) (Guest)
on 2012-05-21 12:24
(Received via mailing list)
Issue #6455 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned


----------------------------------------
Bug #6455: IRB.conf[:RC_NAME_GENERATOR] と IRB.conf[:SAVE_HISTORY] 
を同時に設定すると irb が起動できないのを修正する
https://bugs.ruby-lang.org/issues/6455#change-26737

Author: sho-h (Sho Hashimoto)
Status: Assigned
Priority: Normal
Assignee: keiju (Keiju Ishitsuka)
Category: lib
Target version: 2.0.0
ruby -v: ruby 1.8.7 (2010-08-16 patchlevel 302) [i486-linux]


るりまを書いている最中に気づいたのですが、IRB.conf[:RC_NAME_GENERATOR] と 
IRB.conf[:SAVE_HISTORY] を同時に設定すると irb の起動時にヒストリファイルの読み込みで例外が発生して irb 
が起動できません。

  $ irb
  /usr/lib/ruby/1.8/irb/ext/save-history.rb:77:in `exist?': can't 
convert nil into String (TypeError)
          from /usr/lib/ruby/1.8/irb/ext/save-history.rb:77:in 
`load_history'
          ...
  $

IRB.rc_file("_history") が nil を返すようになるためではないかと思います。

  $ irb -f
  irb(main):001:0> IRB.conf[:RC_NAME_GENERATOR] = Proc.new { |rc|
  irb(main):002:1*   ["/tmp/myirb.#{rc}"].detect { |path| 
File.exists?(path) }
  irb(main):003:1> }
  irb(main):004:0> IRB.rc_file("_history")
  => nil

1.8.7 で試しましたが、trunk でも同様ではないかと思います。

lib/irb/ext/save-history.rb で IRB.rc_file("_history") が nil 
であればデフォルト値を使うなどされた方がいいかもしれません。
Posted by keiju (Keiju Ishitsuka) (Guest)
on 2012-12-25 13:08
(Received via mailing list)
Issue #6455 has been updated by keiju (Keiju Ishitsuka).


sho-h (Sho Hashimoto) wrote:
>   $ irb
>   /usr/lib/ruby/1.8/irb/ext/save-history.rb:77:in `exist?': can't convert nil 
into String (TypeError)
>           from /usr/lib/ruby/1.8/irb/ext/save-history.rb:77:in `load_history'
>
> IRB.rc_file("_history") が nil を返すようになるためではないかと思います。

この件ですが、RC_NAME_GENARATOR を間違って定義している(正しいファイル名を生成しないでnilを返す)ために発生しています。
文字列を返さなければ、例外を発生することにしました。
----------------------------------------
Bug #6455: IRB.conf[:RC_NAME_GENERATOR] と IRB.conf[:SAVE_HISTORY] 
を同時に設定すると irb が起動できないのを修正する
https://bugs.ruby-lang.org/issues/6455#change-35062

Author: sho-h (Sho Hashimoto)
Status: Assigned
Priority: Normal
Assignee: keiju (Keiju Ishitsuka)
Category: lib
Target version: 2.0.0
ruby -v: ruby 1.8.7 (2010-08-16 patchlevel 302) [i486-linux]


るりまを書いている最中に気づいたのですが、IRB.conf[:RC_NAME_GENERATOR] と 
IRB.conf[:SAVE_HISTORY] を同時に設定すると irb の起動時にヒストリファイルの読み込みで例外が発生して irb 
が起動できません。

  $ irb
  /usr/lib/ruby/1.8/irb/ext/save-history.rb:77:in `exist?': can't 
convert nil into String (TypeError)
          from /usr/lib/ruby/1.8/irb/ext/save-history.rb:77:in 
`load_history'
          ...
  $

IRB.rc_file("_history") が nil を返すようになるためではないかと思います。

  $ irb -f
  irb(main):001:0> IRB.conf[:RC_NAME_GENERATOR] = Proc.new { |rc|
  irb(main):002:1*   ["/tmp/myirb.#{rc}"].detect { |path| 
File.exists?(path) }
  irb(main):003:1> }
  irb(main):004:0> IRB.rc_file("_history")
  => nil

1.8.7 で試しましたが、trunk でも同様ではないかと思います。

lib/irb/ext/save-history.rb で IRB.rc_file("_history") が nil 
であればデフォルト値を使うなどされた方がいいかもしれません。
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.