Hi, 2010/11/26 Shugo Maeda <shugo / ruby-lang.org>: >>> I guess Module#refine works the same as using_refine in this case. >> >> Hmm. ¨Βθεξ¬ χθεξ ξο βμογισ ηιφετο Νοδυμε£ςεζιξε¬ θοαβου>> adding an implicit block that includes the outer module? >> >> ¨ΒοδυμΖοοΕψτ >> ¨Βεζιξε¨Ζοο© >> .. >> ¨Βξδ >> >> (equivalent to) >> >> ¨ΒοδυμΖοοΕψτ >> ¨Βεζιξε¨Ζοο© ιξγμυδΖοοΕψτ >> .. >> ¨Βξδ > > Could you tell me why you need this feature? Because it requires less indentation, I thought. But I found out that it has a problem of [ruby-core:33386] (1)... >>> I don't think we need new keywords even if it is a big change, >>> because some essential features such as module inclusion >>> have no keyword in Ruby. >> >> Indeed. ¨Βυτ γοξφεξτιοξαμμωεσσεξτιαζεατυςεσ τθατ ιξφομφ>> code block (such as class/module definition, method definition >> and control statements) have their special keywords. > > I guess that most of these constructs have reasons why they need > keywords and special syntax. I don't think so. "class Foo; end" can be written as "Foo = Class.new { }" (though there are indeed subtle differences between them). > If refine is a keyword, there is one good thing. ¨Βδοξ§ξεεδ ’δο’ > after class names. > > ¨ΒεζιξΖιψξυν > .. > ¨Βξδ The API design that "def" statements are put in a Ruby's block, is slightly weird (for me). I guess that there is no precedent of such a style in Ruby's embedded featues, except meta programming (such as Class.new and class_eval). From now on, does Ruby encourage such a style in casual use? -- Yusuke Endoh <mame / tsg.ne.jp>