diff options
author | zzak <zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-24 21:52:31 +0000 |
---|---|---|
committer | zzak <zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-24 21:52:31 +0000 |
commit | 602f7b5d8267519d910614bb099f96e432b467b7 (patch) | |
tree | a8456eb63b915f40a4b91d79cdb7af8e7a8c781c /vm_eval.c | |
parent | daca823c93cff7196dec71bfc2355cc32fb80468 (diff) | |
download | ruby-602f7b5d8267519d910614bb099f96e432b467b7.tar.gz |
* 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
Diffstat (limited to 'vm_eval.c')
-rw-r--r-- | vm_eval.c | 22 |
1 files changed, 16 insertions, 6 deletions
@@ -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 |