ライブラリ
- ビルトイン (308)
- delegate (12)
- erb (24)
-
fiddle
/ import (12) - forwardable (48)
- json (24)
- monitor (12)
-
rdoc
/ context (24) -
rdoc
/ generator / darkfish (12) -
rdoc
/ generator / ri (12) -
rexml
/ document (12) -
shell
/ command-processor (6) - thread (2)
-
webrick
/ httpauth / digestauth (12) - win32ole (24)
クラス
- BasicObject (36)
- Data (18)
- ERB (24)
- Module (24)
- Object (96)
-
RDoc
:: Context (24) -
RDoc
:: Generator :: Darkfish (12) -
RDoc
:: Generator :: RI (12) -
REXML
:: Child (12) -
Shell
:: CommandProcessor (6) - Struct (4)
- Thread (24)
-
Thread
:: Backtrace :: Location (48) -
WIN32OLE
_ EVENT (12) -
WIN32OLE
_ TYPE (12)
モジュール
-
Fiddle
:: Importer (12) - Forwardable (48)
- JSON (12)
-
JSON
:: Generator :: GeneratorMethods :: Object (12) - Kernel (12)
- ObjectSpace (36)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - ConditionVariable (12)
- DelegateClass (12)
- DigestAuth (12)
- Location (12)
- Marshal フォーマット (12)
- MonitorMixin (12)
-
NEWS for Ruby 2
. 5 . 0 (8) -
NEWS for Ruby 3
. 0 . 0 (5) -
NEWS for Ruby 3
. 1 . 0 (4) - Ruby用語集 (12)
- [] (7)
-
_ dump (12) -
absolute
_ path (12) -
base
_ label (12) - clone (12)
-
create
_ id (12) -
def
_ class (12) -
def
_ delegator (12) -
def
_ instance _ delegator (12) -
default
_ event _ sources (12) - define (6)
-
define
_ finalizer (24) - delegate (12)
-
drb
/ extservm (12) -
drb
/ gw (12) - dup (12)
- fork (12)
- handler= (12)
-
initialize
_ classes _ and _ modules (12) -
initialize
_ copy (12) -
initialize
_ dup (12) -
initialize
_ methods _ etc (12) - inspect (12)
-
instance
_ delegate (12) -
instance
_ eval (24) -
instance
_ variable _ defined? (12) - logger (12)
-
marshal
_ dump (12) -
method
_ missing (12) - new (57)
-
rb
_ mod _ initialize (12) -
rb
_ obj _ call _ init (12) -
rb
_ thread _ initialize (12) - rdoc (12)
-
rdoc
/ generator / json _ index (12) -
rdoc
/ parser (12) -
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 3 feature (12) -
ruby 1
. 8 . 4 feature (12) -
ruby 1
. 9 feature (12) -
singleton
_ method (12) - start (12)
- struct (12)
-
to
_ json (12) -
to
_ s (12) -
undefine
_ finalizer (12) - yaml (12)
- クラス/メソッドの定義 (12)
- 演算子式 (12)
検索結果
先頭5件
-
MonitorMixin (30.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
...。
クラスに Module#include したり、オブジェクトに
Object#extend したりすることでそのクラス/オブジェクトに
モニタ機能を追加します。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin) # 配......列にモニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数
# consumer
Thread.start do
loop do
buf.synchronize do # ロックする
empty_cond.wait_while { buf.empty? } # 配列が空である間はロックを開放して待......ject#extend を使って利用する場合は
自動的に初期化されます。
//emlist[extend する例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
//}
しかし、MonitorMixin をクラス定義の際に Module#include を使って
利用する場合は、initialize メソッ... -
NEWS for Ruby 3
. 0 . 0 (24.0) -
NEWS for Ruby 3.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...語仕様の変更
* Keyword arguments are now separated from positional arguments.
Code that resulted in deprecation warnings in Ruby 2.7 will now
result in ArgumentError or different behavior. 14183
* Procs accepting a single rest argument and keywords are no longer
subject to aut......t argument and no keywords.
16166
//emlist[][ruby]{
pr = proc{|*a, **kw| [a, kw]}
pr.call([1])
# 2.7 => [[1], {}]
# 3.0 => [[[1]], {}]
pr.call([1, {a: 1}])
# 2.7 => [[1], {:a=>1}] # and deprecation warning
# 3.0 => a=>1}, {}]
//}
* Arguments forwarding (`...`) now supports leading argument......readable, IO#wait_writable, IO#read, IO#write and other related methods (e.g. IO#puts, IO#gets) may invoke the scheduler hook `#io_wait(io, events, timeout)` in a non-blocking execution context. 16786
* Kernel
* Kernel#clone when called with the `freeze: false` keyword will call `#initialize_c... -
ruby 1
. 9 feature (24.0) -
ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。
...ew]: 追加されたクラス/メソッドなど
* [compat]: 変更されたクラス/メソッドなど(互換性のある変更) (only backward-compatibility) (影響の範囲が小さいと思われる変更もこちら)
* [change]: 変更されたクラス/メソッドなど(互換性......spect
=== 2006-09-14
: digest.rb
: Digest::Base.file
=== 2006-09-13
: Hash#compare_by_identity
: Hash#compare_by_identity?
: Hash#identical
: Hash#identical?
=== 2006-09-12
: Hash#compare_by_identity
: Hash#compare_by_identity?
=== 2006-09-11
: Hash#identical
: Hash#identical?
=== 2006-08-3......hash を使用するようになりました
: Regexp#initialize でリテラルの正規表現を変更できなくなりました
: $SAFE=4 では Regexp#initialize で taint でない正規表現を変更できなくなりました
: Dir で $SAFE のセキュリティ検査を行うよう... -
logger (18.0)
-
ログを記録するためのライブラリです。
...ムをクラッシュさせるような制御不可能なエラー
: ERROR
制御可能なエラー
: WARN
警告
: INFO
一般的な情報
: DEBUG
低レベルの情報
全てのメッセージは必ずログレベルを持ちます。また Logger オブジェクトも同じように
ロ......トのログレベルを DEBUG に下げるなどという使い方をします。
==== 例
//emlist[][ruby]{
require 'logger'
logger = Logger.new(STDOUT)
logger.level = Logger::WARN
logger.debug("Created logger")
logger.info("Program started")
logger.warn("Nothing to do!")
path = "a_non_existen......Logger#add を使
用します。
1. ブロックを指定
//emlist[][ruby]{
logger.fatal { "Argument 'foo' not given." }
//}
2. 文字列を指定
//emlist[][ruby]{
logger.error "Argument #{@foo} mismatch."
//}
3. プログラム名を指定
//emlist[][ruby]{
logger.info('initialize') { "Ini... -
BasicObject
# instance _ eval {|obj| . . . } -> object (12.0) -
オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。
...れたときに
初めて instance_eval 内のメソッドが定義されます。これはメソッド定義のネストと同じです。
d:spec/def#nest_method を参照してください。
BasicObject を継承して作ったクラス内で instance_eval する場合はトップレベルの定......えることができます。
//emlist[例][ruby]{
class Foo
def initialize data
@key = data
end
private
def do_fuga
p 'secret'
end
end
some = Foo.new 'XXX'
some.instance_eval{p @key} #=> "XXX"
some.instance_eval{do_fuga } #=> "secret" # private メソッドも呼び出せる
s......imeError)
//}
//emlist[例][ruby]{
class Bar < BasicObject
def call1
instance_eval("::ENV.class")
end
def call2
instance_eval("ENV.class")
end
end
bar = Bar.new
bar.call1 # => Object
bar.call2 # raise NameError
//}
@see Module#module_eval, Kernel.#eval, BasicObject#instance_exec... -
BasicObject
# instance _ eval(expr , filename = "(eval)" , lineno = 1) -> object (12.0) -
オブジェクトのコンテキストで文字列 expr またはオブジェクト自身をブロックパラメータとするブロックを 評価してその結果を返します。
...れたときに
初めて instance_eval 内のメソッドが定義されます。これはメソッド定義のネストと同じです。
d:spec/def#nest_method を参照してください。
BasicObject を継承して作ったクラス内で instance_eval する場合はトップレベルの定......えることができます。
//emlist[例][ruby]{
class Foo
def initialize data
@key = data
end
private
def do_fuga
p 'secret'
end
end
some = Foo.new 'XXX'
some.instance_eval{p @key} #=> "XXX"
some.instance_eval{do_fuga } #=> "secret" # private メソッドも呼び出せる
s......imeError)
//}
//emlist[例][ruby]{
class Bar < BasicObject
def call1
instance_eval("::ENV.class")
end
def call2
instance_eval("ENV.class")
end
end
bar = Bar.new
bar.call1 # => Object
bar.call2 # raise NameError
//}
@see Module#module_eval, Kernel.#eval, BasicObject#instance_exec... -
NEWS for Ruby 2
. 5 . 0 (12.0) -
NEWS for Ruby 2.5.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...11547
* do/end ブロック内部で rescue/else/ensure を書けるようになりました 12906
* 文字列の式展開内部の暗黙の to_s 呼び出しにも refinements が影響するようになりました 13812
=== 組み込みクラスの更新
* Array
* Array#append を追......加 12746
* Array#prepend を追加 12746
* Data
* 非推奨になりました。C拡張のベースクラスでしたが、Rubyレベルに公開するのをやめました。3072
* Exception
* Exception#full_message を追加 14141 [実験的]
例外の文字列表現を取......* fiddle
* fileutils
* gdbm
* ipaddr
* scanf
* sdbm
* stringio
* strscan
* webrick
* zlib
* Logger
* Logger.new("| command") は意図せず、コマンドを実行していましたが、禁止されました。
Logger#initialize... -
logger (12.0)
-
ログを記録するためのライブラリです。
...ムをクラッシュさせるような制御不可能なエラー
: ERROR
制御可能なエラー
: WARN
警告
: INFO
一般的な情報
: DEBUG
低レベルの情報
全てのメッセージは必ずログレベルを持ちます。また Logger オブジェクトも同じように
ロ......トのログレベルを DEBUG に下げるなどという使い方をします。
==== 例
//emlist[][ruby]{
require 'logger'
logger = Logger.new(STDOUT)
logger.level = Logger::WARN
logger.debug("Created logger")
logger.info("Program started")
logger.warn("Nothing to do!")
path = "a_non_existen......Logger#add を使
用します。
1. ブロックを指定
//emlist[][ruby]{
logger.fatal { "Argument 'foo' not given." }
//}
2. 文字列を指定
//emlist[][ruby]{
logger.error "Argument #{@foo} mismatch."
//}
3. プログラム名を指定
//emlist[][ruby]{
logger.info('initialize') { "Ini... -
yaml (12.0)
-
構造化されたデータを表現するフォーマットであるYAML (YAML Ain't Markup Language) を扱うためのライブラリです。
...by]{
require 'yaml'
data = ["Taro san", "Jiro san", "Saburo san"]
str_r = YAML.dump(data)
str_l = <<~YAML_EOT
---
- Taro san
- Jiro san
- Saburo san
YAML_EOT
p str_r == str_l # => true
//}
//emlist[例2: 構造化されたハッシュ][ruby]{
require 'yaml'
require 'date'
str_l = <<~YA......35, birthday: 1970-01-01}
Suzuki Suneo: {
age: 13,
birthday: 1992-12-21
}
YAML_EOT
str_r = {}
str_r["Tanaka Taro"] = {
"age" => 35,
"birthday" => Date.new(1970, 1, 1)
}
str_r["Suzuki Suneo"] = {
"age" => 13,
"birthday" => Date.new(1992, 12, 21)
}
p str_r == YAML.load(str_l) #......require 'yaml'
class Foo
def initialize
@bar = "test"
end
end
p YAML.load(<<~EOS)
---
!ruby/object:Foo
bar: "test.modified"
EOS
# => #<Foo:0xf743f754 @bar="test.modified">
//}
//emlist[例2][ruby]{
require 'yaml'
module Foo
class Bar
end
end
p YAML.load(<<~EOS)
---
!ruby/o... -
演算子式 (12.0)
-
演算子式 * assign * selfassign * multiassign * range * range_cond * and * or * not * cond
...演算子式
* assign
* selfassign
* multiassign
* range
* range_cond
* and
* or
* not
* cond
//emlist[例][ruby]{
1+2*3/4
//}
プログラミングの利便のために一部のメソッド呼び出しと制御構造は演算子形
式をとります。Rubyには以下にあげ......||
.. ...
?:(条件演算子)
=(+=, -= ... )
not
低い and or
左の「高い」「低い」は演算子の優先順位です。
例えば「&&」は「||」より優先順位が高いので、以下のよ......[]= メソッド呼び出しに変換されます。
//emlist[例][ruby]{
class C
def initialize
@ary = [0,1,2,3,4,5,6,7]
end
def [](i)
@ary[i * 2]
end
def []=( i, v )
@ary[i * 2] = v
end
end
c = C.new
p c[3] # c.[]( 3 ) に変換され、その結果は 6
p c[3] = 1... -
Struct
. [](*args) -> Struct (2.0) -
(このメソッドは Struct の下位クラスにのみ定義されています) 構造体オブジェクトを生成して返します。
(このメソッドは Struct の下位クラスにのみ定義されています)
構造体オブジェクトを生成して返します。
@param args 構造体の初期値を指定します。メンバの初期値は指定されなければ nil です。
@return 構造体クラスのインスタンス。
@raise ArgumentError 構造体のメンバの数よりも多くの引数を指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
foo = Foo.new(1)
p foo.values # => [1, nil]
//} -
Struct
. new(*args) -> Struct (2.0) -
(このメソッドは Struct の下位クラスにのみ定義されています) 構造体オブジェクトを生成して返します。
(このメソッドは Struct の下位クラスにのみ定義されています)
構造体オブジェクトを生成して返します。
@param args 構造体の初期値を指定します。メンバの初期値は指定されなければ nil です。
@return 構造体クラスのインスタンス。
@raise ArgumentError 構造体のメンバの数よりも多くの引数を指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
foo = Foo.new(1)
p foo.values # => [1, nil]
//}