クラス
-
ARGF
. class (99) - Array (77)
- BasicObject (55)
- Class (11)
- Data (4)
- Dir (11)
-
Encoding
:: Converter (22) -
Encoding
:: InvalidByteSequenceError (11) -
Encoding
:: UndefinedConversionError (11) - Enumerator (33)
-
Enumerator
:: Lazy (10) - File (11)
-
File
:: Stat (55) - Hash (11)
- IO (44)
- Integer (22)
- MatchData (11)
- Method (22)
- Module (90)
- Object (138)
- Proc (6)
- Range (6)
- Regexp (55)
-
RubyVM
:: AbstractSyntaxTree :: Node (6) -
RubyVM
:: InstructionSequence (66) - SignalException (11)
- String (110)
- Struct (22)
- Thread (37)
-
Thread
:: Backtrace :: Location (44) -
Thread
:: ConditionVariable (18) -
Thread
:: Queue (27) -
Thread
:: SizedQueue (27) - ThreadGroup (11)
- TracePoint (12)
- UnboundMethod (10)
モジュール
- Enumerable (66)
キーワード
- ! (11)
- != (11)
- << (6)
- === (28)
- =~ (11)
- [] (11)
-
absolute
_ path (22) - add (11)
-
alias
_ method (11) -
base
_ label (22) -
bind
_ call (10) - blockdev? (11)
- broadcast (9)
- chardev? (11)
-
const
_ added (2) - convert (11)
- cycle (44)
- deconstruct (2)
-
deconstruct
_ keys (2) - deq (18)
- disasm (11)
- disassemble (11)
- dump (11)
- each (88)
-
each
_ line (44) - empty? (11)
-
enum
_ for (22) - eof (11)
- eof? (11)
-
error
_ bytes (11) -
error
_ char (11) -
eval
_ script (6) - fetch (33)
- flock (11)
- gsub (44)
-
ignore
_ deadlock= (4) - inherited (11)
- initialize (11)
-
initialize
_ copy (11) -
insert
_ output (11) - inspect (39)
-
instruction
_ sequence (6) - label (11)
- match (22)
-
max
_ by (44) -
method
_ added (11) -
method
_ removed (11) -
method
_ undefined (11) - next (11)
- owner (11)
- path (11)
- pid (11)
- pop (18)
- prepend (11)
- prepended (11)
-
public
_ send (22) - read (11)
- refine (11)
-
respond
_ to? (11) - run (11)
- setgid? (11)
- setuid? (11)
- shift (18)
- signal (9)
- signm (11)
-
singleton
_ method _ added (11) -
singleton
_ method _ removed (11) -
singleton
_ method _ undefined (11) -
source
_ location (11) - sticky? (11)
- sub (33)
- taint (6)
- tap (11)
- times (22)
-
to
_ enum (22) -
to
_ s (22) -
undef
_ method (11) - upto (11)
- wakeup (11)
-
with
_ index (10) -
with
_ object (22) - ~ (11)
検索結果
先頭5件
-
IO
# puts(*obj) -> nil (18138.0) -
各 obj を self に出力し、それぞれの後に改行を出力します。 引数の扱いは Kernel.#puts と同じです。詳細はこちらを参照し てください。
...れぞれの後に改行を出力します。
引数の扱いは Kernel.#puts と同じです。詳細はこちらを参照し
てください。
@param obj 出力したいオブジェクトを指定します。Kernel.#puts と同じです。
@raise IOError 自身が書き込み用にオープン......されていなければ発生します。
@raise Errno::EXXX 出力に失敗した場合に発生します。
$stdout.puts("this", "is", "a", "test", [1, [nil, 3]])
#=>
this
is
a
test
1
3
@see Kernel.#puts... -
ARGF
. class # puts(*arg) -> nil (18110.0) -
引数と改行を順番に処理対象のファイルに出力します。 引数がなければ改行のみを出力します。
...力します。
引数がなければ改行のみを出力します。
c:ARGF#inplace時にのみ使用できます。
また $stdout への代入の影響を受けません。
それ以外は Kernel.#puts と同じです。
@param arg 出力するオブジェクトを任意個指定します。... -
Encoding
:: Converter # convert(source _ string) -> String (57.0) -
与えられた文字列を変換して、変換できた結果を返します。 引数の末尾の文字がバイト列の途中で終わっている場合、そのバイト列は変換器内に取り置かれます。 変換を終了させるには Encoding::Converter#finish を呼びます。
...verter.new("utf-8", "euc-jp")
puts ec.convert("\u3042").dump #=> "\xA4\xA2"
puts ec.finish.dump #=> ""
ec = Encoding::Converter.new("euc-jp", "utf-8")
puts ec.convert("\xA4").dump #=> ""
puts ec.convert("\xA2").dump #=> "\xE3\x81\x82"
puts ec.finish.dump......onverter.new("utf-8", "iso-2022-jp")
puts ec.convert("\xE3").dump #=> "".force_encoding("ISO-2022-JP")
puts ec.convert("\x81").dump #=> "".force_encoding("ISO-2022-JP")
puts ec.convert("\x82").dump #=> "\e$B$\"".force_encoding("ISO-2022-JP")
puts ec.finish.dump #=> "... -
Object
# respond _ to?(name , include _ all = false) -> bool (45.0) -
オブジェクトがメソッド name を持つとき真を返します。
...D.new]
list.each{|it| puts it.hello if it.respond_to?(:hello)}
#=> Bonjour
list.each{|it| it.instance_eval("puts hello if it.respond_to?(:hello, true)")}
#=> Bonjour
# Guten Tag
module Template
def main
start
template_method
finish
end
def start
puts "start"
end
def......mentedError.new
end
def finish
puts "finish"
end
end
class ImplTemplateMethod
include Template
def template_method
"implement template_method"
end
end
class NotImplTemplateMethod
include Template
# not implement template_method
end
puts ImplTemplateMethod.new.respond_to?......r が発生しているが、Rubyによる実装部のため true を返す
puts NotImplTemplateMethod.new.respond_to?(:template_method) # => true
# GNU/Linux で実行。C言語による実装部のため false を返す
puts File.respond_to?(:lchmod) # => false
//}
@see Module#method_defi... -
Module
# prepend(*modules) -> self (39.0) -
指定したモジュールを self の継承チェインの先頭に「追加する」ことで self の定数、メソッド、モジュール変数を「上書き」します。
...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 で A#foo を呼びだす) (1a) (3x......のモジュールを 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) の順に実行される... -
Regexp
# ~ -> Integer | nil (39.0) -
変数 $_ の値との間でのマッチをとります。
..."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
# =>... -
Enumerator
# next -> object (33.0) -
「次」のオブジェクトを返します。
...s 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"
end
# => 120
# 121
# 122
# iteration reached at end
puts enu......m.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 (33.0) -
ファイルをロックします。
...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 process1"
sleep 1 # <- 子プロセ......スが確実に先にロックするための sleep
f.flock(File::LOCK_EX)
puts "re-locked by process1"
# => locked by process1
# unlocked by process1
# locked by process2
# unlocked by process2
# re-locked by process1
//}... -
String
# gsub(pattern , replace) -> String (33.0) -
文字列中で pattern にマッチする部分全てを 文字列 replace で置き換えた文字列を生成して返します。
...ックスラッシュを倍にするときによくある間違い][ruby]{
puts '\n'.gsub(/\\/, "\\\\") # => \n # NG
puts '\n'.gsub(/\\/, '\\\\') # => \n # NG
puts '\n'.gsub(/\\/, "\\\\\\\\") # => \\n # OK
puts '\n'.gsub(/\\/, '\\\\\\\\') # => \\n # OK
//}
このような間違い......可読性を上げるには、
\& や \1 よりも下記のようにブロック付き形式の gsub を使うべきです。
//emlist[][ruby]{
p 'xbbb-xbbb'.gsub(/x(b+)/) { $1 } # => "bbb-bbb" # OK
puts '\n'.gsub(/\\/) { '\\\\' } # => \\n # OK
//}
@see String#sub, String#gsub!... -
String
# sub(pattern , replace) -> String (33.0) -
文字列中で pattern にマッチした最初の部分を 文字列 replace で置き換えた文字列を生成して返します。
...ックスラッシュを倍にするときによくある間違い][ruby]{
puts '\n'.sub(/\\/, "\\\\") # => \n # NG
puts '\n'.sub(/\\/, '\\\\') # => \n # NG
puts '\n'.sub(/\\/, "\\\\\\\\") # => \\n # OK
puts '\n'.sub(/\\/, '\\\\\\\\') # => \\n # OK
//}
このような間違いを......の可読性を上げるには、
\& や \1 よりも下記のようにブロック付き形式の sub を使うべきです。
//emlist[安全な例][ruby]{
p 'xbbb-xbbb'.sub(/x(b+)/) { $1 } # => "bbb-xbbb" # OK
puts '\n'.sub(/\\/) { '\\\\' } # => \\n # OK
//}
@see String#gsub...