[前][次][番号順一覧][スレッド一覧]

ruby-changes:40550

From: shugo <ko1@a...>
Date: Wed, 18 Nov 2015 10:08:25 +0900 (JST)
Subject: [ruby-changes:40550] shugo:r52629 (trunk): * doc/syntax/refinements.rdoc: update documentation to reflect

shugo	2015-11-18 10:08:19 +0900 (Wed, 18 Nov 2015)

  New Revision: 52629

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=52629

  Log:
    * doc/syntax/refinements.rdoc: update documentation to reflect
      recent changes.
      [ci skip] [ruby-core:71466] [Misc #11681] Patch by James Adam

  Modified files:
    trunk/ChangeLog
    trunk/doc/syntax/refinements.rdoc
Index: doc/syntax/refinements.rdoc
===================================================================
--- doc/syntax/refinements.rdoc	(revision 52628)
+++ doc/syntax/refinements.rdoc	(revision 52629)
@@ -43,15 +43,21 @@ Activate the refinement with #using: https://github.com/ruby/ruby/blob/trunk/doc/syntax/refinements.rdoc#L43
 
 == Scope
 
-You may only activate refinements at top-level, not inside any class, module
-or method scope.  You may activate refinements in a string passed to
-Kernel#eval that is evaluated at top-level.  Refinements are active until the
-end of the file or the end of the eval string, respectively.
-
-Refinements are lexical in scope.  When control is transferred outside the
-scope the refinement is deactivated.  This means that if you require or load a
-file or call a method that is defined outside the current scope the refinement
-will be deactivated:
+You may activate refinements at top-level, and inside classes and modules.
+You may not activate refinements in method scope.  Refinements are activated
+until the end of the current class or module definition, or until the end of
+the current file if used at the top-level.
+
+You may activate refinements in a string passed to Kernel#eval. Refinements
+are active the end of the eval string.
+
+Refinements are lexical in scope.  Refinements are only active within a scope
+after the call to using. Any code before the using statement will not have the
+refinement activated.
+
+When control is transferred outside the scope the refinement is deactivated.
+This means that if you require or load a file or call a method that is defined
+outside the current scope the refinement will be deactivated:
 
   class C
   end
@@ -136,6 +142,26 @@ In a file: https://github.com/ruby/ruby/blob/trunk/doc/syntax/refinements.rdoc#L142
   end
   # activated here
 
+In a class:
+
+  # not activated here
+  class Foo
+    # not activated here
+    def foo
+      # not activated here
+    end
+    using M
+    # activated here
+    def bar
+      # activated here
+    end
+    # activated here
+  end
+  # not activated here
+
+Note that the refinements in M are not activated automatically if the class
+Foo is reopened later.
+
 In eval:
 
   # not activated here
@@ -182,24 +208,6 @@ called: https://github.com/ruby/ruby/blob/trunk/doc/syntax/refinements.rdoc#L208
 
   p [{1=>2}, {3=>4}].to_json # prints "[{\"1\":2},{\"3\":4}]"
 
-You may also activate refinements in a class or module definition, in which
-case the refinements are activated from the point where using is called to
-the end of the class or module definition:
-
-  # not activated here
-  class Foo
-    # not activated here
-    using M
-    # activated here
-    def foo
-      # activated here
-    end
-    # activated here
-  end
-  # not activated here
-
-Note that the refinements in M are not activated automatically even if the class
-Foo is reopened later.
 
 == Method Lookup
 
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 52628)
+++ ChangeLog	(revision 52629)
@@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Wed Nov 18 10:05:25 2015  Shugo Maeda  <shugo@r...>
+
+	* doc/syntax/refinements.rdoc: update documentation to reflect
+	  recent changes.
+	  [ci skip] [ruby-core:71466] [Misc #11681] Patch by James Adam
+
 Wed Nov 18 09:50:21 2015  Naotoshi Seo  <sonots@g...>
 
 	* test/logger/test_logdevice.rb: Fix tests of logger to make it work on

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]