[#35688] サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ? — Onodera Takafumi <onodera-tak@...>

9 messages 2002/08/01

[#35772] Unsecure world writeable dirの警告 — "井上 浩一" <kyoui32@...>

=1B$B0f>e$G$9!#=1B(B

31 messages 2002/08/26
[#35774] Re: Unsecure world writeable dir の警告 — matz@... (Yukihiro Matsumoto) 2002/08/26

まつもと ゆきひろです

[#35775] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35776] Re: Unsecure world writeabledir の警告 — matz@... (Yukihiro Matsumoto) 2002/08/26

まつもと ゆきひろです

[#35778] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35779] Re: Unsecure world writeabledir の警告 — WATANABE Hirofumi <eban@...> 2002/08/26

わたなべです。

[#35780] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35784] Re: Unsecure world writeabledir の警告 — "U.Nakamura" <usa@...> 2002/08/26

こんにちは、なかむら(う)です。

[#35854] Re: Unsecure world writeabledir の警告 — "Inoue" <rubyist@...1.117.ne.jp> 2002/09/04

井上です。

[#35865] Re: Unsecure world writeabledir の警告 — Koji Arai <JCA02266@...> 2002/09/05

新井です。

[#35866] Re: Unsecure world writeabledir の警告 — matz@... (Yukihiro Matsumoto) 2002/09/06

まつもと ゆきひろです

[#35789] multipart な CGI を速くしたい — Takashi Kanai <kanai@...4u.or.jp>

Windows上でRubyとMySQLを使ってショッピングサイトのようなものを作って

17 messages 2002/08/28

[ruby-list:35816] [ANN] irbsh-0.8.0

From: rubikitch <rubikitch@...>
Date: 2002-08-29 09:40:42 UTC
List: ruby-list #35816
るびきちです。

irbsh 0.8.0をリリースしました。
4ヶ月以上間を開けてしまいました(^^;

http://www.ruby-lang.org/~rubikitch/computer/irbsh/

新機能は「評価リスト」です!
評価リストによって、irbshをスクリプト開発支援にも使えるようになりました。
以下ドキュメントからの抜粋です。


== 評価リスト
Ver0.8.0からの新機能として「評価リスト」が加わった。
評価リストとは、評価したい式をあらかじめ登録しておき、ワンタッチで実行できるようにするためのものである。
何度も評価したい場合でも同じ式を何度も入力する必要がなくなる。

この機能がもっとも威力を発揮するとき、それはメソッドの動作を試行錯誤するときだ。
というわけで、評価リストはスクリプトと連動するように作られている。

評価リストの立ち上げ方は「C-c M-e」、実行は「C-c C-z」だ。

=== *ruby scratch*バッファ
irbshバッファにて「C-c M-e」を押すと画面が3分割される。
上に*ruby scratch*バッファ、下にirbshバッファと評価リストバッファとなる。
評価リストバッファのウィンドウが選択されるようになる。

*ruby scratch*バッファはruby-modeで任意のRubyスクリプトを書くことができる。
また、評価リストバッファには評価したい式を続けて書くようになっている。
評価リストバッファの内容はirbで1文1文解釈されるので、複数個書いても全然平気だ。

評価リストに式を書いたあとは「C-c C-z」を押す!
この「C-c C-z」はirbshバッファでも評価リストバッファでも*ruby scratch*バッファでも、どのバッファにいてても有効だ。
*ruby scratch*バッファの内容がloadされ、その直後に評価リストが評価されるようになる。

例を示そう。
*ruby scratch*バッファに

  def f(x)
    x ** 2
  end

と書き、評価リストに
  f(0)
  f(1)
  f(2)
  f(3)
と書いたとき、irbshには次のように出力される。
  irbsh[27@16:03](main):085:0> 
  EvalList(main):086:0> f(0)
  0
  EvalList(main):087:0> f(1)
  1
  EvalList(main):088:0> f(2)
  4
  EvalList(main):089:0> f(3)
  9
  EvalList(main):090:0> nil
最後のnilはゴミなので気にしなくてよい。

スクリプトを変更したときでも一発で評価リストの内容を評価してくれる。
ここでf(x)の内容を次のように変更しよう。
  def f(x)
    x ** 2
  end
そして、「C-c C-z」を押す!
  irbsh[27@16:36](main):090:0> 
  EvalList(main):091:0> f(0)
  0
  EvalList(main):092:0> f(1)
  1
  EvalList(main):093:0> f(2)
  8
  EvalList(main):094:0> f(3)
  27
  EvalList(main):095:0> nil
たったこれだけで変更後のスクリプトを試すことができる!
わざわざセーブしたりするような手間が省けるのでとても便利だ、是非とも活用しよう。

=== 任意のruby-modeのバッファでもok
さきほど *ruby scratch* バッファでの例を示したが、実は任意のruby-modeのバッファでも可能だ。
ruby-modeのバッファ上で「C-c M-e」を押してみよう。
画面が3分割されてirbshバッファ、評価リストバッファが現れる。

以後、*ruby scratch*バッファも含め、ruby-modeなバッファを「スクリプトバッファ」と呼ぶことにする。

たとえば、以下のスクリプトtest.rbがあったとする。
  #!/usr/bin/env ruby
  def f(x)
    x ** 2
  end
  
  if __FILE__ == $0
    p f(10)
  end
そこで前の例と同じように評価リストに
  f(0)
  f(1)
  f(2)
  f(3)
と書いて「C-c C-z」を押すと、同じ結果がでてくる。

ここでポイントとなるのが
  if __FILE__ == $0
  end
でかこまれた部分だ。
その部分はスクリプトをコマンドとして実行するときのみ実行されるコードとなる。
よって、irbshでloadされるときには実行されないことに注意したい。

スクリプト開発でメソッドの動作を試行錯誤したいとき、メソッドを着実に作成したいときに評価リストを活用しよう!!
特に使い棄てスクリプトをさっさと作成するときに、
『このメソッドは確実に動いてほしいんだけど、かといってRubyUnit使うのは大袈裟だな』
という場合においては非常に威力を発揮する。

=== エラージャンプ機能
評価リストの大事な機能として、評価リスト実行中にエラーが発生したとき、スクリプトバッファのエラー箇所へジャンプする機能だ。
たとえば、スクリプトバッファの内容が以下のようになっているものとしよう。
わざとエラーを発生させていることに注意。
説明のために行番号をつけている。

  1: def f(x)
  2:   x ** 
  3: end
  4: 
  5: def g(x)
  6:   f(x)
  7: end

そして、評価リストを
  g 1
としよう。そこで「C-c C-z」すると当然のことながらエラーメッセージがでる。
  irbsh[29@18:09](main):014:0> 
  SyntaxError: /home/rubikitch/.irbsh_eval_tmp:3: parse error
  /home/rubikitch/.irbsh_eval_tmp:5: nested method definition
  def g(x)
        ^
  /home/rubikitch/.irbsh_eval_tmp:7: parse error
  	from /home/rubikitch/src/irbsh/irbsh-lib.rb:418:in `load'
  	from /home/rubikitch/src/irbsh/irbsh-lib.rb:418:in `irbsh_load_script_and_eval_eval_list'
  	from (irbsh):14

/home/rubikitch/.irbsh_eval_tmpはスクリプトバッファを一時的に保存したファイルである。
デフォルトでは ~/.irbsh_eval_tmp に保存される。

そこで、「C-c `」を押すとスクリプトバッファの3行目に移る。
もう一度押すと5行目、もう一度押すと7行目に移る。
さらにもう一度押したら何も起きない。
スクリプトバッファすなわち .irbsh_eval_tmp でのエラー行へジャンプするようになっている。

なお、「C-u 数 C-c `」を押すとその数だけジャンプするようになる。
負の数を指定すると前のエラーメッセージへ戻る。


るびきち☆
http://www.ruby-lang.org/~rubikitch/ ←Ruby大衆化計画(笑)

In This Thread

Prev Next