新規作成  編集  Ruby-GNOME2 Project Website  ページ一覧  検索  更新履歴  編集履歴  RSS  ログイン

ライセンス診断ツール

ライセンス診断ツール

RWikiのRuby/Tk版, nyasuさんのvruby版。せっかくなのでRuby/GTK2版を作ってみよう。

#!/usr/bin/env ruby

require "gtk2"

QTITLE = "フリーソフトウェアライセンス診断"
GONEXT = nil

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 -

文字コードのお話は日本語の扱いと国際化にて。

- むとう

更新日時:2006/07/02 14:41:44
キーワード:
参照:[Ruby-GNOME2 Tips]