別のキーワード
ライブラリ
- ビルトイン (95)
- abbrev (11)
- base64 (33)
- benchmark (55)
- bigdecimal (44)
-
bigdecimal
/ ludcmp (11) -
bigdecimal
/ math (66) - cmath (78)
- digest (11)
- erb (55)
- etc (77)
- fiddle (33)
- fileutils (358)
- find (22)
- json (121)
- kconv (11)
- objspace (44)
- open-uri (16)
- open3 (154)
- openssl (11)
- pp (4)
- readline (11)
- shellwords (44)
- syslog (242)
- timeout (19)
-
webrick
/ htmlutils (11) -
webrick
/ httpauth (11) -
webrick
/ httpstatus (11) -
webrick
/ httputils (22) -
webrick
/ utils (22) -
win32
/ resolv (22)
クラス
-
Win32
:: Resolv (22)
モジュール
- Abbrev (11)
- Base64 (33)
- Benchmark (55)
- BigMath (88)
- CMath (78)
- Digest (11)
-
ERB
:: DefMethod (11) -
ERB
:: Util (44) - Etc (77)
- Fiddle (33)
- FileTest (44)
- FileUtils (358)
- Find (22)
- JSON (121)
- Kconv (11)
- Kernel (93)
- LUSolve (11)
- ObjectSpace (44)
- Open3 (154)
-
OpenSSL
:: ASN1 (11) - Readline (11)
- Shellwords (44)
- Syslog (220)
-
Syslog
:: Macros (22) - Timeout (19)
-
WEBrick
:: HTMLUtils (11) -
WEBrick
:: HTTPAuth (11) -
WEBrick
:: HTTPStatus (11) -
WEBrick
:: HTTPUtils (22) -
WEBrick
:: Utils (22)
キーワード
- BigDecimal (22)
- E (11)
-
LOG
_ MASK (11) -
LOG
_ UPTO (11) - PI (11)
- abbrev (11)
- alert (11)
-
allocation
_ sourcefile (11) -
allocation
_ sourceline (11) - atan (11)
- autoload (11)
-
basic
_ auth (11) - benchmark (11)
- bm (11)
- bmbm (11)
- capture2 (11)
- capture2e (11)
- capture3 (11)
- cbrt (6)
- cbrt! (6)
- cd (22)
- chdir (22)
- chmod (11)
-
chmod
_ R (11) - chown (11)
-
chown
_ R (11) - close (11)
- cmp (11)
-
compare
_ file (11) - confstr (11)
- copy (11)
- cos (11)
- cos! (6)
- cp (11)
-
cp
_ lr (6) -
cp
_ r (11) - crit (11)
- debug (11)
- decode (11)
- decode64 (11)
-
def
_ erb _ method (11) - dlunwrap (11)
- dlwrap (11)
- dump (11)
- emerg (11)
- encode64 (11)
- err (11)
- escape (11)
- exp (17)
- exp! (6)
- facility (11)
-
fast
_ generate (11) -
fast
_ unparse (11) - find (22)
- free (11)
- generate (11)
-
get
_ hosts _ path (11) -
get
_ resolv _ info (11) - getlogin (11)
- getservername (11)
- h (11)
- hexencode (11)
-
html
_ escape (11) - ident (11)
- identical? (11)
- info (11)
- install (11)
- isjis (11)
- link (11)
- ln (11)
-
ln
_ s (11) - load (22)
-
load
_ mime _ types (11) - log (34)
- log! (12)
- lusolve (11)
- makedirs (11)
- mask (11)
- mask= (11)
- measure (11)
-
memsize
_ of (11) -
mime
_ type (11) - mkdir (11)
-
mkdir
_ p (11) - mkpath (11)
- move (11)
- mv (11)
- notice (11)
- nprocessors (11)
- open (38)
- open! (11)
- opened? (11)
- parse (11)
- parse! (11)
- pipeline (11)
-
pipeline
_ r (22) -
pipeline
_ rw (22) -
pipeline
_ start (22) -
pipeline
_ w (22) - popen3 (22)
- pp (11)
-
pretty
_ generate (11) -
pretty
_ unparse (11) -
random
_ string (11) - readline (11)
- realtime (11)
-
reason
_ phrase (11) - remove (11)
-
remove
_ entry (11) - reopen (11)
-
require
_ relative (11) - restore (11)
- rm (11)
-
rm
_ r (11) - rmdir (11)
- setgid? (11)
- setuid? (11)
- shellescape (11)
- shelljoin (11)
- shellsplit (11)
- shellwords (11)
- sin (11)
- sin! (6)
- socket? (11)
- sqrt (17)
- sqrt! (6)
- sticky? (11)
- symlink (11)
- sysconf (11)
- sysconfdir (11)
- systmpdir (11)
- tan! (6)
- timeout (19)
- touch (11)
-
trace
_ object _ allocations (11) - u (11)
- uname (11)
- unparse (11)
- uptodate? (11)
-
url
_ encode (11) -
urlsafe
_ encode64 (11) - warning (11)
検索結果
先頭5件
-
Kernel
. # require(feature) -> bool (18126.0) -
Ruby ライブラリ feature をロードします。拡張子補完を行い、 同じファイルの複数回ロードはしません。
...(/prime/).size # => 0
require "prime" # => true
$LOADED_FEATURES.grep(/prime/).size # => 1
require "prime" # => false
begin
require "invalid"
rescue LoadError => e
e.message # => "cannot load such file -- invalid"
end
//}
@see Kernel.#load,Kernel.#autoload,Kernel.#require_relative... -
Kernel
. # require _ relative(relative _ feature) -> bool (6148.0) -
現在のファイルからの相対パスで require します。
...現在のファイルからの相対パスで require します。
require File.expand_path(relative_feature, File.dirname(__FILE__))
とほぼ同じです。
Kernel.#eval などで文字列を評価した場合に、そこから
require_relative を呼出すと必ず失敗します。
@param r......elative_feature ファイル名の文字列です。
@raise LoadError ロードに失敗した場合に発生します。
@see Kernel.#require
=== require と load のスコープ
ローカル変数はファイル間では共有されません。ですので、
ロードしたライブラリのロ......扱い方はKernel.#loadでも同様です。
//emlist[例][ruby]{
# ---------- some.rb -----------
$a = 1
@a = 1
A = 1
a = 1
# ---------- end some.rb -------
require 'some'
p $a #=> 1
p @a #=> 1
p A #=> 1
p a # undefined local variable or method `a' for #<Object:0x294f9ec @a=1> (NameError)
//}... -
Kernel
. # load(file , priv = false) -> true (31.0) -
Ruby プログラム file をロードして実行します。再ロード可能です。
...rnel.#require
=== require と load の違い
Kernel.#require は同じファイルは一度だけしかロードしませんが、
Kernel.#load は無条件にロードします。
また、require は拡張子.rb や .so を自動的に補完しますが、
load は行いません。
require は... -
Readline
. # readline(prompt = "" , add _ hist = false) -> String | nil (31.0) -
prompt を出力し、ユーザからのキー入力を待ちます。 エンターキーの押下などでユーザが文字列を入力し終えると、 入力した文字列を返します。 このとき、add_hist が true であれば、入力した文字列を入力履歴に追加します。 何も入力していない状態で EOF(UNIX では ^D) を入力するなどで、 ユーザからの入力がない場合は nil を返します。
...、かつ、標準入力をクローズしている
(isatty(2) の errno が EBADF である。) 場合に発生します。
例:
require "readline"
input = Readline.readline
(プロンプトなどは表示せずに、入力待ちの状態になります。
ここでは「......を復帰する。
require 'readline'
stty_save = `stty -g`.chomp
begin
while buf = Readline.readline
p buf
end
rescue Interrupt
system("stty", stty_save)
exit
end
例: INTシグナルを捕捉して、端末状態を復帰する。
require 'readline'
stty_......ります。
require 'readline'
trap("INT", "SIG_IGN")
while buf = Readline.readline
p buf
end
入力履歴 Readline::HISTORY を使用して、次のようなこともできます。
例: 空行や直前の入力と同じ内容は入力履歴に残さない。
require 'readline'... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (31.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...します.
@param exception_class タイムアウトした時、発生させる例外を指定します.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t =......[1], min[0]*4.0/(min[0]+min[1])
#例
#=> 417519: pi = 3.141443
例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby
require 'timeout'
class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MY......っている) が終了した直後((A)の箇所)で TimeoutError 例外があがっています。
例 timeout が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A......ッセージを指定します.省略した場合は
"execution expired" になります.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t =... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (31.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...ッセージを指定します.省略した場合は
"execution expired" になります.
例 長い計算のタイムアウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t =......[1], min[0]*4.0/(min[0]+min[1])
#例
#=> 417519: pi = 3.141443
例 独自の例外を発生させるタイムアウト
#!/usr/bin/env ruby
require 'timeout'
class MYError < Exception;end
begin
Timeout.timeout(5, MYError) {
sleep(30)
}
rescue MYError => err
puts "MY......っている) が終了した直後((A)の箇所)で TimeoutError 例外があがっています。
例 timeout が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A... -
Kernel
. # autoload(const _ name , feature) -> nil (29.0) -
定数 const_name を最初に参照した時に feature を Kernel.#require するように設定します。
...定数 const_name を最初に参照した時に feature を
Kernel.#require するように設定します。
const_name には、 "::" 演算子を含めることはできません。
ネストした定数を指定する方法は Module#autoload を参照してください。
const_name が aut......既に定義されているときは何もしません。
@param const_name 定数をString または Symbol で指定します。
@param feature require と同様な方法で autoload する対象を指定します。
@raise LoadError featureのロードに失敗すると発生します。
//emli......st[][ruby]{
# ------- /tmp/foo.rb ---------
class Bar
end
# ----- end of /tmp/foo.rb ----
autoload :Bar, '/tmp/foo'
p Bar #=> Bar
//}
@see Kernel.#autoload?,Module#autoload,Kernel.#require... -
Open3
. # popen3(*cmd) -> [IO , IO , IO , Thread] (25.0) -
外部プログラム cmd を実行し、そのプロセスの標準入力、標準出力、標準エラー 出力に接続されたパイプと実行したプロセスを待つためのスレッドを 4 要素の 配列で返します。
...準エラー
出力に接続されたパイプと実行したプロセスを待つためのスレッドを 4 要素の
配列で返します。
require 'open3'
stdin, stdout, stderr, wait_thr = *Open3.popen3("/usr/bin/nroff -man")
@param cmd 実行するコマンドを指定します。
@retu......数にブロックを実行し、最後にパイプ
を close します。この場合はブロックの最後の式の結果を返します。
require 'open3'
Open3.popen3("read stdin; echo stdout; echo stderr >&2") {|stdin, stdout, stderr, wait_thr|
stdin.puts "stdin"
stdin.close......
require 'open3'
Open3.popen3({"foo" => "1", "bar" => "2"}, "env") {|i, o, e, t|
i.close
print o.read
}
#=> ...
foo=1
bar=2
Kernel.#spawnと同様に、引数リストの最後にオプションをハッシュ形式
で指定する事ができます。
例:
require... -
Open3
. # popen3(*cmd) {|stdin , stdout , stderr , wait _ thr| . . . } -> () (25.0) -
外部プログラム cmd を実行し、そのプロセスの標準入力、標準出力、標準エラー 出力に接続されたパイプと実行したプロセスを待つためのスレッドを 4 要素の 配列で返します。
...準エラー
出力に接続されたパイプと実行したプロセスを待つためのスレッドを 4 要素の
配列で返します。
require 'open3'
stdin, stdout, stderr, wait_thr = *Open3.popen3("/usr/bin/nroff -man")
@param cmd 実行するコマンドを指定します。
@retu......数にブロックを実行し、最後にパイプ
を close します。この場合はブロックの最後の式の結果を返します。
require 'open3'
Open3.popen3("read stdin; echo stdout; echo stderr >&2") {|stdin, stdout, stderr, wait_thr|
stdin.puts "stdin"
stdin.close......
require 'open3'
Open3.popen3({"foo" => "1", "bar" => "2"}, "env") {|i, o, e, t|
i.close
print o.read
}
#=> ...
foo=1
bar=2
Kernel.#spawnと同様に、引数リストの最後にオプションをハッシュ形式
で指定する事ができます。
例:
require... -
Benchmark
. # bm(label _ width = 0 , *labels) {|rep| . . . } -> [Benchmark :: Tms] (19.0) -
Benchmark.#benchmark メソッドの引数を簡略化したものです。
...します。
@param labels ブロックが Benchmark::Tms オブジェクトの配列を返す場合に指定します。
//emlist[][ruby]{
require 'benchmark'
n = 50000
Benchmark.bm do |x|
x.report { for i in 1..n; a = "1"; end }
x.report { n.times do ; a = "1"; end }
x.report { 1.upt......3333 0.000000 1.483333 ( 0.694605)
# 1.516667 0.000000 1.516667 ( 0.711077)
//}
以下のようにも書けます。
//emlist[][ruby]{
require 'benchmark'
n = 50000
Benchmark.bm(7) do |x|
x.report("for:") { for i in 1..n; a = "1"; end }
x.report("times:") { n.times do ; a = "1";.......533333 0.016667 1.550000 ( 0.735473)
# upto: 1.500000 0.016667 1.516667 ( 0.711239)
//}
集計を付けた場合
//emlist[][ruby]{
require 'benchmark'
n = 50000
Benchmark.bm(7, ">total:", ">avg:") do |x|
tf = x.report("for:") { for i in 1..n; a = "1"; end }
tt = x.report("time...