スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ruby-gnome2で簡単なダイアログを表示する

最初に簡単なダイアログを表示して、実行するかどうか聞く
スクリプトを書いた。
で、そのダイアログ表示部分をメモしとく。

Ruby と ruby-gnome2 が必要。

YesNoDialog

require 'gtk2'
# ↑ここでエラーになる場合は sudo aptitude install ruby-gnome2

class YesNoDialog
extend Forwardable

def initialize(_title = "", _message = "")
# 各ウィジェットの生成
@lbl = Gtk::Label.new(_message)
@yes_btn = Gtk::Button.new("_Yes")
@no_btn = Gtk::Button.new("_No")

# ウィンドウの生成
@window = Gtk::Window.new
@window.signal_connect("destroy") do
Gtk.main_quit
end
@window.title = _title
@window.set_window_position(Gtk::Window::POS_CENTER)
@window.set_default_size(260, 60)

# パッキング
hbox = Gtk::HBox.new(true, 0)
hbox.pack_start(@yes_btn, true, true, 5)
hbox.pack_start(@no_btn, true, true, 5)
vbox = Gtk::VBox.new(false, 0)
vbox.pack_start(@lbl, false, false, 5)
vbox.pack_start(hbox, false, false, 5)
@window.add(vbox)
end

def_delegators :@window, :show_all, :title, :title=
def_delegator :@lbl, :text, :message
def_delegator :@lbl, :set_text, :message=

def yes_clicked
@yes_btn.signal_connect("clicked") do
yield
end
end

def no_clicked
@no_btn.signal_connect("clicked") do
yield
end
end
end

=begin
def main
dialog = YesNoDialog.new("なんかタイトル", "なんかメッセージ")
dialog.yes_clicked do
puts 'yes yes!'
end
dialog.no_clicked do
puts 'no no!'
end

dialog.show_all
Gtk.main
end

main
=end

スポンサーサイト

Ruby と SJIS

SJIS で Ruby のコードを書きたい場合、コードの中に、
申、一、正常、表・・などの漢字を使う可能性があるなら、
実行するときに、
-Ks
をつけないといけない。

-- sjis.rb --
$KCODE = "SJIS"
puts "申、一、正常、表"

というファイルの実行結果。

>ruby sjis.rb
sjis.rb:2: unterminated string meets end of file

>ruby -Ks sjis.rb
申、一、正常、表

ruby でプロセス名の一覧を得る

win32 の ruby でシステムで動いているプロセス名の一覧を得る。


require "win32ole"

# システムのプロセス名の一覧を配列で返す
def get_process_list
result = []
process_list = WIN32OLE.connect("winmgmts:").InstancesOf("Win32_process")
process_list.each do |process|
result.push process.Name
end
result
end


実行ファイル名以外も得たければ、
http://msdn.microsoft.com/en-us/library/aa394372(VS.85).aspx
を参照して適当に追加

ActiveScriptRuby で gem のバージョンを 1.3.5 に

ちょっと前、gem のバージョンを上げられなくて悩んだので記録。

1. ruby のインストール
ActiveScriptRuby 1.8.5.6
をインストール。

2. gem の更新
2段階かかるけど・・

まず、
gem update --system --source http://segment7.net/
を実行

これで
gem -v
0.9.4.7

次に、
gem update
を実行

(終わり)

これで gem が最新になった。
gem -v
1.3.5
プロフィール

ossan78

Author:ossan78

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
QRコード
QRコード
検索フォーム
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。