# Rdoc defines Hash#method\_missing

**URL:** <https://www.ruby-forum.com/t/rdoc-defines-hash-method-missing/143328>\
**Category:** Development\
**Created:** [July 17, 2008, 12:47pm UTC](https://www.ruby-forum.com/t/rdoc-defines-hash-method-missing/143328 "2008-07-17T12:47:07Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [July 17, 2008, 12:47pm UTC](https://www.ruby-forum.com/t/rdoc-defines-hash-method-missing/143328/1 "2008-07-17T12:47:07Z")

</div>

e$B1sF#$G$9!#e(B

make test-all e$B$N0J2\<$N%(%i!\<$K$D$$$F$G$9!#e(B

1. Error:  
test\_starttls(IMAPTest):  
IOError: closed stream  
/home/mame/work/ruby19/ruby/.ext/common/openssl/buffering.rb:240:in  
`close' /home/mame/work/ruby19/ruby/.ext/common/openssl/buffering.rb:240:in`sysclose’  
/home/mame/work/ruby19/ruby/.ext/common/openssl/buffering.rb:240:in  
`close' /home/mame/work/ruby19/ruby/lib/net/imap.rb:296:in`disconnect’  
/home/mame/work/ruby19/ruby/test/net/imap/test\_imap.rb:189:in  
`ensure in starttls_test' /home/mame/work/ruby19/ruby/test/net/imap/test_imap.rb:189:in`starttls\_test’  
/home/mame/work/ruby19/ruby/test/net/imap/test\_imap.rb:72:in  
`test\_starttls’

e$B$3$N%(%i!\<$N860x$O!"e(Blib/rdoc/ri/driver.rb e$B$,e(B Hash e$B$Ke(B  
method\_missing e$B$re(B  
e$BDj5A$7$F$$$k$3$H$G$9!#e(B

class Hash # HACK don’t add stuff to Hash.  
def method\_missing method, \*args  
self[method.to\_s]  
end

e$B$3$N$;$$$Ge(B lib/net/imap.rb e$B$Ne(B starttls e$B$NCf$Ne(B

begin  
# for backward compatibility  
certs = options.to\_str  
options = create\_ssl\_params(certs, verify)  
rescue NoMethodError  
end

e$B$H$$$&%3!\<%I$,A[Dj30$NF0:n$r$7$^$9e(B (options e$B$,%O%C%7%ee(B)  
e$B!#e(B

net/imap.rb e$BB&$GBP=h$9$k$N$O4JC1$G$9$,!"$G$-$l$Pe(B method\_missing  
e$B$re(B  
e$B\<h$j=|$$$?J}$,$$$$$H;W$$$^$9!#e(BOpenStruct  
e$B$r;H$&$h$&$K=q$-D\>$9$+!"e(B  
hash.foo e$B$re(B hash[“foo”]  
e$B$K=q$-49$($l$P$h$$$H;W$$$^$9$,!"F0E\*7?IU$1$Ne(B  
Ruby e$B$G$O$$$+$K$b=$@5O3$l$,=P$=$&$G$9!#e(Brdoc  
e$B$K\>$7$$?M$K=$@5$7$Fe(B  
e$B$[$7$$$G$9!#e(B

# Index: lib/net/imap.rb

— lib/net/imap.rb (revision 18104)  
+++ lib/net/imap.rb (working copy)  
@@ -333,11 +333,10 @@  
def starttls(options = {}, verify = true)  
send\_command(“STARTTLS”) do |resp|  
if resp.kind\_of?(TaggedResponse) && resp.name == “OK”

- 

```
     begin

```

- 

```
     if options.respond_to?(:to_str)
       # for backward compatibility
       certs = options.to_str
       options = create_ssl_params(certs, verify)

```

- 

```
     rescue NoMethodError
     end
     start_tls_session(options)
   end

```

# MVM e$B$,$G$-$F!"%i%$%V%i%j$4$H$KJL$Ne(B VM

e$B$rN)$F$F%F%9%H$rAv$i$;$l$Pe(B

# e$B2r7h$9$k$N$+$J!#e(B
