[#81492] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — normalperson@...

Issue #13618 has been reported by normalperson (Eric Wong).

12 messages 2017/06/01

[ruby-core:81564] [Ruby trunk Feature#13630] :[] method should accept block in nice syntax

From: shevegen@...
Date: 2017-06-03 16:39:15 UTC
List: ruby-core #81564
Issue #13630 has been updated by shevegen (Robert A. Heiler).


I agree. I always wondered about this too.

I did not make a suggestion like this because I suspect that one reason may be a parser issue, as otherwise it would most likely have been done already.

In particular for elements without any arguments like:

  Bam.[] { |b| puts b }

Or more verbose to use your example:

    module Bam
      def self.[](bam=42)
        yield bam
      end
    end

    Bam.[] { |b| puts b } # => 42

    
    Bam[] { |b| puts b } # => SyntaxError: (irb):14: syntax error, unexpected { arg, expecting end-of-input
 
Only difference here between failure and success is one lonely '.'. I am not sure if it is technically
possible to get rid of the '.', but if it would be possible, that would be great. The '.' visually
disturbs me when I see [] ... but not at other places, it's weird. :D

----------------------------------------
Feature #13630: :[] method should accept block in nice syntax
https://bugs.ruby-lang.org/issues/13630#change-65266

* Author: khoan (khoa nguyen)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
~~~ ruby
# given
module Bam
  def self.[](bam)
    yield bam
  end
end

# SyntaxError: unexpected keyword_do_block
Bam['bam'] do |b|
  puts b
end

# SyntaxError: unexpected { arg, expecting end-of-input
Bam['bam'] { |b|
  puts b
}

# Valid but more verbose
Bam.[]('bam') do |b|
  puts b
end

Bam.[]('bam') { |b|
  puts b
}
~~~



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next