ライブラリ
- ビルトイン (1414)
- csv (58)
- date (4)
- erb (24)
-
irb
/ output-method (12) -
irb
/ xmp (24) - json (84)
- matrix (48)
- mkmf (48)
-
net
/ http (180) -
net
/ pop (108) -
net
/ smtp (24) -
net
/ telnet (6) - openssl (12)
- optparse (72)
- rake (48)
-
rdoc
/ markup (36) -
rubygems
/ requirement (12) - set (14)
- shell (12)
-
shell
/ command-processor (12) -
shell
/ filter (36) - socket (36)
- stringio (12)
- strscan (60)
- thread (16)
- win32ole (648)
- zlib (396)
クラス
-
ARGF
. class (108) - 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 (48)
-
IRB
:: OutputMethod (12) - Integer (24)
-
JSON
:: State (72) - MatchData (12)
- Matrix (48)
- Method (24)
- Module (99)
-
Net
:: HTTP (108) -
Net
:: POPMail (108) -
Net
:: SMTP (24) -
Net
:: Telnet (6) - Object (150)
- OptionParser (72)
- Proc (7)
-
RDoc
:: Markup (36) -
Rake
:: Application (12) - Range (7)
- Regexp (60)
-
RubyVM
:: AbstractSyntaxTree :: Node (7) -
RubyVM
:: InstructionSequence (72) - Set (20)
- Shell (12)
-
Shell
:: CommandProcessor (12) -
Shell
:: Filter (36) - 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)
- UNIXSocket (12)
- UnboundMethod (12)
- WIN32OLE (48)
-
WIN32OLE
_ EVENT (36) -
WIN32OLE
_ METHOD (192) -
WIN32OLE
_ PARAM (96) -
WIN32OLE
_ TYPE (84) -
WIN32OLE
_ TYPELIB (96) -
WIN32OLE
_ VARIABLE (96) - XMP (12)
-
Zlib
:: GzipReader (228) -
Zlib
:: GzipWriter (168)
モジュール
- Enumerable (72)
- FileUtils (12)
-
JSON
:: Generator :: GeneratorMethods :: String (12) - Kernel (72)
-
Net
:: HTTPHeader (72) -
OpenSSL
:: Buffering (12) -
Rake
:: TaskManager (12)
キーワード
- ! (12)
- != (12)
- << (31)
- === (31)
- =~ (12)
- [] (12)
-
_ getproperty (12) -
_ setproperty (12) -
absolute
_ path (24) - add (12)
-
add
_ html (12) -
add
_ row (12) -
add
_ special (12) -
add
_ word _ pair (12) -
alias
_ method (12) - all (36)
-
base
_ label (24) -
bind
_ call (12) - blockdev? (12)
- broadcast (12)
- chardev? (12)
- close (12)
- comment= (12)
- concat (12)
-
connect
_ from (24) -
const
_ added (3) - convert (12)
- cycle (48)
- deconstruct (6)
-
deconstruct
_ keys (12) - default (12)
-
default
_ event _ sources (12) - deq (24)
- disasm (12)
- disassemble (12)
- dispid (12)
- dump (12)
- each (174)
-
each
_ byte (24) -
each
_ capitalized _ name (12) -
each
_ header (12) -
each
_ key (12) -
each
_ line (72) -
each
_ name (12) -
each
_ value (12) -
each
_ with _ index (24) - empty? (12)
-
enum
_ for (24) - eof (24)
- eof? (24)
-
error
_ bytes (12) -
error
_ char (12) -
eval
_ script (7) - event? (12)
-
event
_ interface (12) - fetch (36)
- file (12)
- finish (12)
- flock (12)
- flush (12)
- foreach (18)
- get2 (24)
- getc (12)
- gets (12)
- gsub (48)
- guid (24)
- handler= (12)
- help (12)
- helpcontext (24)
- helpfile (24)
- helpstring (12)
-
ignore
_ deadlock= (4) -
in
_ namespace (12) - inherited (12)
- initialize (12)
-
initialize
_ copy (12) - input? (12)
-
insert
_ output (12) - inspect (67)
-
instruction
_ sequence (7) - invkind (12)
-
invoke
_ kind (12) - label (12)
- lineno (12)
- lineno= (12)
- mail (36)
-
major
_ version (12) - match (24)
-
max
_ by (48) -
method
_ added (12) -
method
_ removed (12) -
method
_ undefined (12) -
minor
_ version (12) - mkdir (18)
- mtime= (12)
- name (48)
- next (12)
-
object
_ nl (12) -
object
_ nl= (12) -
off
_ event (12) -
offset
_ vtbl (12) -
ole
_ get _ methods (12) -
ole
_ type (24) -
ole
_ type _ detail (12) -
ole
_ typelib (24) -
on
_ event (12) -
on
_ head (12) -
on
_ tail (12) - optional? (12)
-
orig
_ name= (12) - output? (12)
- owner (12)
- path (24)
- peek (12)
- peep (12)
- pid (12)
- pointer= (12)
- pop (60)
- pos (24)
- pos= (12)
- post2 (24)
- prepend (12)
- prepended (12)
- print (14)
- printf (12)
-
public
_ send (24) - putc (12)
- read (24)
- readchar (12)
- readline (12)
- readlines (12)
- ready (12)
- refine (12)
-
request
_ get (24) -
request
_ post (24) -
respond
_ to? (12) - result (12)
-
return
_ type (12) -
return
_ vtype (12) - retval? (12)
- rewind (12)
- run (12)
-
send
_ io (12) -
send
_ request (12) - separator (12)
- setgid? (12)
- setuid? (12)
- sh (12)
- shift (24)
- signal (12)
- signm (12)
-
singleton
_ method _ added (12) -
singleton
_ method _ removed (12) -
singleton
_ method _ undefined (12) -
size
_ opt _ params (12) -
size
_ params (12) -
source
_ location (12) - space (12)
- space= (12)
-
space
_ before (12) -
space
_ before= (12) - src (12)
- sticky? (12)
- sub (36)
- taint (6)
- tap (12)
- tell (24)
- times (24)
-
to
_ a (6) -
to
_ csv (4) -
to
_ enum (24) -
to
_ json (12) -
to
_ s (98) -
top
_ level (12) -
try
_ cpp (24) -
try
_ link (24) -
undef
_ method (12) - unscan (12)
- upto (12)
- value (12)
-
variable
_ kind (12) - variables (12)
- varkind (12)
- ver (12)
- version (12)
- visible? (36)
- wakeup (12)
-
with
_ index (12) -
with
_ object (24) - write (14)
- xmp (12)
- | (6)
- ~ (12)
検索結果
先頭5件
-
Encoding
:: Converter # convert(source _ string) -> String (55.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 (43.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 (37.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) の順に実行される... -
Net
:: SMTP # open _ message _ stream(from _ addr , *to _ addrs) {|f| . . . . } -> () (37.0) -
メール書き込みの準備をし、書き込み先のストリームオブジェクトを ブロックに渡します。ブロック終了後、書きこんだ結果が 送られます。
...後、書きこんだ結果が
送られます。
渡されるストリームオブジェクトは以下のメソッドを持っています。
* puts(str = '') strを出力して CR LFを出力
* print(str) strを出力
* printf(fmt, *args) sprintf(fmt,*args) を出力
* write(str)::......{|smtp|
smtp.open_message_stream('from@example.com', 'to@example.net') {|f|
f.puts 'From: from@example.com'
f.puts 'To: to@example.net'
f.puts 'Subject: test mail'
f.puts
f.puts 'This is test mail.'
}
}
ready は obsolete です。
@param from_addr 送信... -
Net
:: SMTP # ready(from _ addr , *to _ addrs) {|f| . . . . } -> () (37.0) -
メール書き込みの準備をし、書き込み先のストリームオブジェクトを ブロックに渡します。ブロック終了後、書きこんだ結果が 送られます。
...後、書きこんだ結果が
送られます。
渡されるストリームオブジェクトは以下のメソッドを持っています。
* puts(str = '') strを出力して CR LFを出力
* print(str) strを出力
* printf(fmt, *args) sprintf(fmt,*args) を出力
* write(str)::......{|smtp|
smtp.open_message_stream('from@example.com', 'to@example.net') {|f|
f.puts 'From: from@example.com'
f.puts 'To: to@example.net'
f.puts 'Subject: test mail'
f.puts
f.puts 'This is test mail.'
}
}
ready は obsolete です。
@param from_addr 送信... -
Regexp
# ~ -> Integer | nil (37.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
# =>... -
Date
# deconstruct _ keys(array _ of _ names _ or _ nil) -> Hash (31.0) -
パターンマッチに使用する名前と値の Hash を返します。
...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 "working 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 (31.0) -
パターンマッチに使用する名前と値の Hash を返します。
...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 "working day in month #{month}"
end
#=> "working day in month 1......0" が出力される
# クラスのチェックと組み合わせて利用することもできます
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... -
Enumerator
# next -> object (31.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 (31.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 (31.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!...