別のキーワード
ライブラリ
- ビルトイン (99)
- bigdecimal (24)
- psych (12)
- socket (12)
- tracer (12)
クラス
- BigDecimal (24)
- Data (3)
- IO (48)
- Object (12)
- Socket (12)
- Struct (12)
- SystemCallError (12)
- Thread (24)
- Tracer (12)
キーワード
-
add
_ filter (12) - define (3)
-
for
_ fd (12) - gethostbyname (12)
-
handle
_ interrupt (12) - mode (24)
- new (24)
- open (24)
-
pending
_ interrupt? (12) -
yaml
_ tag (12)
検索結果
先頭5件
-
SystemCallError
. ===(other) -> bool (18201.0) -
other が SystemCallError のサブクラスのインスタンスで、 かつ、other.errno の値が self::Errno と同じ場合に真を返します。そうでない場合は偽を返します。
...真を返します。そうでない場合は偽を返します。
従って、特に other が self.kind_of?(other) である場合には Module#=== と同様に真を返します。
その他に、 Errno::EXXX::Errno == Errno::EYYY::Errno である場合にも Errno::EXXX == Errno::EYYY.new は......捕捉するために Module#=== を上書きしていました。
しかし、Ruby 1.8 のリリース時点では同じ errno 値を持つクラスは一つしか作られないようになりました。そのため現在はこのメソッドは実質上 Module#=== と同じ意味しかありま......せん。
@param other 任意のオブジェクト
例
p Errno::EAGAIN::Errno
p Errno::EWOULDBLOCK::Errno
begin
raise Errno::EAGAIN, "pseudo error"
rescue Errno::EWOULDBLOCK
p $!
end
# => 11
11
#<Errno::EAGAIN: pseudo error>... -
Socket
. gethostbyname(host) -> Array (6113.0) -
ホスト名または IP アドレス(指定方法に関しては lib:socket#host_formatを参照) からホストの情報を返します。
...IP アドレス(指定方法に関しては
lib:socket#host_formatを参照)
からホストの情報を返します。
@param host 文字列でホストを指定します。
@return ホスト情報を含んだ4要素の配列を返します。
=== 返り値のホスト情報について
ホ......ddr_in で unpack できます。
=== 使用例
irb(main):009:0> require 'socket'
irb(main):009:0> Socket.gethostbyname("210.251.121.214")
["helium.ruby-lang.org", ["helium"], 2, "\322\373y\326"]
irb(main):009:0> Socket.unpack_sockaddr_in(Socket.gethostbyname("210.251.121.214")[3])[1]... -
BigDecimal
. mode(s) -> Integer | nil (3013.0) -
BigDecimal の計算処理の制御方法を設定、確認します。
...
BigDecimal の計算処理の制御方法を設定、確認します。
第2引数を省略、または nil を指定すると現状の設定値を返します。
@param s 制御方法の設定、確認を行う項目を BigDecimal::EXCEPTION_*、
BigDecimal::ROUND_MODE のいずれか......で指定します。
@param v 引数 s が BigDecimal::ROUND_MODE の場合は
BigDecimal::ROUND_MODE 以外の BigDecimal::_ROUND* のいず
れかを指定します。指定した丸め処理が有効になります。
それ以外の場合は、true、false、nil の......す。
=== 例外処理
計算結果が非数(NaN)やゼロによる除算になったときの処理を定義することができます。
//emlist[][ruby]{
require 'bigdecimal'
flag = false # デフォルト値
f = BigDecimal::mode(BigDecimal::EXCEPTION_NaN,flag)
f = BigDecimal::mode(BigDecima... -
BigDecimal
. mode(s , v) -> Integer | nil (3013.0) -
BigDecimal の計算処理の制御方法を設定、確認します。
...
BigDecimal の計算処理の制御方法を設定、確認します。
第2引数を省略、または nil を指定すると現状の設定値を返します。
@param s 制御方法の設定、確認を行う項目を BigDecimal::EXCEPTION_*、
BigDecimal::ROUND_MODE のいずれか......で指定します。
@param v 引数 s が BigDecimal::ROUND_MODE の場合は
BigDecimal::ROUND_MODE 以外の BigDecimal::_ROUND* のいず
れかを指定します。指定した丸め処理が有効になります。
それ以外の場合は、true、false、nil の......す。
=== 例外処理
計算結果が非数(NaN)やゼロによる除算になったときの処理を定義することができます。
//emlist[][ruby]{
require 'bigdecimal'
flag = false # デフォルト値
f = BigDecimal::mode(BigDecimal::EXCEPTION_NaN,flag)
f = BigDecimal::mode(BigDecima... -
Object
. yaml _ tag(tag) -> () (3007.0) -
クラスと tag の間を関連付けます。
...uby のオブジェクトに
変換したりその逆をしたりすることができます。
@param tag 対象のクラスに関連付けるタグの文字列
=== Example
require 'psych'
class Foo
def initialize(x)
@x = x
end
attr_reader :x
end
# Dumps Ruby ob......ew(3))
# =>
# --- !ruby/object:Foo
# x: 3
# Registers tag with class Foo
Foo.yaml_as("tag:example.com,2013:foo")
# ... and dumps the object of Foo class
Psych.dump(Foo.new(3), STDOUT)
# =>
# --- !<tag:example.com,2013:foo>
# x: 3
# Loads the object from the tagged YAML... -
IO
. open(fd , mode = "r" , **opts) {|io| . . . } -> object (119.0) -
オープン済みのファイルディスクリプタ fd に対する新しい IO オブジェクトを生成して返します。
...とともに fd はクローズされます。ブロックの結果を返します。
IO.new, IO.for_fd はブロックを受け付けません。
=== キーワード引数
このメソッドは以下のキーワード引数を利用できます。
* :mode mode引数と同じ意味です
* :ext......部エンコーディングを指定します。
* :textmode 真を渡すと mode の "t" と同じ意味になります。
* :binmode 真を渡すと mode の "b" と同じ意味になります。
* :autoclose 偽を渡すと close時/GCでのファイナライザ呼出時に fd を close し......ドでのファイルオープン][ruby]{
io = IO.new(IO.sysopen("testfile"))
io.class # => IO
io.close
//}
//emlist[例:IO.for_fd による読み込み・バイナリモードでのファイルオープン][ruby]{
IO.binwrite("testfile", "\xBF\xAA\x16\x04.\b\xCB\x12\xACoeQ\xFDv2\xCF9+\x81\x18")
io... -
Struct
. new(*args) {|subclass| block } -> Class (119.0) -
Struct クラスに新しいサブクラスを作って、それを返します。
...れを返します。
サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age = 6
printf "name:%s age:%d", fred.name, fred.age
#=> "name:fred age:6" を......方が良いでしょう。
したがって、メンバ名は Symbol で指定するのが無難です。
@param args 構造体を定義するための可変長引数。String または Symbol を指定します。
//emlist[例][ruby]{
Point = Struct.new(:x, :y, keyword_init: true) # => Point(keyw......nown keywords: z)
//}
=== 第一引数が String の場合
args[0] が String の場合、クラス名になるので、大文字で始まる必要
があります。つまり、以下のような指定はエラーになります。
//emlist[例][ruby]{
p Struct.new('foo', 'bar')
# => -:1:in `new... -
Struct
. new(*args , keyword _ init: false) {|subclass| block } -> Class (119.0) -
Struct クラスに新しいサブクラスを作って、それを返します。
...れを返します。
サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age = 6
printf "name:%s age:%d", fred.name, fred.age
#=> "name:fred age:6" を......は Symbol で指定するのが無難です。
@param args 構造体を定義するための可変長引数。String または Symbol を指定します。
@param keyword_init true を指定すると、キーワード引数で初期化する構造体を定義します。
//emlist[例][ruby]{
Poin......nown keywords: z)
//}
=== 第一引数が String の場合
args[0] が String の場合、クラス名になるので、大文字で始まる必要
があります。つまり、以下のような指定はエラーになります。
//emlist[例][ruby]{
p Struct.new('foo', 'bar')
# => -:1:in `new... -
Struct
. new(*args , keyword _ init: nil) {|subclass| block } -> Class (119.0) -
Struct クラスに新しいサブクラスを作って、それを返します。
...れを返します。
サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。
//emlist[例][ruby]{
dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age = 6
printf "name:%s age:%d", fred.name, fred.age
#=> "name:fred age:6" を......Symbol で指定するのが無難です。
@param args 構造体を定義するための可変長引数。String または Symbol を指定します。
@param keyword_init true を指定すると、キーワード引数で初期化する構造体を定義します。
Ruby 3.1......出るため、
従来の挙動を期待する構造体には明示的に false を指定してください。
//emlist[例][ruby]{
Point = Struct.new(:x, :y, keyword_init: true) # => Point(keyword_init: true)
Point.new(x: 1, y: 2) # => #<struct Point x=1, y=2>
Point.new(x: 1)......ためだと考えた方が良いでしょう。
したがって、メンバ名は Symbol で指定するのが無難です。
@param args 構造体を定義するための可変長引数。String または Symbol を指定します。
@param keyword_init 構造体クラスのインスタンスを......: キーワード引数のみ使用できる
* false: キーワード引数は使用できず、位置引数のみ使用できる
//emlist[例][ruby]{
Point1 = Struct.new(:x, :y)
Point1.new(1, 2) # => #<struct Point1 x=1, y=2>
Point1.new(x: 1, y: 2) # => #<struct Point1 x=1, y=... -
Thread
. handle _ interrupt(hash) { . . . } -> object (113.0) -
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。
...がキー、割り込みのタイミングを指定する
Symbol が値の Hash を指定します。
値の内容は以下のいずれかです。
: :immediate
すぐに割り込みます。
: :on_blocking
ブロッキング処理(後述)の間は割り込みが発......は、読み込み処理や書き込み処理のような呼び出し元
のスレッドをブロックするような処理を意味します。CRuby の実装では、GVL
を解放して実行する処理は全てブロッキング処理に含まれます。
また、マスクされた非同期......す。
@return ブロックの評価結果を返します。
@raise ArgumentError ブロックを指定しなかった場合に発生します。
=== 注意
非同期割り込みの利用は難しいため、スレッド間での通信を実現する場合はま
ずはキューのような他の... -
Data
. define(*args) {|subclass| block } -> Class (107.0) -
Data クラスに新しいサブクラスを作って、それを返します。
...ッドが定義されています。
//emlist[例][ruby]{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred", 5)
p fred.name # => "Fred"
p fred.age # => 5
//}
メンバの値を書き換えることはできません。
//emlist[例][ruby]{
Dog = Data.define(:name, :age)
fred = Dog.new("Fred",......ターンマッチに利用できます。
//emlist[例][ruby]{
class HTTPFetcher
Response = Data.define(:body)
NotFound = Data.define
def get(url)
# ダミーの実装
if url == "http://example.com/"
Response.new(body: "Current time is #{Time.now}")
else
NotFound.new......e(body)
body
in HTTPFetcher::NotFound
:NotFound
end
end
p fetch("http://example.com/") # => "Current time is 2023-01-10 10:00:53 +0900"
p fetch("http://example.com/404") # => :NotFound
//}
@param args 値オブジェクトのクラスを定義するための可変長引数。Symbo... -
Thread
. pending _ interrupt?(error = nil) -> bool (107.0) -
非同期割り込みのキューが空かどうかを返します。
...せる。
def Thread.kick_interrupt_immediately
Thread.handle_interrupt(Object => :immediate) {
Thread.pass
}
end
=== 使い方
th = Thread.new{
Thread.handle_interrupt(RuntimeError => :on_blocking){
while true
...
# ここまでで割り込みが発......ead.handle_interrupt(Object => :immediate){}
end
...
end
}
}
...
th.raise # スレッド停止。
この例は以下のように記述する事もできます。
flag = true
th = Thread.new{
Thread.handle_interrupt(RuntimeError => :on_blocking){
while......true
...
# ここまでで割り込みが発生しても安全な状態になった。
break if flag == false
...
end
}
}
...
flag = false # スレッド停止
@see Thread#pending_interrupt?, Thread.handle_interrupt...