別のキーワード
ライブラリ
クラス
- Addrinfo (24)
- Array (88)
- BasicObject (60)
- CSV (36)
-
CSV
:: Row (18) - Class (12)
- Data (6)
- Date (2)
- DateTime (2)
- Dir (12)
- ERB (24)
-
Encoding
:: Converter (24) -
Encoding
:: InvalidByteSequenceError (12) -
Encoding
:: UndefinedConversionError (12) - Enumerator (36)
-
Enumerator
:: Lazy (12) - File (12)
-
File
:: Stat (60) -
Gem
:: Requirement (12) - Hash (12)
- IO (12)
- Integer (24)
-
JSON
:: State (72) - MatchData (12)
- Matrix (48)
- Method (24)
- Module (99)
-
Net
:: HTTP (108) - Object (150)
- OptionParser (72)
- Proc (7)
-
Rake
:: Application (12) - Range (7)
- Regexp (60)
-
RubyVM
:: AbstractSyntaxTree :: Node (7) -
RubyVM
:: InstructionSequence (72) - Set (20)
- SignalException (12)
- String (120)
- StringIO (12)
- StringScanner (60)
- Struct (24)
- Thread (40)
-
Thread
:: Backtrace :: Location (48) -
Thread
:: ConditionVariable (24) -
Thread
:: Queue (36) -
Thread
:: SizedQueue (36) - ThreadGroup (12)
- Time (2)
- TracePoint (14)
- UnboundMethod (12)
-
WIN32OLE
_ EVENT (12) -
WIN32OLE
_ METHOD (12) -
WIN32OLE
_ TYPE (24) -
WIN32OLE
_ TYPELIB (12) - XMP (12)
-
Zlib
:: GzipWriter (24)
モジュール
- Enumerable (72)
-
JSON
:: Generator :: GeneratorMethods :: String (12) - Kernel (12)
-
Net
:: HTTPHeader (72) -
Rake
:: TaskManager (12)
キーワード
- ! (12)
- != (12)
- << (19)
- === (31)
- =~ (12)
- [] (12)
-
absolute
_ path (24) - add (12)
-
add
_ row (12) -
alias
_ method (12) -
base
_ label (24) -
bind
_ call (12) - blockdev? (12)
- broadcast (12)
- chardev? (12)
- close (12)
- concat (12)
-
connect
_ from (24) -
const
_ added (3) - convert (12)
- cycle (48)
- deconstruct (6)
-
deconstruct
_ keys (12) -
default
_ event _ sources (12) - deq (24)
- disasm (12)
- disassemble (12)
- dump (12)
- each (96)
-
each
_ capitalized _ name (12) -
each
_ header (12) -
each
_ key (12) -
each
_ name (12) -
each
_ value (12) -
each
_ with _ index (24) - empty? (12)
-
enum
_ for (24) -
error
_ bytes (12) -
error
_ char (12) -
eval
_ script (7) - fetch (36)
- finish (12)
- flock (12)
- get2 (24)
- gsub (48)
- handler= (12)
- help (12)
- helpfile (12)
-
ignore
_ deadlock= (4) -
in
_ namespace (12) - inherited (12)
- initialize (12)
-
initialize
_ copy (12) -
insert
_ output (12) - inspect (55)
-
instruction
_ sequence (7) - invkind (12)
- label (12)
- match (24)
-
max
_ by (48) -
method
_ added (12) -
method
_ removed (12) -
method
_ undefined (12) - next (12)
-
object
_ nl (12) -
object
_ nl= (12) -
on
_ head (12) -
on
_ tail (12) - owner (12)
- path (24)
- peek (12)
- peep (12)
- pid (12)
- pointer= (12)
- pop (24)
- pos= (12)
- post2 (24)
- prepend (12)
- prepended (12)
-
public
_ send (24) - read (12)
- refine (12)
-
request
_ get (24) -
request
_ post (24) -
respond
_ to? (12) - result (12)
- run (12)
-
send
_ request (12) - separator (12)
- setgid? (12)
- setuid? (12)
- shift (24)
- signal (12)
- signm (12)
-
singleton
_ method _ added (12) -
singleton
_ method _ removed (12) -
singleton
_ method _ undefined (12) -
source
_ location (12) - space (12)
- space= (12)
-
space
_ before (12) -
space
_ before= (12) - src (12)
- sticky? (12)
- sub (36)
- taint (6)
- tap (12)
- times (24)
-
to
_ csv (4) -
to
_ enum (24) -
to
_ json (12) -
to
_ s (44) -
top
_ level (12) -
undef
_ method (12) - unscan (12)
- upto (12)
- ver (12)
- wakeup (12)
-
with
_ index (12) -
with
_ object (24) - xmp (12)
- ~ (12)
検索結果
先頭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>]
//}...