るりまサーチ

最速Rubyリファレンスマニュアル検索!
2010件ヒット [201-300件を表示] (0.091秒)

別のキーワード

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

ライブラリ

キーワード

検索結果

<< < 1 2 3 4 5 ... > >>

Regexp#match(str, pos = 0) {|m| ... } -> object | nil (55.0)

指定された文字列 str に対して位置 pos から自身が表す正規表現によるマッ チングを行います。マッチした場合には結果を MatchData オブジェクトで返し ます。 マッチしなかった場合 nil を返します。

...t[例][ruby]{
p(/(.).(.)/.match("foobar", 3).captures) # => ["b", "r"]
p(/(.).(.)/.match("foobar", -3).captures) # => ["b", "r"]
//}

pos を指定しても MatchData#offset 等の結果
には影響しません。つまり、
//emlist[][ruby]{
re.match(str[pos..-1])
//}

//emlist[][ruby]{
re....
...実行されます。
マッチした場合はブロックの値を返し、マッチしなかった場合は nil を返します。

//emlist[例][ruby]{
results = []
/((.)\2)/.match("foo") {|m| results << m[0] } # => ["oo"]
/((.)\2)/.match("bar") {|m| results << m[0] } # => nil
results # => ["oo"...
...マッチの開始位置を pos から行うよう制御できます(pos のデフォルト値は 0)。

//emlist[例][ruby]{
reg = Regexp.new("foo")

if reg.match("foobar")
puts
"match"
end
# => match

p reg.match("foobar") # => #<MatchData:0x29403fc>
p reg.match("bar") # => nil

p /(foo)(bar)...

Enumerator#next -> object (49.0)

「次」のオブジェクトを返します。

...ator#rewind

//emlist[例1][ruby]{
str = "xyz"
enum = str.each_byte

str.bytesize.times do
puts
enum.next
end
# => 120
# 121
# 122
//}

//emlist[例2][ruby]{
str = "xyz"
enum = str.each_byte

begin
puts
enum.next while true
rescue StopIteration
puts
"iteration reached at end"...
...# 121
# 122
# iteration reached at end
puts
enum.next
#=> 再度 StopIteration 例外が発生
//}

//emlist[例3: Kernel.#loop は StopIteration を捕捉します。][ruby]{
str = "xyz"
enum = str.each_byte
loop do
puts
enum.next
end
# => 120
# 121
# 122
/...

File#flock(operation) -> 0 | false (49.0)

ファイルをロックします。

...no::EXXX が発生するかもしれません。
: LOCK_UN
アンロック。
この明示的なアンロック以外に、ファイルのcloseやRubyインタプリタの終了
(プロセスの終了)によっても自動的にロック状態は解除されます。
: LOCK_NB
ノンブロック...
...でに行っている場合にロックを行う
* 他のプロセスがロックしている状態で排他ロックを行う

//emlist[例1:][ruby]{
# 書き込みロック(write lock)を使用してカウンタを更新。
# ロック前にファイルを切り詰めてしまうので、
# モ...
.../}

//emlist[例2:][ruby]{
f = File.open("/tmp/foo", "w")

f.flock(File::LOCK_EX)
puts
"locked by process1"

fork {
f = File.open("/tmp/foo", "r")
f.flock(File::LOCK_SH)
puts
"locked by process2"
sleep 5
puts
"unlocked by process2"
}

sleep 5

f.flock(File::LOCK_UN)
puts
"unlocked by proce...

Regexp#~ -> Integer | nil (49.0)

変数 $_ の値との間でのマッチをとります。

...す。

//emlist[][ruby]{
self =~ $_
//}

//emlist[例][ruby]{
$_ = "hogehoge"

if /foo/
puts
"match"
else
puts
"no match"
end
# => no match
# ただし、警告がでる。warning: regex literal in condition

reg = Regexp.compile("foo")

if ~ reg
puts
"match"
else
puts
"no match"
end
# =...
...> no match

if reg
puts "match"
else
puts
"no match"
end
# => match
# reg は nil でも false でも無いので常にtrue
//}...

Object#taint -> self (45.0)

このメソッドは Ruby 2.7 から deprecated で、Ruby 3.2 で削除予定です。

...このメソッドは Ruby 2.7 から deprecated で、Ruby 3.2 で削除予定です。

オブジェクトの「汚染マーク」をセットします。

環境変数(ENVで得られる文字列)など一部のオブジェクトは最初から汚染されています。
オブジェクト...
...の汚染に関してはspec/safelevelを参照してください。

//emlist[][ruby]{
$SAFE = 1

some = "puts '@&%&(#!'"
p some.tainted? #=> false
eval(some) #=> @&%&(#!

some.taint
p some.tainted? #=> true
eval(some) # Insecure operation - eval (SecurityError)

some.untaint
p some.tainted? #=> fa...

絞り込み条件を変える

Module#prepend(*modules) -> self (43.0)

指定したモジュールを self の継承チェインの先頭に「追加する」ことで self の定数、メソッド、モジュール変数を「上書き」します。

...ee Module#prepend_features, Module#prepended

//emlist[例][ruby]{
# super と prepend の組み合わせの例
module X
def foo
puts
"X1" # (1x)
super # (2x)
puts
"X2" # (3x)
end
end

class A
prepend X

def foo
puts
"A" #(1a)
end
end

A.new.foo
# (1x) (2x)(ここの super...
...のモジュールを X, Y を prepend X, Y という順で指定したもの
module Y
def foo
puts
"Y1" #(1y)
super #(2y)
puts
"Y2" #(3y)
end
end

class B
prepend X, Y
def foo
puts
"B" # (1b)
end
end

B.new.foo
# (1x) (2x) (1y) (2y) (1b) (3y) (3x) の順に実行される...

