diff options
author | Shugo Maeda <[email protected]> | 2023-07-14 15:13:14 +0900 |
---|---|---|
committer | Shugo Maeda <[email protected]> | 2023-07-31 17:23:17 +0900 |
commit | a542512b7c394847a488e9b94d9defebe26003ce (patch) | |
tree | 287657083fba9728d52407d0d224f3a0497cfebc /eval.c | |
parent | cfd7729ce7a31c8b6ec5dd0e99c67b2932de4732 (diff) |
Add Refinement#target and deprecate Refinement#refined_class
[Feature #19714]
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/8075
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 20 |
1 files changed, 17 insertions, 3 deletions
@@ -1346,9 +1346,9 @@ rb_using_module(const rb_cref_t *cref, VALUE module) /* * call-seq: - * refined_class -> class + * target -> class * - * Return the class refined by the receiver. + * Return the class or module refined by the receiver. */ VALUE rb_refinement_module_get_refined_class(VALUE module) @@ -1359,6 +1359,19 @@ rb_refinement_module_get_refined_class(VALUE module) return rb_attr_get(module, id_refined_class); } +/* + * call-seq: + * refined_class -> class + * + * Return the class refined by the receiver. + */ +static VALUE +rb_refinement_refined_class(VALUE module) +{ + rb_warn_deprecated_to_remove("3.4", "Refinement#refined_class", "Refinement#target"); + return rb_refinement_module_get_refined_class(module); +} + static void add_activated_refinement(VALUE activated_refinements, VALUE klass, VALUE refinement) @@ -2067,7 +2080,8 @@ Init_eval(void) rb_mod_s_used_refinements, 0); rb_undef_method(rb_cClass, "refine"); rb_define_private_method(rb_cRefinement, "import_methods", refinement_import_methods, -1); - rb_define_method(rb_cRefinement, "refined_class", rb_refinement_module_get_refined_class, 0); + rb_define_method(rb_cRefinement, "target", rb_refinement_module_get_refined_class, 0); + rb_define_method(rb_cRefinement, "refined_class", rb_refinement_refined_class, 0); rb_undef_method(rb_cRefinement, "append_features"); rb_undef_method(rb_cRefinement, "prepend_features"); rb_undef_method(rb_cRefinement, "extend_object"); |