別のキーワード
ライブラリ
モジュール
キーワード
- BigDecimal (24)
- E (12)
- PI (12)
- abbrev (12)
-
allocation
_ sourcefile (12) -
allocation
_ sourceline (12) - atan (12)
- autoload (12)
- benchmark (12)
- bm (12)
- bmbm (12)
- cbrt (6)
- cbrt! (6)
- cd (24)
- chdir (24)
- chmod (12)
-
chmod
_ R (12) - chown (12)
-
chown
_ R (12) - cmp (12)
-
compare
_ file (12) - confstr (12)
- copy (12)
- cos (12)
- cos! (6)
- cp (12)
-
cp
_ lr (7) -
cp
_ r (12) - decode (12)
- dlunwrap (12)
- dlwrap (12)
- dump (12)
- encode64 (12)
- exp (18)
- exp! (6)
-
fast
_ generate (12) -
fast
_ unparse (12) - free (12)
- generate (12)
- getlogin (12)
- h (12)
- hexencode (12)
-
html
_ escape (12) - identical? (12)
- install (12)
- isjis (12)
- link (12)
- ln (12)
-
ln
_ s (12) - load (24)
- log (24)
- log! (12)
- lusolve (12)
- makedirs (12)
- measure (12)
-
memsize
_ of (12) - mkdir (12)
-
mkdir
_ p (12) - mkpath (12)
- move (12)
- mv (12)
- nprocessors (12)
- open (4)
- parse (12)
- parse! (12)
- pipeline (12)
- pp (12)
-
pretty
_ generate (12) -
pretty
_ unparse (12) - readline (12)
- realtime (12)
- remove (12)
-
remove
_ entry (12) -
require
_ relative (12) - restore (12)
- rm (12)
-
rm
_ r (12) - rmdir (12)
- setgid? (12)
- setuid? (12)
- sin (12)
- sin! (6)
- socket? (12)
- sqrt (18)
- sqrt! (6)
- sticky? (12)
- symlink (12)
- sysconf (12)
- sysconfdir (12)
- systmpdir (12)
- tan! (6)
- timeout (21)
- touch (12)
-
trace
_ object _ allocations (12) - u (12)
- uname (12)
- unparse (12)
- uptodate? (12)
-
url
_ encode (12) -
urlsafe
_ encode64 (12)
検索結果
先頭5件
- Kernel
. # require(feature) -> bool - Kernel
. # require _ relative(relative _ feature) -> bool - Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object - Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object - FileUtils
. # cp _ lr(src , dest , noop: nil , verbose: nil , dereference _ root: true , remove _ destination: false)
-
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...