[ruby-gnome2-doc-cvs] [Hiki] update - ライセンス診断ツール

Back to archive index

ruby-****@lists***** ruby-****@lists*****
2003年 7月 8日 (火) 03:07:49 JST


-------------------------
REMOTE_ADDR = 210.249.204.48
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/?%A5%E9%A5%A4%A5%BB%A5%F3%A5%B9%BF%C7%C3%C7%A5%C4%A1%BC%A5%EB
-------------------------
= ライセンス診断ツール
((<"RWikiのRuby/Tk版"|URL:http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=%A5%D5%A5%EA%A1%BC%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%E9%A5%A4%A5%BB%A5%F3%A5%B9%BF%C7%C3%C7 >)), ((<nyasuさんのvruby版|URL:http://www.osk.3web.ne.jp/~nyasu/diary/200306.html#20030613_2>))。せっかくなのでRuby/GTK2版を作ってみよう。

 #!/usr/bin/env ruby
  
 require "gtk2"
 
 QTITLE = "フリーソフトウェアライセンス診断"
 GONEXT = nil
  
 Gtk.init
 class Question < Gtk::MessageDialog
   def initialize(question, yes, no)
     super(nil, MODAL, QUESTION, BUTTONS_YES_NO, question)
     set_title(QTITLE)
     @yes, @no = yes, no
   end
   def run
     (super == RESPONSE_YES) ? @yes : @no
   end
 end
 
 QUESTIONS = [ 
   Question.new(
     "あなたのコードを商用ソフトウェアに組み込まれて販売されてもかまわないか?",
     GONEXT, "GPL"),
   Question.new(
     "あなたはストールマンのフリーソフトウェア運動に心から賛同しているか?",
     "GPL", GONEXT),
   Question.new(
     "あなたはそのソフトウェアを将来Rubyの一部として配布したいか?",
     "Rubyライセンス","BSDライセンスまたはMITライセンス" ),
 ]
  
 QUESTIONS.each do |q|
   if (lic = q.run)
     dialog = Gtk::MessageDialog.new(nil, Gtk::Dialog::MODAL,
                                     Gtk::MessageDialog::INFO,
                                     Gtk::MessageDialog::BUTTONS_OK,
                                     lic + " がおすすめ")
     dialog.set_title(QTITLE + "結果").run
     exit
   end
 end

QuestionクラスをGtk::MessageDialogのサブクラスにしてみた。

そうそう、Ruby/GTK2では文字列をUTF-8にしないといけないので、上記を保存した後、UTF-8に変換してから実行する必要があるのがちと面倒かな。
以下は上記のコードをjudge.rbとして保存した時の例。iconvを使ってる。

 iconv -f euc-jp -t utf-8 judge.rb |ruby -

文字コードのお話は((<日本語の扱いと国際化|tips_i18n>))にて。
-------------------------
= ライセンス診断ツール
((<"RWikiのRuby/Tk版"|URL:http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=%A5%D5%A5%EA%A1%BC%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%E9%A5%A4%A5%BB%A5%F3%A5%B9%BF%C7%C3%C7 >)), ((<nyasuさんのvruby版|URL:http://www.osk.3web.ne.jp/~nyasu/diary/200306.html#20030613_2>))。せっかくなのでRuby/GTK2版を作ってみよう。

 #!/usr/bin/env ruby
  
 require "gtk2"
 
 QTITLE = "フリーソフトウェアライセンス診断"
 GONEXT = nil
  
 Gtk.init
 class Question < Gtk::MessageDialog
   def initialize(question, yes, no)
     super(nil, MODAL, QUESTION, BUTTONS_YES_NO, question)
     set_title(QTITLE)
     @yes, @no = yes, no
   end
   def run
     (super == RESPONSE_YES) ? @yes : @no
   end
 end
 
 QUESTIONS = [ 
   Question.new(
     "あなたのコードを商用ソフトウェアに組み込まれて販売されてもかまわないか?",
     GONEXT, "GPL"),
   Question.new(
     "あなたはストールマンのフリーソフトウェア運動に心から賛同しているか?",
     "GPL", GONEXT),
   Question.new(
     "あなたはそのソフトウェアを将来Rubyの一部として配布したいか?",
     "Rubyライセンス","BSDライセンスまたはMITライセンス" ),
 ]
  
 QUESTIONS.each do |q|
   if (lic = q.run)
     dialog = Gtk::MessageDialog.new(nil, Gtk::Dialog::MODAL,
                                     Gtk::MessageDialog::INFO,
                                     Gtk::MessageDialog::BUTTONS_OK,
                                     lic + " がおすすめ")
     dialog.set_title(QTITLE + "結果").run
     exit
   end
 end

QuestionクラスをGtk::MessageDialogのサブクラスにしてみた。

そうそう、Ruby/GTK2では文字列をUTF-8にしないといけないので、上記を保存した後、UTF-8に変換してから実行する必要があるのがちと面倒かな。
以下は上記のコードをjudge.rbとして保存した時の例。iconvを使ってる。

 iconv -f euc-jp -t utf-8 judge.rb |ruby -

文字コードのお話は((<日本語の扱いと国際化|tips_i18n>))にて。


- ((<むとう>))




ruby-gnome2-cvs メーリングリストの案内
Back to archive index