るりまサーチ

最速Rubyリファレンスマニュアル検索!
1238件ヒット [1-100件を表示] (0.045秒)

別のキーワード

  1. rbconfig ruby
  2. fiddle ruby_free
  3. fiddle build_ruby_platform
  4. rake ruby
  5. rubygems/defaults ruby_engine

ライブラリ

モジュール

キーワード

検索結果

<< 1 2 3 ... > >>

Kernel.#require(feature) -> bool (18160.0)

Ruby ライブラリ feature をロードします。拡張子補完を行い、 同じファイルの複数回ロードはしません。

...
Ruby
ライブラリ feature をロードします。拡張子補完を行い、
同じファイルの複数回ロードはしません。

feature が絶対パスのときは feature からロードします。
feature が相対パスのときは組み込み変数 $:
に示されるパスを順番...
...境変数 HOME の値に展開されます。
また `~USER' はそのユーザのホームディレクトリに展開されます。

Ruby
ライブラリとは Ruby スクリプト (*.rb) か拡張ライブラリ
(*.so,*.o,*.dll など) であり、feature の拡張子が省略された場合は...
...ードに失敗した場合に発生します。

//emlist[例][ruby]{
$LOADED_FEATURES.grep(/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...

Kernel.#require_relative(relative_feature) -> bool (6154.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:...

Timeout.#timeout(sec, exception_class = nil) {|i| ... } -> object (73.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 =...
...in[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 "...
...puts err
end

=== 注意

timeout による割り込みは Thread によって実現されています。
C 言語レベルで実装され、
Ruby
のスレッドが割り込めない処理に対して timeout は無力です。
そのようなものは実用レベルでは少ないのです...
...ッセージを指定します.省略した場合は
"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 (73.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 =...
...in[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 "...
...puts err
end

=== 注意

timeout による割り込みは Thread によって実現されています。
C 言語レベルで実装され、
Ruby
のスレッドが割り込めない処理に対して timeout は無力です。
そのようなものは実用レベルでは少ないのです...

FileUtils.#cp_lr(src, dest, noop: nil, verbose: nil, dereference_root: true, remove_destination: false) (67.0)

src へのハードリンク dest を作成します。 src がディレクトリの場合、再帰的にリンクします。 dest がディレクトリの場合、src へのハードリンク dest/src を作成します。

...イブラリを site_ruby にインストールする例][ruby]{
require
'fileutils'
FileUtils.rm_r site_ruby + '/mylib', force: true
FileUtils.cp_lr 'lib/', site_ruby + '/mylib'
//}

//emlist[様々なファイルを対象ディレクトリにリンクする例][ruby]{
require
'fileutils'
FileUtils...
....cp_lr %w(mail.rb field.rb debug/), site_ruby + '/tmail'
FileUtils.cp_lr Dir.glob('*.rb'), '/home/aamine/lib/ruby', noop: true, verbose: true
//}

//emlist[内容をリンクする例][ruby]{
require
'fileutils'
# ディレクトリそのものではなく、ディレクトリの内容をリンク...

絞り込み条件を変える

FileUtils.#cp_r(src, dest, options = {}) -> () (55.0)

src を dest にコピーします。src がディレクトリであったら再帰的に コピーします。その際 dest がディレクトリなら dest/src にコピーします。

...tions

//emlist[][ruby]{
# installing ruby library "mylib" under the site_ruby
require
'fileutils'
FileUtils.rm_r(site_ruby + '/mylib', force: true)
FileUtils.cp_r('lib/', site_ruby + '/mylib')
# other sample
require
'fileutils'
FileUtils.cp_r(%w(mail.rb field.rb debug/), site_ruby + '/tmail')
FileU...
...tils.cp_r(Dir.glob('*.rb'), '/home/taro/lib/ruby',
noop: true, verbose: true)
//}...

Kernel.#load(file, priv = false) -> true (53.0)

Ruby プログラム file をロードして実行します。再ロード可能です。

...
Ruby
プログラム file をロードして実行します。再ロード可能です。

file が絶対パスのときは file からロードします。
file が相対パスのときは組み込み変数 $:
に示されるパスとカレントディレクトリを順番に探し、最初に見...
...rnel.#require

=== require と load の違い

Kernel.#require は同じファイルは一度だけしかロードしませんが、
Kernel.#load は無条件にロードします。
また、require は拡張子.rb や .so を自動的に補完しますが、
load は行いません。
require
...
...ライブラリのロード、load は
設定ファイルの読み込みなどに使うのが典型的な用途です。

//emlist[例][ruby]{
load "#{ENV['HOME']}/.myapprc"
load "/etc/myapprc"
//}

なお、特定のディレクトリからファイルをロードしたい場合、
load 'filename'...

Abbrev.#abbrev(words, pattern = nil) -> Hash (49.0)

文字列の配列から一意に決まる短縮形を計算し、 短縮形をキー、元の文字列を値とするハッシュを返します。

...を値とするハッシュを返します。

require
'abbrev'

# words に同じ文字列が含まれている場合は
# 以下のようにその文字列しか返しません。
pp Abbrev.abbrev(%w[ruby ruby]).sort
# => [["ruby", "ruby"]]

# 空白が含まれていても適...
...['ru by']).sort
# => [["r", "ru by"],
# ["ru", "ru by"],
# ["ru ", "ru by"],
# ["ru b", "ru by"],
# ["ru by", "ru by"]]
# sort していない例
p %w[ruby rubyist].abbrev
#=> {"ruby" => "ruby",
# "rubyi" => "rubyist",
# "rubyi...
...s" => "rubyist",
# "rubyist" => "rubyist"}...

Benchmark.#bm(label_width = 0, *labels) {|rep| ... } -> [Benchmark::Tms] (37.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....
....483333 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("t...
<< 1 2 3 ... > >>