WIN32OLE_TYPE#default_event_sources -> [WIN32OLE_TYPE] (43.0)

型が持つソースインターフェイスを取得します。

...が表示されました"
@completed = true
end
puts
"#{Time.now}: #{m.name} was called"
p arg
end
end
end
evt = WIN32OLE_EVENT.new(ctl)
evt.handler = WebEvent.new
ctl.navigate2 'http://www.ruby-lang.org/'
loop do
break if evt.handler.completed
WIN32O...
...e was called
["{265b75c1-4158-11d0-90f6-00c04fd497ea}"]
2010-10-06 22:33:54 +0900: BeforeNavigate2 was called
[#<WIN32OLE:0x9d08f0>, "http://www.ruby-lang.org/", 0, "", nil, "", false]
2010-10-06 22:33:54 +0900: DownloadBegin was called
[]
2010-10-06 22:33:54 +0900: PropertyChange was called...
...ed
[2, false]
2010-10-06 22:33:54 +0900: CommandStateChange was called
[1, false]
2010-10-06 22:33:54 +0900: StatusTextChange was called
["www.ruby-lang.org を検索しています"]
2010-10-06 22:33:54 +0900: ProgressChange was called
[100, 10000]
2010-10-06 22:33:54 +0900: StatusTextChang...

BasicObject#! -> bool (37.0)

オブジェクトを真偽値として評価し、その論理否定を返します。

...す。

このメソッドを再定義しても Ruby の制御式において nil や false 以外が偽として
扱われることはありません。

@return オブジェクトが偽であれば真、そうでない場合は偽

//emlist[例][ruby]{
class NegationRecorder < BasicObject
def in...
...r = NegationRecorder.new
!recorder
!!!!!!!recorder
puts
'hoge' if !recorder

puts
recorder.count #=> 3
//}

//emlist[例][ruby]{
class AnotherFalse < BasicObject
def !
true
end
end
another_false = AnotherFalse.new

# another_falseは*真*
puts
"another false is a truth" if another_false
#=>...

Date#deconstruct_keys(array_of_names_or_nil) -> Hash (37.0)

パターンマッチに使用する名前と値の Hash を返します。

...[ruby]{
d = Date.new(2022, 10, 5)

if d in wday: 3, day: ..7 # deconstruct_keys が使われます
puts
"first Wednesday of the month"
end
#=> "first Wednesday of the month" が出力される

case d
in year: ...2022
puts
"too old"
in month: ..9
puts
"quarter 1-3"
in wday: 1..5, month:
puts
...
...g day in month #{month}"
end
#=> "working day in month 10" が出力される

# クラスのチェックと組み合わせて利用することもできます
if d in Date(wday: 3, day: ..7)
puts
"first Wednesday of the month"
end
//}

@see d:spec/pattern_matching#matching_non_primitive_objects...

DateTime#deconstruct_keys(array_of_names_or_nil) -> Hash (37.0)

パターンマッチに使用する名前と値の Hash を返します。

...[例][ruby]{
dt = DateTime.new(2022, 10, 5, 13, 30)

if dt in wday: 1..5, hour: 10..18 # deconstruct_keys が使われます
puts
"Working time"
end
#=> "Working time" が出力される

case dt
in year: ...2022
puts
"too old"
in month: ..9
puts
"quarter 1-3"
in wday: 1..5, month:
puts
"wor...
...> "working day in month 10" が出力される

# クラスのチェックと組み合わせて利用することもできます
if dt in DateTime(wday: 1..5, hour: 10..18, day: ..7)
puts
"Working time, first week of the month"
end
//}

@see d:spec/pattern_matching#matching_non_primitive_objects...

絞り込み条件を変える

Range#===(obj) -> bool (37.0)

始端と終端の中に obj があるとき、true を返します。 そうでないとき、false を返します。

...case 式での比較に用いられます。

//emlist[例][ruby]{
p (0...50) === 79 #=> false
p (60...80) === 79 #=> true

case 79
when 0...60 then puts "low"
when 60...80 then puts "medium" # => medium
when 80..100 then puts "high"
end
//}

2.5 以前は、単純に Range#include? メソ...
...した。

ただし、=== は、Range#cover? のように Range オブジェクトを引数にはとる設計はありません。

//emlist[例][ruby]{
require 'date'
p (Date.today - 100...Date.today + 100).include?(DateTime.now) #=> false
p (Date.today - 100...Date.today + 100).cover?(DateTime.n...
...していました。
//}

2.7 以降の === は、文字列も Range#cover? と同様の処理をするようになりました。

//emlist[例][ruby]{
p ('a'..'z').include? 'at' #=> false
p ('a'..'z').cover? 'at' #=> true
p ('a'..'z') === 'at' #=> true
# 2.6 以前は、=== は、includ...

ThreadGroup#add(thread) -> self (37.0)

スレッド thread が属するグループを自身に変更します。

...][ruby]{
puts
"Initial group is #{ThreadGroup::Default.list}"
# => Initial group is [#<Thread:0x4a49168 run>]

tg = ThreadGroup.new
t1 = Thread.new { sleep }
t2 = Thread.new { sleep }
puts
"t1 is #{t1}" # => t1 is #<Thread:0x50bef60>
puts
"t2 is #{t2}" # => t2 is #<Thread:0x50beed0>
tg.add(t1)
puts
...
..."Initial group now #{ThreadGroup::Default.list}"
# => Initial group now [#<Thread:0x3039168 run>, #<Thread:0x50beed0 run>]
puts
"tg group now #{tg.list}"
# => tg group now [#<Thread:0x50bef60 run>]
//}...
<< < 1 2 3 4 5 ... > >>