別のキーワード
ライブラリ
- ビルトイン (684)
キーワード
- < (12)
- <=> (12)
- ancestors (12)
-
append
_ features (12) - attr (12)
-
attr
_ accessor (4) -
attr
_ reader (4) -
attr
_ writer (4) - autoload (12)
-
class
_ eval (24) -
class
_ exec (12) -
class
_ variable _ defined? (12) -
class
_ variable _ get (12) -
class
_ variable _ set (12) -
class
_ variables (12) -
const
_ defined? (12) -
const
_ get (12) -
const
_ source _ location (12) - constants (12)
-
define
_ method (24) - include (12)
- include? (12)
- included (12)
- inspect (12)
-
instance
_ method (12) -
instance
_ methods (12) -
method
_ added (12) -
method
_ defined? (12) -
method
_ removed (12) -
method
_ undefined (12) -
module
_ eval (24) -
module
_ exec (12) - name (12)
- prepend (12)
-
prepend
_ features (12) - prepended (12)
- private (48)
-
private
_ class _ method (24) -
private
_ constant (12) -
private
_ method _ defined? (12) -
protected
_ method _ defined? (12) -
public
_ class _ method (24) -
public
_ constant (12) -
public
_ method _ defined? (12) - refine (12)
-
remove
_ class _ variable (12) -
remove
_ const (12) -
remove
_ method (12) -
singleton
_ class? (12) -
to
_ s (12) -
undef
_ method (12)
検索結果
先頭5件
-
Module
# refine(klass) { . . . } -> Module (150.0) -
引数 klass で指定したクラスまたはモジュールだけに対して、ブロックで指定した機能を提供で きるモジュールを定義します。定義した機能は Module#refine を使用せずに直 接 klass に対して変更を行う場合と異なり、限られた範囲のみ有効にできます。 そのため、既存の機能を局所的に修正したい場合などに用いる事ができます。
...モジュールだけに対して、ブロックで指定した機能を提供で
きるモジュールを定義します。定義した機能は Module#refine を使用せずに直
接 klass に対して変更を行う場合と異なり、限られた範囲のみ有効にできます。
そのた......ては以下を参照してください。
* https://magazine.rubyist.net/articles/0041/0041-200Special-refinement.html
* https://docs.ruby-lang.org/en/master/syntax/refinements_rdoc.html
定義した機能は main.using, Module#using を実行した場合のみ
有効になります。
@param......ます。
@return ブロックで指定した機能を持つ無名のモジュールを返します。
//emlist[例][ruby]{
class C
def foo
puts "C#foo"
end
end
module M
refine C do
def foo
puts "C#foo in M"
end
end
end
x = C.new
x.foo # => "C#foo"
using M
x = C.new
x... -
Module
# undef _ method(*name) -> self (150.0) -
このモジュールのインスタンスメソッド name を未定義にします。
...さい。
//emlist[例][ruby]{
class A
def ok
puts 'A'
end
end
class B < A
def ok
puts 'B'
end
end
B.new.ok # => B
# undef_method の場合はスーパークラスに同名のメソッドがあっても
# その呼び出しはエラーになる
class B
undef_method :ok
end
B.n......ッドがあると
# それが呼ばれる
class B
remove_method :ok
end
B.new.ok # => A
//}
また、undef 文と undef_method の違いは、
メソッド名を String または Symbol で与えられることです。
//emlist[例][ruby]{
module M1
def foo
end
def self.moo
undef f......oo
end
end
M1.instance_methods false #=> ["foo"]
M1.moo
M1.instance_methods false #=> []
module M2
def foo
end
def self.moo
undef_method :foo
end
end
M2.instance_methods false #=> ["foo"]
M2.moo
M2.instance_methods false #=> []
//}... -
Module
# attr(*name) -> [Symbol] (144.0) -
インスタンス変数読み取りのためのインスタンスメソッド name を定義します。
...ます。
//emlist[例][ruby]{
class User
attr :name # => [:name]
# 複数の名前を渡すこともできる
attr :id, :age # => [:id, :age]
end
//}
このメソッドで定義されるアクセスメソッドの定義は次の通りです。
//emlist[例][ruby]{
def name
@name
end
//}......た場合には、属性の書き込み用メソッド name= も同時に定義されます。
その定義は次の通りです。
//emlist[例][ruby]{
def name=(val)
@name = val
end
//}
第 2 引数 に true か false を指定する方法は非推奨です。
@param name String または Sym... -
Module
# attr(name , false) -> [Symbol] (144.0) -
インスタンス変数読み取りのためのインスタンスメソッド name を定義します。
...ます。
//emlist[例][ruby]{
class User
attr :name # => [:name]
# 複数の名前を渡すこともできる
attr :id, :age # => [:id, :age]
end
//}
このメソッドで定義されるアクセスメソッドの定義は次の通りです。
//emlist[例][ruby]{
def name
@name
end
//}......た場合には、属性の書き込み用メソッド name= も同時に定義されます。
その定義は次の通りです。
//emlist[例][ruby]{
def name=(val)
@name = val
end
//}
第 2 引数 に true か false を指定する方法は非推奨です。
@param name String または Sym... -
Module
# attr(name , true) -> [Symbol] (144.0) -
インスタンス変数読み取りのためのインスタンスメソッド name を定義します。
...ます。
//emlist[例][ruby]{
class User
attr :name # => [:name]
# 複数の名前を渡すこともできる
attr :id, :age # => [:id, :age]
end
//}
このメソッドで定義されるアクセスメソッドの定義は次の通りです。
//emlist[例][ruby]{
def name
@name
end
//}......た場合には、属性の書き込み用メソッド name= も同時に定義されます。
その定義は次の通りです。
//emlist[例][ruby]{
def name=(val)
@name = val
end
//}
第 2 引数 に true か false を指定する方法は非推奨です。
@param name String または Sym... -
Module
# <(other) -> bool | nil (138.0) -
比較演算子。self が other の子孫である場合、 true を返します。 self が other の先祖か同一のクラス/モジュールである場合、false を返します。
.../emlist[例][ruby]{
module Foo
end
class Bar
include Foo
end
class Baz < Bar
end
class Qux
end
p Bar < Foo # => true
p Baz < Bar # => true
p Baz < Foo # => true
p Baz < Qux # => nil
p Baz > Qux # => nil
p Foo < Object.new # => in `<': compared with non class/module (TypeError)... -
Module
# inspect -> String (138.0) -
モジュールやクラスの名前を文字列で返します。
...list[例][ruby]{
module A
module B
end
p B.name #=> "A::B"
class C
end
end
p A.name #=> "A"
p A::B.name #=> "A::B"
p A::C.name #=> "A::C"
# 名前のないモジュール / クラス
p Module.new.name #=> nil
p Class.new.name #=> nil
p Module.new.to_s #=> "#<Module:0x00007f9......0b09112c8>"
p Class.new.to_s #=> "#<Class:0x00007fa5c40b41b0>"
//}... -
Module
# name -> String | nil (138.0) -
モジュールやクラスの名前を文字列で返します。
...list[例][ruby]{
module A
module B
end
p B.name #=> "A::B"
class C
end
end
p A.name #=> "A"
p A::B.name #=> "A::B"
p A::C.name #=> "A::C"
# 名前のないモジュール / クラス
p Module.new.name #=> nil
p Class.new.name #=> nil
p Module.new.to_s #=> "#<Module:0x00007f9......0b09112c8>"
p Class.new.to_s #=> "#<Class:0x00007fa5c40b41b0>"
//}... -
Module
# prepend _ features(mod) -> self (138.0) -
Module#prepend から呼び出されるメソッドで、 prepend の処理の実体です。このメソッド自体は mod で指定した モジュール/クラスの継承チェインの先頭に self を追加します。
...Module#prepend から呼び出されるメソッドで、
prepend の処理の実体です。このメソッド自体は mod で指定した
モジュール/クラスの継承チェインの先頭に self を追加します。
このメソッドを上書きすることで、prepend の処理を変......れます
//emlist[例][ruby]{
class Recorder
RECORDS = []
end
module X
def self.prepend_features(mod)
Recorder::RECORDS << mod
end
end
class A
prepend X
end
class B
include X
end
class C
prepend X
end
Recorder::RECORDS # => [A, C]
//}
@see Module#prepend, Module#prepended... -
Module
# to _ s -> String (138.0) -
モジュールやクラスの名前を文字列で返します。
...list[例][ruby]{
module A
module B
end
p B.name #=> "A::B"
class C
end
end
p A.name #=> "A"
p A::B.name #=> "A::B"
p A::C.name #=> "A::C"
# 名前のないモジュール / クラス
p Module.new.name #=> nil
p Class.new.name #=> nil
p Module.new.to_s #=> "#<Module:0x00007f9......0b09112c8>"
p Class.new.to_s #=> "#<Class:0x00007fa5c40b41b0>"
//}... -
Module
# attr _ accessor(*name) -> [Symbol] (132.0) -
インスタンス変数 name に対する読み取りメソッドと書き込みメソッドの両方を 定義します。
...emlist[例][ruby]{
class User
attr_accessor :name # => [:name, :name=]
# 複数の名前を渡すこともできる
attr_accessor :id, :age # => [:id, :id=, :age, :age=]
end
//}
このメソッドで定義されるメソッドの定義は以下の通りです。
//emlist[例][ruby]{
def name...