From: Kouhei S. <ko...@co...> - 2006-07-12 01:03:52
|
須藤です. 0.15.0からGtk.initがrequire "gtk2"するだけで実行される ようになりましたが,これによって困る場合があります. # リリースされてからでごめんなさい. どういう場合に困るかというと,自分で引数を処理しているア プリケーションで困ります. 今まではこんな風にOptionParserとかで引数を処理してから Gtk.initを呼んでいたやつがあるとします. require "gtk2" opts = OptionParser.new do |opts| opts.on("-x", "test") {} ... end opts.parse!(ARGV) ... Gtk.init 今までだと,opts.parse!(ARGV)で処理されたARGVをGtk.init が使うようになります.0.15.0からは,opts.parse!(ARGV)す る前にGtk.initがARGVを使ってしまって,アプリケーションが 引数を処理する前に,GTK+が引数を処理してしまいます. なので,↑の例で,今までは % ruby test.rb -x とかができたのに,0.15.0からは % ruby test.rb -x ../gtk2.rb:13:in `init': -x は不明なオプションです (RuntimeError) といわれるようになってしまいます. |
From: Masao M. <mu...@hi...> - 2006-07-12 16:04:16
|
むとうです。 On Wed, 12 Jul 2006 10:03:50 +0900 "Kouhei Sutou" <ko...@co...> wrote: > 須藤です. > > 0.15.0からGtk.initがrequire "gtk2"するだけで実行される > ようになりましたが,これによって困る場合があります. > # リリースされてからでごめんなさい. > > どういう場合に困るかというと,自分で引数を処理しているア > プリケーションで困ります. > > 今まではこんな風にOptionParserとかで引数を処理してから > Gtk.initを呼んでいたやつがあるとします. > > require "gtk2" > opts = OptionParser.new do |opts| > opts.on("-x", "test") {} > ... > end > opts.parse!(ARGV) > ... > Gtk.init > > 今までだと,opts.parse!(ARGV)で処理されたARGVをGtk.init > が使うようになります.0.15.0からは,opts.parse!(ARGV)す > る前にGtk.initがARGVを使ってしまって,アプリケーションが > 引数を処理する前に,GTK+が引数を処理してしまいます. > > なので,↑の例で,今までは > > % ruby test.rb -x > > とかができたのに,0.15.0からは > > % ruby test.rb -x > ../gtk2.rb:13:in `init': -x は不明なオプションです (RuntimeError) > > といわれるようになってしまいます. なるほど。こんな伏兵が・・・。 申し訳ないのですが、このケースはアプリ側で対応してくださいませ。 案1) require 'gtk2'の代わりに require 'gtk2/base'とする。 begin require 'gtk2/base' rescue LoadError require 'gtk2' end require 'optparse' opts = OptionParser.new do |opts| opts.on("-x", "test") {} end opts.parse!(ARGV) Gtk.init 案2) optparseした後にrequire 'gtk2'を呼び出す。 require 'optparse' opts = OptionParser.new do |opts| opts.on("-x", "test") {} end opts.parse!(ARGV) require "gtk2" Gtk.init 他に良いアイデアがあればコメントください。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-07-16 02:21:06
|
むとうです。 まず第一に、Gtk.initをアプリ側から呼び出さないようにした、 という仕様変更を元に戻すというのはありえないというか最終手段 です。 ですので、まずは、現状の仕組でどうにか対応できないか考えましょう。 実は、今回の修正はgtk2/base.rb化というよりもGtk.init自身 の修正に根があるように思います。 #gtk_init_checkをgtk_init_with_argsを使うようにした もし、Gtk.initをgtk2.rbから取り除いたとしても、パラメータを 渡すとエラーが出てしまう、という挙動があるため、多くの場合 なので、これを元に戻せば良いのではないかと思います。 要は、enの方でのGuillaumeのパッチです。 これでどうでしょうか? On Thu, 13 Jul 2006 11:25:33 +0900 "Kouhei Sutou" <ko...@co...> wrote: > 須藤です. > > 06/07/13 に Masao Mutoh<mu...@hi...> さんは書きました: > > > > 0.15.0からGtk.initがrequire "gtk2"するだけで実行される > > > ようになりましたが,これによって困る場合があります. > > > > 申し訳ないのですが、このケースはアプリ側で対応してくださいませ。 > > これだと,「普通(*)」に作ったアプリケーションはほとんど変更しなけ > ればいけなくなりますよね.そのような大きな変更が0.15.0というバー > ジョンで行われるのはあまりよろしくないと思います. > > ということで,require "gtk2"でGtk.initが呼ばれるようにする変更は > もっと後のバージョン(0.20.0とかなんか区切りになりそうなバージョン) > でやって欲しいです. > > -- > (*) 「普通」のアプリケーションは,必要なライブラリをrequireしてから > オプションをパースして,メインの処理に入るように書くと思っています. > > require "aaa" > require "bbb" > ... > require "zzz" > > opt = ... > opt.parse!(ARGV) > > ... # メインの処理 > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-07-16 02:34:08
|
むとうです。 #なんだか中途半端に送ってしまいました。 On Sun, 16 Jul 2006 11:20:55 +0900 Masao Mutoh <mu...@hi...> wrote: > むとうです。 > > まず第一に、Gtk.initをアプリ側から呼び出さないようにした、 > という仕様変更を元に戻すというのはありえないというか最終手段 > です。 > > ですので、まずは、現状の仕組でどうにか対応できないか考えましょう。 > > 実は、今回の修正はgtk2/base.rb化というよりもGtk.init自身 > の修正に根があるように思います。 > #gtk_init_checkをgtk_init_with_argsを使うようにした > もし、Gtk.initをgtk2.rbから取り除いたとしても、パラメータを > 渡すとエラーが出てしまう、という挙動があるため、多くの場合 多くの場合、Gtk.initを例外処理で囲む必要が出てしまいます。 > なので、これを元に戻せば良いのではないかと思います。 > 要は、enの方でのGuillaumeのパッチです。 > > これでどうでしょうか? > > > On Thu, 13 Jul 2006 11:25:33 +0900 > "Kouhei Sutou" <ko...@co...> wrote: > > > 須藤です. > > > > 06/07/13 に Masao Mutoh<mu...@hi...> さんは書きました: > > > > > > 0.15.0からGtk.initがrequire "gtk2"するだけで実行される > > > > ようになりましたが,これによって困る場合があります. > > > > > > 申し訳ないのですが、このケースはアプリ側で対応してくださいませ。 > > > > これだと,「普通(*)」に作ったアプリケーションはほとんど変更しなけ > > ればいけなくなりますよね.そのような大きな変更が0.15.0というバー > > ジョンで行われるのはあまりよろしくないと思います. > > > > ということで,require "gtk2"でGtk.initが呼ばれるようにする変更は > > もっと後のバージョン(0.20.0とかなんか区切りになりそうなバージョン) > > でやって欲しいです. > > > > -- > > (*) 「普通」のアプリケーションは,必要なライブラリをrequireしてから > > オプションをパースして,メインの処理に入るように書くと思っています. > > > > require "aaa" > > require "bbb" > > ... > > require "zzz" > > > > opt = ... > > opt.parse!(ARGV) > > > > ... # メインの処理 > > > > > > ------------------------------------------------------------------------- > > Using Tomcat but need to do more? Need to support web services, security? > > Get stuff done quickly with pre-integrated technology to make your job easier > > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > _______________________________________________ > > ruby-gnome2-devel-ja mailing list > > rub...@li... > > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > > > > > -- > -- > .:% Masao Mutoh<mu...@hi...> > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > -- -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2006-07-17 12:53:37
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Gtk.initが自動で実行されると困る" on Sun, 16 Jul 2006 11:20:55 +0900, Masao Mutoh <mu...@hi...> wrote: > まず第一に、Gtk.initをアプリ側から呼び出さないようにした、 > という仕様変更を元に戻すというのはありえないというか最終手段 > です。 わかりました. > 実は、今回の修正はgtk2/base.rb化というよりもGtk.init自身 > の修正に根があるように思います。 > #gtk_init_checkをgtk_init_with_argsを使うようにした > もし、Gtk.initをgtk2.rbから取り除いたとしても、パラメータを > 渡すとエラーが出てしまう、という挙動があるため、多くの場合 > > なので、これを元に戻せば良いのではないかと思います。 > 要は、enの方でのGuillaumeのパッチです。 > > これでどうでしょうか? はい,これでよいと思います. |
From: Kouhei S. <ko...@co...> - 2006-07-13 02:25:35
|
須藤です. 06/07/13 に Masao Mutoh<mu...@hi...> さんは書きました: > > 0.15.0からGtk.initがrequire "gtk2"するだけで実行される > > ようになりましたが,これによって困る場合があります. > > 申し訳ないのですが、このケースはアプリ側で対応してくださいませ。 これだと,「普通(*)」に作ったアプリケーションはほとんど変更しなけ ればいけなくなりますよね.そのような大きな変更が0.15.0というバー ジョンで行われるのはあまりよろしくないと思います. ということで,require "gtk2"でGtk.initが呼ばれるようにする変更は もっと後のバージョン(0.20.0とかなんか区切りになりそうなバージョン) でやって欲しいです. -- (*) 「普通」のアプリケーションは,必要なライブラリをrequireしてから オプションをパースして,メインの処理に入るように書くと思っています. require "aaa" require "bbb" ... require "zzz" opt = ... opt.parse!(ARGV) ... # メインの処理 |