ライブラリ
- ビルトイン (505)
- delegate (11)
- erb (22)
- forwardable (44)
- json (22)
- logger (1)
- monitor (11)
- observer (11)
- openssl (22)
- psych (11)
-
rexml
/ document (22) - thread (2)
- tracer (22)
-
webrick
/ httpauth / digestauth (11) - win32ole (33)
クラス
- BasicObject (77)
- Class (44)
- Data (12)
- ERB (22)
- File (11)
- Module (22)
- Object (110)
- Proc (18)
-
REXML
:: Child (11) -
REXML
:: Parent (11) - Struct (4)
- Thread (22)
-
Thread
:: Backtrace :: Location (44) - Tracer (22)
- WIN32OLE (11)
-
WIN32OLE
_ EVENT (11) -
WIN32OLE
_ TYPE (11)
モジュール
- Enumerable (88)
- Forwardable (44)
- JSON (11)
-
JSON
:: Generator :: GeneratorMethods :: Object (11) - Kernel (11)
- ObjectSpace (33)
キーワード
- ! (11)
- != (11)
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - == (11)
- Application (1)
- BasicObject (11)
- Cipher (11)
- ConditionVariable (11)
- DelegateClass (11)
- DigestAuth (11)
- Location (11)
- Marshal フォーマット (11)
- MonitorMixin (11)
-
NEWS for Ruby 2
. 0 . 0 (11) -
NEWS for Ruby 2
. 5 . 0 (7) -
NEWS for Ruby 3
. 0 . 0 (4) -
NEWS for Ruby 3
. 1 . 0 (3) - Observable (11)
- RSA (11)
- Ruby用語集 (11)
- [] (5)
-
_ dump (11) -
absolute
_ path (11) - allocate (11)
-
base
_ label (11) -
cgi
/ session (11) -
create
_ id (11) -
def
_ class (11) -
def
_ delegator (11) -
def
_ instance _ delegator (11) -
default
_ event _ sources (11) - define (4)
-
define
_ finalizer (22) - delegate (11)
-
drb
/ extservm (11) -
drb
/ gw (11) - fork (11)
- handler= (11)
-
initialize
_ copy (11) - inspect (22)
-
instance
_ delegate (11) -
instance
_ eval (22) -
instance
_ exec (11) -
instance
_ variable _ defined? (11) -
instance
_ variable _ get (11) -
irb
/ completion (11) - logger (11)
-
marshal
_ dump (11) - max (44)
-
method
_ missing (11) - min (44)
-
ole
_ activex _ initialize (11) - path (11)
- rdoc (11)
-
rdoc
/ generator / json _ index (11) -
rexml
/ parsers / streamparser (11) -
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 2 feature (11) -
ruby 1
. 8 . 3 feature (11) -
ruby 1
. 8 . 4 feature (11) -
ruby 1
. 9 feature (11) -
set
_ get _ line _ procs (22) -
singleton
_ method (11) - start (11)
-
to
_ json (11) -
to
_ s (22) - tsort (11)
-
undefine
_ finalizer (11) - yaml (11)
-
yaml
_ tag (11) - クラス/メソッドの定義 (11)
- セキュリティモデル (11)
- 演算子式 (11)
検索結果
先頭5件
-
REXML
:: Parent . new(parent = nil) -> REXML :: Parent (18107.0) -
REXML::Parent オブジェクトを生成します。
...ドへの追加は行わないため、オブジェクト生成後に親に
適切に設定する必要があります。
通常、このメソッドは直接は使いません。継承先のクラスが適切に
このメソッド(initialize)を呼び出します。
@param parent 親ノード... -
Data
. new(**kwargs) -> Data (15270.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...= Point.new(1, 2)
p p1.x # => 1
p p1.y # => 2
p2 = Point.new(x: 3, y: 4)
p p2.x # => 3
p p2.y # => 4
//}
new に渡す引数の数がメンバの数より多い場合は new でエラーになります。
new に渡す引数の数がメンバの数より少ない場合は new では......そのまま initialize に渡されます。
ユーザが initialize のオーバーライドを通して、少ない引数のときの適切な振舞いを実装可能とするためです。
次の例ではいずれのケースでもエラーが発生していますが、
Point.new に渡した......ら2番目)のみ new でエラーが発生しており、
残りのケースではエラーの発生箇所は new ではなく initialize であることに注意してください。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
Point.new(1) # => in `initialize': missing keywo... -
Data
. new(*args) -> Data (15270.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...= Point.new(1, 2)
p p1.x # => 1
p p1.y # => 2
p2 = Point.new(x: 3, y: 4)
p p2.x # => 3
p p2.y # => 4
//}
new に渡す引数の数がメンバの数より多い場合は new でエラーになります。
new に渡す引数の数がメンバの数より少ない場合は new では......そのまま initialize に渡されます。
ユーザが initialize のオーバーライドを通して、少ない引数のときの適切な振舞いを実装可能とするためです。
次の例ではいずれのケースでもエラーが発生していますが、
Point.new に渡した......ら2番目)のみ new でエラーが発生しており、
残りのケースではエラーの発生箇所は new ではなく initialize であることに注意してください。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
Point.new(1) # => in `initialize': missing keywo... -
Struct
. new(*args , keyword _ init: nil) -> Class (15237.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" を出力します
//}
実装の都合......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) # => #<struct Point x=1, y=nil>
Point.new(y: 2) # => #<struct Point x=nil, y=2>
Point.new(z: 3) # ArgumentError (unkn......{
Point = Struct.new(:x, :y)
Point.new(x: 1, y: 2) # => #<struct Point x={:x=>1, :y=>2}, y=nil>
# warning: Passing only keyword arguments to Struct#initialize will behave differently from Ruby 3.2. Please use a Hash literal like .new({k: v}) instead of .new(k: v).
# keywor... -
Struct
. new(*args , keyword _ init: nil) {|subclass| block } -> Class (15237.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" を出力します
//}
実装の都合......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) # => #<struct Point x=1, y=nil>
Point.new(y: 2) # => #<struct Point x=nil, y=2>
Point.new(z: 3) # ArgumentError (unkn......{
Point = Struct.new(:x, :y)
Point.new(x: 1, y: 2) # => #<struct Point x={:x=>1, :y=>2}, y=nil>
# warning: Passing only keyword arguments to Struct#initialize will behave differently from Ruby 3.2. Please use a Hash literal like .new({k: v}) instead of .new(k: v).
# keywor... -
Struct
. new(*args) -> Struct (15137.0) -
(このメソッドは Struct の下位クラスにのみ定義されています) 構造体オブジェクトを生成して返します。
...なければ nil です。
@return 構造体クラスのインスタンス。
@raise ArgumentError 構造体のメンバの数よりも多くの引数を指定した場合に発生します。
//emlist[例][ruby]{
Foo = Struct.new(:foo, :bar)
foo = Foo.new(1)
p foo.values # => [1, nil]
//}... -
Object
# initialize _ copy(obj) -> object (6155.0) -
(拡張ライブラリによる) ユーザ定義クラスのオブジェクトコピーの初期化メソッド。
...し、self のインスタンス変数や特異メソッドは変化しません。
Object#clone, Object#dupの内部で使われています。
initialize_copy は、Ruby インタプリタが知り得ない情報をコピーするた
めに使用(定義)されます。例えば C 言語でクラ......clone
を再定義する必要がなくなります。
デフォルトの Object#initialize_copy は、 freeze チェックおよび型のチェックを行い self
を返すだけのメソッドです。
initialize_copy という名前のメソッドは
自動的に private に設定されます......e
obj2.initialize_copy(obj)
//}
obj2 に対してさらに obj の汚染状態、インスタンス変数、ファイナライザを
コピーすることで複製を作ります。 obj.clone は、さらに
特異メソッドのコピーも行います。
//emlist[][ruby]{
obj = Object.new
class.......allocate
obj2.initialize_copy(obj)
//}
obj2 に対してさらに obj のインスタンス変数、ファイナライザを
コピーすることで複製を作ります。 obj.clone は、さらに
特異メソッドのコピーも行います。
//emlist[][ruby]{
obj = Object.new
class <<obj... -
WIN32OLE
# ole _ activex _ initialize -> nil (6119.0) -
ActiveXコントロール用の初期化を行います。
...ActiveXコントロール用の初期化を行います。
ole_activex_initializeメソッドは、スクリプト内でActiveXコントロールを利
用できるように、オブジェクトが持つ永続化データを初期化します。
ActiveXコントロール(OCX)は、主にUI用......イ
ンターフェイスを持たない場合に通知します。
obj = WIN32OLE.new("ProgID_or_GUID_of_ActiveX_Control")
obj.ole_activex_initialize
obj.method(...)
なお、生成したOLEオートメーションサーバが永続化データの初期化を... -
Data
. [](**kwargs) -> Data (170.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...= Point.new(1, 2)
p p1.x # => 1
p p1.y # => 2
p2 = Point.new(x: 3, y: 4)
p p2.x # => 3
p p2.y # => 4
//}
new に渡す引数の数がメンバの数より多い場合は new でエラーになります。
new に渡す引数の数がメンバの数より少ない場合は new では......そのまま initialize に渡されます。
ユーザが initialize のオーバーライドを通して、少ない引数のときの適切な振舞いを実装可能とするためです。
次の例ではいずれのケースでもエラーが発生していますが、
Point.new に渡した......ら2番目)のみ new でエラーが発生しており、
残りのケースではエラーの発生箇所は new ではなく initialize であることに注意してください。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
Point.new(1) # => in `initialize': missing keywo... -
Data
. [](*args) -> Data (170.0) -
(このメソッドは Data のサブクラスにのみ定義されています) 値オブジェクトを生成して返します。
...= Point.new(1, 2)
p p1.x # => 1
p p1.y # => 2
p2 = Point.new(x: 3, y: 4)
p p2.x # => 3
p p2.y # => 4
//}
new に渡す引数の数がメンバの数より多い場合は new でエラーになります。
new に渡す引数の数がメンバの数より少ない場合は new では......そのまま initialize に渡されます。
ユーザが initialize のオーバーライドを通して、少ない引数のときの適切な振舞いを実装可能とするためです。
次の例ではいずれのケースでもエラーが発生していますが、
Point.new に渡した......ら2番目)のみ new でエラーが発生しており、
残りのケースではエラーの発生箇所は new ではなく initialize であることに注意してください。
//emlist[例][ruby]{
Point = Data.define(:x, :y)
Point.new(1) # => in `initialize': missing keywo... -
クラス/メソッドの定義 (120.0)
-
クラス/メソッドの定義 * クラス/メソッドの定義: * class * singleton_class * module * method * operator * nest_method * eval_method * singleton_method * class_method * limit * 定義に関する操作: * alias * undef * defined
...スがない。Net を include できるなどのため)
module Net
class HTTP
end
class FTP
end
end
obj = Net::HTTP.new
# あるいは
include Net
obj = HTTP.new
# 以下のような使い方は組み込みのクラスにも見られる
# 利用者は File::Constants を include する......価した式
が値を返さない場合は nil を返します。
===[a:singleton_class] 特異クラス定義
//emlist[例][ruby]{
obj = Object.new # obj = nil でも可
class << obj
def test
# ...
end
# ...
end
//}
文法:
class `<<' expr
式..
end......def initialize(x, y) # コンストラクタ
@x = x; @y = y # @がつくのがインスタンス変数(メンバ変数)
end
def ==(other_vec) # いわゆる演算子オーバーライド
other_vec.x == @x && other_vec.y == @y
end
def +(other_vec)
Vector2D.new(other_v... -
logger (96.0)
-
ログを記録するためのライブラリです。
...クトのログレベルを 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_exis......ができます(Logger.new も参照)。
1. STDERR/STDOUTに出力するように指定
//emlist[][ruby]{
require 'logger'
logger = Logger.new(STDERR)
logger = Logger.new(STDOUT)
//}
2. ログファイル名を指定
//emlist[][ruby]{
require 'logger'
logger = Logger.new('logfile.log')
//}
3. F......字列を指定
//emlist[][ruby]{
logger.error "Argument #{@foo} mismatch."
//}
3. プログラム名を指定
//emlist[][ruby]{
logger.info('initialize') { "Initializing..." }
//}
4. ログレベルを指定
//emlist[][ruby]{
logger.add(Logger::FATAL) { 'Fatal error!' }
//}
ブロック形式... -
Marshal フォーマット (90.0)
-
Marshal フォーマット フォーマットバージョン 4.8 を元に記述しています。
...dump | 親クラスのインスタンスの dump |
//}
//emlist[例 1][ruby]{
class Foo < Array # (or String, Regexp, Hash)
end
p Marshal.dump(Foo.new([nil])).unpack("x2 a a c a3 aca*")
# => ["C", ":", 8, "Foo", "[", 6, "0"]
# ^^^ (or '"', '/', '{')
//}
==== String, Regexp......//emlist[例 2: インスタンス変数あり][ruby]{
class Foo < Array # (or String, Regexp, Hash)
def initialize(obj)
@foo = false
super(obj)
end
end
p Marshal.dump(Foo.new([true])).unpack("x2 a a a c a3 aca caca4 a")
# => ["I", "C", ":", 8, "Foo", "[", 6, "T", 6, ":", 9, "@foo", "F......なるため、上記以外では、'o' になります。
(d:marshal_format#Object 参照)
//emlist[例][ruby]{
class Foo
end
p Marshal.dump(Foo.new).unpack("x2 a a c a*")
# => ["o", ":", 8, "Foo\x00"]
//}
=== 'u'
_dump、_load を定義していれば 'u' になります。
インスタンス... -
cgi
/ session (66.0) -
CGI のセッション管理を行うライブラリ。
...に、
ブラウザを終了した時点で消滅します。
=== 使い方 (生成)
require 'cgi/session'
cgi = CGI.new
session = CGI::Session.new(cgi)
CGI::Session.new に CGI オブジェクトを渡します。クライアントから渡された
セッション ID はクッキーかク......りました。
=== CGI::HtmlExtension#form の出力
CGI::Session.new 後の CGI::HtmlExtension#form は、セッション ID を
埋め込んだ隠しフィールドを自動出力するようになります。
CGI::Session.new は、これによって生成されたフォームフィールド......i'
require 'cgi/session'
class SessionDemo
def initialize
@cgi = CGI.new
File.umask(0077) # セッションファイルは誰にも読まれたくないよ
@session = CGI::Session.new(@cgi) # セッションはこうして生... -
logger (66.0)
-
ログを記録するためのライブラリです。
...クトのログレベルを 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_exis......ができます(Logger.new も参照)。
1. STDERR/STDOUTに出力するように指定
//emlist[][ruby]{
require 'logger'
logger = Logger.new(STDERR)
logger = Logger.new(STDOUT)
//}
2. ログファイル名を指定
//emlist[][ruby]{
require 'logger'
logger = Logger.new('logfile.log')
//}
3. F......字列を指定
//emlist[][ruby]{
logger.error "Argument #{@foo} mismatch."
//}
3. プログラム名を指定
//emlist[][ruby]{
logger.info('initialize') { "Initializing..." }
//}
4. ログレベルを指定
//emlist[][ruby]{
logger.add(Logger::FATAL) { 'Fatal error!' }
//}
ブロック形式... -
Data
. define(*args) -> Class (60.0) -
Data クラスに新しいサブクラスを作って、それを返します。
...[例][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", 5)
fred.age = 6 # => NoMethodError
//}
メ......get(url)
# ダミーの実装
if url == "http://example.com/"
Response.new(body: "Current time is #{Time.now}")
else
NotFound.new
end
end
end
def fetch(url)
fetcher = HTTPFetcher.new
case fetcher.get(url)
in HTTPFetcher::Response(body)
body
in HTTPFetcher::......ef greeting
"Hello #{name}!"
end
end
p Customer.new("Dave", "123 Main").greeting # => "Hello Dave!"
//}
なお、Dataのサブクラスのインスタンスを生成する際にオプション引数を使用したいときは、
initialize メソッドをオーバーライドすることで... -
Data
. define(*args) {|subclass| block } -> Class (60.0) -
Data クラスに新しいサブクラスを作って、それを返します。
...[例][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", 5)
fred.age = 6 # => NoMethodError
//}
メ......get(url)
# ダミーの実装
if url == "http://example.com/"
Response.new(body: "Current time is #{Time.now}")
else
NotFound.new
end
end
end
def fetch(url)
fetcher = HTTPFetcher.new
case fetcher.get(url)
in HTTPFetcher::Response(body)
body
in HTTPFetcher::......ef greeting
"Hello #{name}!"
end
end
p Customer.new("Dave", "123 Main").greeting # => "Hello Dave!"
//}
なお、Dataのサブクラスのインスタンスを生成する際にオプション引数を使用したいときは、
initialize メソッドをオーバーライドすることで... -
Enumerable
# max {|a , b| . . . } -> object | nil (60.0) -
ブロックの評価結果で各要素の大小判定を行い、最大の要素、もしくは最大の n 要素が入った降順の配列を返します。 引数を指定しない形式では要素が存在しなければ nil を返します。 引数を指定する形式では、空の配列を返します。
...:age
def initialize(name, age)
@name = name
@age = age
end
end
people = [
Person.new("sato", 55),
Person.new("sato", 33),
Person.new("sato", 11),
Person.new("suzuki", 55),
Person.new("suzuki", 33),
Person.new("suzuki", 11),
Person.new("tanaka", 55),
Person.new("tanaka",......33),
Person.new("tanaka", 11)
]
# 年齢が最大、名前が最小
people.max { |x, y| (x.age <=> y.age).nonzero? || y.name <=> x.name }
# => #<Person:0x007fc54b0240a0 @name="sato", @age=55>
people.max(2) { |x, y| (x.age <=> y.age).nonzero? || y.name <=> x.name }
# => [#<Person:0x007fc54b0240a0...