ライブラリ
- ビルトイン (12)
モジュール
- Process (12)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) -
NEWS for Ruby 3
. 1 . 0 (4) - Rubyの起動 (12)
-
ruby 1
. 8 . 4 feature (12) -
ruby 1
. 9 feature (12) - セキュリティモデル (12)
- 多言語化 (12)
検索結果
先頭5件
-
Process
. exec(command , *args) -> () (18125.0) -
カレントプロセスを与えられた外部コマンドで置き換えます。
...部コマンドで置き換えます。
=== 引数の解釈
引数が一つだけ与えられた場合、command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直......ない場合、command は exec(2) を使用して実行されるので元の
プログラムからいくつかの環境を引き継ぎます。
@param command 実行する外部コマンド。
@param args command に渡す引数。
exec "echo *" # echoes list of files in current directo... -
ruby 1
. 8 . 4 feature (90.0) -
ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。
...ure/DL [bug]>))
* ((<ruby 1.8.4 feature/fileutils [bug]>))
* ((<ruby 1.8.4 feature/extmk, mkmf [compat]>))
* ((<ruby 1.8.4 feature/mkmf: find_executable() [compat]>))
* ((<ruby 1.8.4 feature/拡張ライブラリAPI>))
* ((<ruby 1.8.4 feature/rb_funcall2() [bug]>))
* ((<ruby 1.8.4 feature/......@ruby-lang.org>
#
# * eval.c (rb_call_super): should call method_missing if super is
# called from Kernel method.
#
# * eval.c (exec_under): frame during eval should preserve external
# information.
: super [bug]
Kernelのメソッド内でsuperを呼んだ時に、......ss
# disabled succeeding backtrack. fixed: [ruby-list:41328]
文字コードの形で正規表現の文字クラスを指定すると、それ以降の
バックトラックが効かなくなるバグの修正。((<ruby-list:41328>))
p(/^[a-z]+x[0-9]+$/ =~ "hogex111")... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (84.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...れ本体が必ず最初に実行されるという振
るまい(C の do ... while 構文と同じ)をしていませんでした。
((<ruby-list:34618>))
: ((<"rescue/ensure on class/module"|クラス/メソッドの定義/クラス定義>)) [compat]
メソッド定義のほかにもク......ble#select
と同じメソッドが定義されました。
=== Math
: ((<Math/Math.erf>)) [new]
: ((<Math/Math.erfc>)) [new]
追加 ((<ruby-list:37753>))
: ((<Math/Math.acos>)) [new]
: ((<Math/Math.asin>)) [new]
: ((<Math/Math.atan>)) [new]
: ((<Math/Math.cosh>))......りました(以前は、nil を返
していました) ((<ruby-talk:67860>))
: ((<組み込み関数/system>)) [compat]
: ((<組み込み関数/exec>)) [compat]
第一引数が配列の場合、その一つ目の要素のファイルを環境変数PATHから
検索するようになりま... -
NEWS for Ruby 3
. 1 . 0 (48.0) -
NEWS for Ruby 3.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...場合は、ブロックの引数を無名にできるようになりました。 11256
//emlist{
def foo(&)
bar(&)
end
//}
* ピン演算子に式を書けるようになりました。 17411
//emlist{
Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a
#=> [[3, 5], [5, 7], [1......した。 17724
//emlist{
@n = 5
Prime.each_cons(2).lazy.find{_1 in [n, ^@n]}
#=> [3, 5]
//}
* 1行パターンマッチが実験的な機能ではなくなりました。
* 1行パターンマッチが括弧を省略できるようになりました。 16182
//emlist{
[0, 1] => _, x
{y: 2}......装の改善
* クラス変数の読み込みにインラインキャッシュが導入されました。 17763
* instance_eval と instance_exec は、必要な時だけシングルトンクラスを割り当てるようになり、余分なオブジェクトの生成を回避してパフォ... -
ruby 1
. 9 feature (48.0) -
ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。
...(<ruby-dev:28636>))
: 丸めエラー修正 ((<ruby-core:07896>))
: divmod 修正 ((<ruby-dev:28589>))
: jcode の String#tr_s 修正 ((<ruby-list:42090>))
: Solaris 対応修正 ((<ruby-dev:28443>)), ((<ruby-dev:28440>))
: rubygems がある場合には ri で考慮するようになり......[obsolete]
: scan [obsolete]
削除
=== 2005-10-21
: funcall [new]
fcall から改名
: Module#instance_exec [new]
: Module#module_exec [new]
追加
=== 2005-09-16
: ((<Dir/Dir.glob>)) [compat]
: ((<Dir/Dir.[]>)) [compat]
Dir.glob に配列を渡して複......5-06-09
: ENV.[]= [change]
ENV[key] = nil で要素を削除する機能は失われ、TypeError になるようになりました。
((<ruby-list:40865>))
=== 2005-06-08
: Array#nitems [compat]
Array#nitems にブロックを渡せるようになり、ブロックが真になる要素の... -
Rubyの起動 (24.0)
-
Rubyの起動 * cmd_option * shebang
...とともに用いて, オートスプリットモードをONにします。
オートスプリットモードでは各ループの先頭で,
//emlist{
$F = $_.split
//}
が実行されます。`-n'か`-p'オプションが同時に指定されない限り,
このオプションは意味......ディ
ング のように外部エンコーディングを省略した場合は内部エンコーディング
のみを変更します。
//emlist{
# 変更しない場合
$ ruby -e 'p Encoding.default_external; p Encoding.default_internal'
#<Encoding:UTF-8>
nil
# 外部エンコーディ......マシンで、
#! による実行をエミュレートするために、以下の
ようにして使うことができます:
//emlist{
#!/bin/sh
exec ruby -S -x $0 "$@"
#! ruby
//}
システムは最初の行により、スクリプトを/bin/sh
に渡します。/bin/shは2......先頭で,
//emlist{
$F = $_.split
//}
が実行されます。`-n'か`-p'オプションが同時に指定されない限り,
このオプションは意味を持ちません。
: --backtrace-limit=num
バックトレースの最大行数を指定します。
//emlist{
# test.rb
def f6......= raise
def f5 = f6
def f4 = f5
def f3 = f4
def f2 = f3
def f1 = f2
f1
//}
//emlist{
% ruby --backtrace-limit=3 test.rb
test.rb:1:in `f6': unhandled exception
from test.rb:2:in `f5'
from test.rb:3:in `f4'
from test.rb:4:in `f3'
... 3 levels...
//}
: -C directory
スクリプト実行... -
セキュリティモデル (18.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
...点での親スレッドの$SAFEの値を引き継ぐ
//emlist[][ruby]{
$SAFE = 0
th = Thread.new{
p $SAFE # => 0
$SAFE = 1
}
th.join
p $SAFE # => 0
//}
* $SAFE の値を現在の値より小さく変更する事はできない
//emlist{
$ ruby -e '$SAFE = 1; $SAFE = 0'
-e:1: tried......止される操作
* 汚染された文字列を引数とした以下の操作
* Dir, IO, File, FileTest のメソッド呼び出し
//emlist{
$ ruby -e '$SAFE = 1; open(ARGV[0])' hoge
-e:1:in `initialize': Insecure operation - initialize (SecurityError)......1
//}
* ファイルテスト演算子の使用、ファイルの更新時刻比較
* 外部コマンド実行 (Kernel.#system, Kernel.#exec, Kernel.#`, Kernel.#spawn など)
* Kernel.#eval
* トップレベルへの Kernel.#load (第二引数を指定してラップすれば......て ensure で戻す
//emlist{
$SAFE = 0
th = Thread.new do
p $SAFE # => 0
$SAFE = 1
ensure
$SAFE = 0
end
th.join
p $SAFE # => 0
//}
* $SAFE の値を現在の値より小さく変更する事もできる
//emlist{
$ ruby -e '$SAFE... -
多言語化 (18.0)
-
多言語化 Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。 文字列の内部表現のエンコーディングは固定されておらず、 プログラマは目的に応じて使用するエンコーディングを選ぶことができます。
...明のテキストファイルから読み込んだ文字列に後からエンコーディングを
設定する場合などに使います。
//emlist[例][ruby]{
"いろは".encode("Shift_JIS")
"\xA4\xA4\xA4\xED\xA4\xCF".force_encoding("EUC-JP")
//}
====[a:ruby18] Ruby 1.8 からの移行
Ruby......状態です。
ISO-2022-JP, UTF-7 がこれにあたります。
サポートするエンコーディングのリストは Encoding.list, Encoding.name_list
で取得することができます。
また拡張ライブラリを作成することによりサポートするエンコーディング......形式以外にも
# encoding: euc-jp
# -*- coding: euc-jp -*-
# vim:set fileencoding=euc-jp:
などの形式を解釈します。
#!/bin/sh
exec ruby19 -x "$0" "$@"
#!ruby
# coding: utf-8
このように -x オプションを使っている場合には「#! で始まり、ruby がある...