るりまサーチ

最速Rubyリファレンスマニュアル検索!
77件ヒット [1-77件を表示] (0.040秒)
トップページ > クエリ:Module[x] > クエリ:using[x] > クエリ:refine[x]

別のキーワード

  1. module attr
  2. module define_method
  3. module new
  4. module module_eval
  5. module constants

ライブラリ

クラス

オブジェクト

検索結果

Module#refine(klass) { ... } -> Module (39276.0)

引数 klass で指定したクラスだけに対して、ブロックで指定した機能を提供で きるモジュールを定義します。定義した機能は Module#refine を使用せずに直 接 klass に対して変更を行う場合と異なり、限られた範囲のみ有効にできます。 そのため、既存の機能を局所的に修正したい場合などに用いる事ができます。

...定義した機能は Module#refine を使用せずに直
接 klass に対して変更を行う場合と異なり、限られた範囲のみ有効にできます。
そのため、既存の機能を局所的に修正したい場合などに用いる事ができます。

refine
ments 機能の詳細...
...てください。

* 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 klass 拡張する対象...
...機能を持つ無名のモジュールを返します。


//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.foo # => "C#foo in M"
//}

@see main.using...

Module#using(module) -> self (39226.0)

引数で指定したモジュールで定義された拡張を現在のクラス、モジュールで有 効にします。

...ルで有
効にします。

有効にした拡張の有効範囲については以下を参照してください。

* https://docs.ruby-lang.org/en/master/syntax/refinements_rdoc.html#label-Scope

@param module 有効にするモジュールを指定します。

@see Module#refine, main.using...

Module.used_modules -> [Module] (27259.0)

現在のスコープで using されているすべてのモジュールを配列で返します。 配列内のモジュールの順番は未定義です。

...スコープで using されているすべてのモジュールを配列で返します。
配列内のモジュールの順番は未定義です。

//emlist[例][ruby]{
module
A
refine
Object do
end
end

module
B
refine
Object do
end
end

using
A
using
B
p Module.used_modules
#=> [B, A]
/...

main.using(module) -> self (18250.0)

引数で指定したモジュールで定義された拡張を有効にします。

.../refinements_rdoc.html#label-Scope

@param module 有効にするモジュールを指定します。

//emlist[例][ruby]{
module
Sloth
refine
String do
def downcase
self
end
end
end

"ABC".downcase # => "abc"

using
Sloth

"ABC".downcase # => "ABC"
//}

@see Module#refine, Module...
...#using...

Refinement#import_methods(*modules) -> self (3142.0)

モジュールからメソッドをインポートします。

...モジュールからメソッドをインポートします。

Module
#includeと違って、import_methods はメソッドをコピーして
refine
ment に追加して、refinementでインポートしたメソッドを有効化します。

メソッドをコピーするため、Rubyコードで...
...とに注意してください。

//emlist[][ruby]{
module
StrUtils
def indent(level)
' ' * level + self
end
end

module
M
refine
String do
import_methods StrUtils
end
end

using
M
p "foo".indent(3) # => " foo"

module
M
refine
String do
import_methods Enumerable
# Can't...

絞り込み条件を変える

NEWS for Ruby 2.1.0 (108.0)

NEWS for Ruby 2.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

...l
* 追加: Kernel#singleton_method(Object#singleton_method)

* Module
* 追加: Module#using, which activates refinements of the specified module only
in the current class or module definition.
* 追加: Module#singleton_class? レシーバーが特異クラスであれば true...
...バーが通常のクラスやモジュールであれば false を返します。
* 拡張: Module#refine はもはや実験的な機能でなくなりました
* 拡張: Module#include と Module#prepend はパブリックメソッドになりました

* Mutex
* Mutex#owned? はも...
...long long 型を表します

* toplevel
* main.using はもはや実験的な機能ではありません。
The method activates refinements in the ancestors of the argument module to
support refinement inheritance by Module#include

=== 組み込みクラスの互換性 (機能...

Ruby用語集 (102.0)

Ruby用語集 A B C D E F G I J M N O R S Y

...てドキュメントの HTML を生成する。

参照:rdoc

: refinement
既存のクラスやモジュールを特定のスコープでのみ改変する仕組み。

参照:Module#refineModule#using、main.using

: Ruby Central
Rubyのサポートと世界の Ruby コミュニテ...
...むやみに改変することは思わぬバグを
生みやすい。
そのため、改変の効果を局所化する refinement という機構がある。

refinement

: オペランド
: operand
演算子式において演算の対象となる式。式 a + b * c において、+ の...
...ェクトの振る舞いを規定するもの。
Ruby ではクラスも Class クラスのオブジェクトである。

Class クラスは Module クラスの下位クラスであり、モジュールとしての性質も
おおむね受け継いでいる。ただし、一部のメソッド...

NEWS for Ruby 2.0.0 (72.0)

NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

...* Module
* 追加: Module#prepend 指定したモジュールを self の継承チェインの先頭に
「追加する」ことで self の定数、メソッド、モジュール変数を「上書き」します。
* 追加: Module.prepended, Module.prepend_features は Module.inc...
...luded と Module.append_features に似ています
* 追加(実験的): Module#refine, スコープを限定してクラスやモジュールを拡張します。
* 拡張: Module#define_method は UnboundMethod を受け付けるようになりました
* 拡張: Module#const_get 修...
...t implementation.

* toplevel
* added method:
* added main.define_method which defines a global function.
* added main.using, which imports refinements into the current file or
eval string. [experimental]

=== 組み込みクラスの互換性 (機能追加とバグ修正...