summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzzak <zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-24 21:52:31 +0000
committerzzak <zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-24 21:52:31 +0000
commit602f7b5d8267519d910614bb099f96e432b467b7 (patch)
treea8456eb63b915f40a4b91d79cdb7af8e7a8c781c
parentdaca823c93cff7196dec71bfc2355cc32fb80468 (diff)
* vm_eval.c: [DOC] [ci skip] Improve instance_eval description when given a
block or String arguments. By @nathanl via documenting-ruby/ruby#28 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--vm_eval.c22
2 files changed, 21 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index a66c3d2fe0..cfc4380e85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun May 25 06:50:19 2014 Zachary Scott <e@zzak.io>
+
+ * vm_eval.c: [DOC] Improve instance_eval description when given a
+ block or String arguments. By @nathanl via documenting-ruby/ruby#28
+
Sun May 25 06:29:39 2014 Zachary Scott <e@zzak.io>
* array.c: [DOC] Clarify default argument for Array.new.
diff --git a/vm_eval.c b/vm_eval.c
index 96bbab3ba5..d0b2b1e37d 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -1595,24 +1595,34 @@ specific_eval(int argc, VALUE *argv, VALUE klass, VALUE self)
/*
* call-seq:
* obj.instance_eval(string [, filename [, lineno]] ) -> obj
- * obj.instance_eval {| | block } -> obj
+ * obj.instance_eval {|obj| block } -> obj
*
* Evaluates a string containing Ruby source code, or the given block,
* within the context of the receiver (_obj_). In order to set the
* context, the variable +self+ is set to _obj_ while
* the code is executing, giving the code access to _obj_'s
- * instance variables. In the version of <code>instance_eval</code>
- * that takes a +String+, the optional second and third
- * parameters supply a filename and starting line number that are used
- * when reporting compilation errors.
+ * instance variables and private methods.
+ *
+ * When <code>instance_eval</code> is given a block, _obj_ is also
+ * passed in as the block's only argument.
+ *
+ * When <code>instance_eval</code> is given a +String+, the optional
+ * second and third parameters supply a filename and starting line number
+ * that are used when reporting compilation errors.
*
* class KlassWithSecret
* def initialize
* @secret = 99
* end
+ * private
+ * def the_secret
+ * "Ssssh! The secret is #{@secret}."
+ * end
* end
* k = KlassWithSecret.new
- * k.instance_eval { @secret } #=> 99
+ * k.instance_eval { @secret } #=> 99
+ * k.instance_eval { the_secret } #=> "Ssssh! The secret is 99."
+ * k.instance_eval {|obj| obj == self } #=> true
*/
VALUE