[#33640] [Ruby 1.9-Bug#4136][Open] Enumerable#reject should not inherit the receiver's instance variables — Hiro Asari <redmine@...>

Bug #4136: Enumerable#reject should not inherit the receiver's instance variables

10 messages 2010/12/08

[#33667] [Ruby 1.9-Bug#4149][Open] Documentation submission: syslog standard library — mathew murphy <redmine@...>

Bug #4149: Documentation submission: syslog standard library

11 messages 2010/12/10

[#33683] [feature:trunk] Enumerable#categorize — Tanaka Akira <akr@...>

Hi.

14 messages 2010/12/12
[#33684] Re: [feature:trunk] Enumerable#categorize — "Martin J. Dst" <duerst@...> 2010/12/12

[#33687] Towards a standardized AST for Ruby code — Magnus Holm <judofyr@...>

Hey folks,

23 messages 2010/12/12
[#33688] Re: Towards a standardized AST for Ruby code — Charles Oliver Nutter <headius@...> 2010/12/12

On Sun, Dec 12, 2010 at 9:55 AM, Magnus Holm <judofyr@gmail.com> wrote:

[#33689] Re: Towards a standardized AST for Ruby code — "Haase, Konstantin" <Konstantin.Haase@...> 2010/12/12

On Dec 12, 2010, at 17:46 , Charles Oliver Nutter wrote:

[#33763] [Ruby 1.9-Bug#4168][Open] WeakRef is unsafe to use in Ruby 1.9 — Brian Durand <redmine@...>

Bug #4168: WeakRef is unsafe to use in Ruby 1.9

43 messages 2010/12/17

[#33815] trunk warnflags build issue with curb 0.7.9? — Jon <jon.forums@...>

As this may turn out to be a 3rd party issue rather than a bug, I'd like some feedback.

11 messages 2010/12/22

[#33833] Ruby 1.9.2 is going to be released — "Yuki Sonoda (Yugui)" <yugui@...>

-----BEGIN PGP SIGNED MESSAGE-----

15 messages 2010/12/23

[#33846] [Ruby 1.9-Feature#4197][Open] Improvement of the benchmark library — Benoit Daloze <redmine@...>

Feature #4197: Improvement of the benchmark library

15 messages 2010/12/23

[#33910] [Ruby 1.9-Feature#4211][Open] Converting the Ruby and C API documentation to YARD syntax — Loren Segal <redmine@...>

Feature #4211: Converting the Ruby and C API documentation to YARD syntax

10 messages 2010/12/26

[#33923] [Ruby 1.9-Bug#4214][Open] Fiddle::WINDOWS == false on Windows — Jon Forums <redmine@...>

Bug #4214: Fiddle::WINDOWS == false on Windows

15 messages 2010/12/27

[ruby-core:33519] Re: [Ruby 1.9-Feature#4085][Open] Refinements and nested methods

From: Shugo Maeda <shugo@...>
Date: 2010-12-02 12:55:16 UTC
List: ruby-core #33519
Hi,

2010/11/30 Yusuke ENDOH <mame@tsg.ne.jp>:
>>> Because it requires less indentation, I thought.
>>
>> I see. efine without blocks looks confusing for me because it works
>> different from refine with a block.
>
> Maybe another name is needed?
>
> I think that the short name `refine' is more appropriate to the non-
> block style than the block style because I believe the non-block
> style is more suitable for casual use. t requires less indentation,
> and it complies with traditional style (like Module#include).

It doesn't make sense because Module#include is a very different
feature from refine.

My proposal is to use modules as namespaces for refinements.  So
indentation is a necessary evil.  Otherwise, we need syntax like Java
packages and one file for each package.

> A longer (more "meta-programming-like") name would be appropriate to
> the block style, such as Module#refine_class, #refine_class_eval,
> #class_eval_with_refinement.

Meta-programming means programming on programs, so the non-block style
is also a meta-programming feature.  Why should only the block style
be named more "meta-programming-like"?

>>> 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).
>>
>> "refine Foo do end" is different from "Foo = Class.new {}" because
>> "refine Foo do end" looks good, but "Foo = Class.new {}" doesn't.
>> I think how it looks is more important than whether it uses keywords or not.
>
> "refine Foo do def ... end end" looks not so good to me.

Could you tell me why

  refine Foo
    def bar; end
  end

is good but

  refine Foo do
    def bar; end
  end

is not so good?

They look similar for me.  The latter has "do", but it seems a good
word in this context.
# I'm not sure because I'm not a good English writer.

>>> The API design that "def" statements are put in a Ruby's block,
>>> is slightly weird (for me).  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?
>>
>> I think Module#refine is a meta programming feature like class_eval,
>> and most application programmers need not use it directly.
>
> I guess you think so because we are not used to the feature yet.
> If it is really just a meta-programming feature, the name should be
> more "meta-programming-like".

I don't know why meta-programming features should have long names.
In Ruby, meta-programming is encouraged, and meta-programming features
sometimes have a short name such as eval, but rarely have a keyword.

> The non-block style has a precedent (Module#include), so, if it is
> adopted, I agree that any new keyword is not needed. therwise, I
> prefer a new keyword to a new weird (to me) coding style.

Are precedents so important for innovations?

-- 
Shugo Maeda

In This Thread