From: shevegen@... Date: 2018-01-09T16:38:38+00:00 Subject: [ruby-core:84779] [Ruby trunk Feature#14344] refine at class level Issue #14344 has been updated by shevegen (Robert A. Heiler). I like the proposed syntax. Syntax is one major reason for me, oddly enough, to not use refinements. In particular the "using" clause felt weird, so I like changes (improvements?) to the syntax. I think your syntax suggestion is better than the status quo too. However had, I am saying all of this without really having used refinements extensively (other than in test.rb files), so I am essentially not qualified to comment really. I'd be inclined to use your suggestion more than the "using" variant, though. ;) (There was some presentation at ruby or railsconf about someone talking about nobody using refinements or so, a few years ago perhaps. A bit like the old "nobody knows nobu", which isn't true by now anymore either. Either way I think people should comment who use refinements a lot too, since they should be able to consider the impact of the changed syntax proposal.) ---------------------------------------- Feature #14344: refine at class level https://bugs.ruby-lang.org/issues/14344#change-69495 * Author: kddeisz (Kevin Deisz) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I rely on refinements a lot, but don't want to keep writing `Module.new` in code. I'm proposing `Object::refine`, which would create an anonymous module behind the scenes with equivalent functionality. So: ~~~ ruby class Test using Module.new { refine String do def refined? true end end } end ~~~ would become ~~~ ruby class Test refine String do def refined? true end end end ~~~ It's a small change, but reads a lot more clearly. Thoughts? -- https://bugs.ruby-lang.org/ Unsubscribe: