要約
refine のブロックの中の self のクラスです。
Refinement#import_methodsで他のモジュールからメソッドをインポートできます。
目次
- privateメソッド
継承しているメソッド
- Moduleから継承しているメソッド
-
- <
- <=
- <=>
- ===
- >
- >=
- alias_method
- ancestors
- attr
- attr_accessor
- attr_reader
- attr_writer
- autoload
- autoload?
- class_eval
- class_exec
- class_variable_defined?
- class_variable_get
- class_variable_set
- class_variables
- const_defined?
- const_get
- const_missing
- const_set
- const_source_location
- constants
- define_method
- deprecate_constant
- freeze
- include
- include?
- included_modules
- inspect
- instance_method
- instance_methods
- method_defined?
- module_eval
- module_exec
- name
- prepend
- private_class_method
- private_constant
- private_instance_methods
- private_method_defined?
- protected_instance_methods
- protected_method_defined?
- public_class_method
- public_constant
- public_instance_method
- public_instance_methods
- public_method_defined?
- remove_class_variable
- remove_method
- singleton_class?
- to_s
- undef_method
privateメソッド
import_methods(*modules) -> self
[permalink][rdoc][edit]-
モジュールからメソッドをインポートします。
Module#includeと違って、import_methods はメソッドをコピーして refinement に追加して、refinementでインポートしたメソッドを有効化します。
メソッドをコピーするため、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 import method which is not defined with Ruby code: Enumerable#drop end end