Forum: Ruby-core [ruby-trunk - Bug #7338][Open] loop command doesn't accept begin/end, only { }

Posted by dwilde1 (Donald Wilde) (Guest)
on 2012-11-12 20:09
(Received via mailing list)
Issue #7338 has been reported by dwilde1 (Donald Wilde).

----------------------------------------
Bug #7338: loop command doesn't accept begin/end, only { }
https://bugs.ruby-lang.org/issues/7338

Author: dwilde1 (Donald Wilde)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]


def token_generator
    random = Random.new
    alpha = Array.new
    ('a' .. 'z').each do | c |
      alpha << c
    end
    ('A' .. 'Z').each do | c |
      alpha << c
    end
    numbers = %w{ 0 1 2 3 4 5 6 7 8 9 }
    loop begin
      unique_string = ''
      0.upto( 19 ) do | n |
        if n.even? then
          unique_string << alpha[ random.rand( 52 ) ]
        else
          unique_string << numbers[ random.rand( 10 ) ]
        end
      end
      break unless @sessions.include?( unique_string.to_sym )
    end
    unique_string
  end

causes:

/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:55:in `require': 
/home/devel/ISF_Server/Actors/DataProvider.rb:49: syntax error, 
unexpected keyword_do_block, expecting keyword_end (SyntaxError)
      0.upto( 19 ) do | n |
                     ^
/home/devel/ISF_Server/Actors/DataProvider.rb:72: syntax error, 
unexpected keyword_end, expecting $end
  from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:55:in 
`require'
  from ./server-work.rb:7:in `<main>'

but replacing begin/end with { } works.
Posted by Nathan Broadbent (Guest)
on 2012-11-12 20:14
(Received via mailing list)
Hi there,

Try 'loop do' instead of 'loop begin'


Best,
Nathan
Posted by dwilde1 (Donald Wilde) (Guest)
on 2012-11-12 20:48
(Received via mailing list)
Issue #7338 has been updated by dwilde1 (Donald Wilde).


My bad, thanks, Nathan. Switching between languages too often! :D
----------------------------------------
Bug #7338: loop command doesn't accept begin/end, only { }
https://bugs.ruby-lang.org/issues/7338#change-32820

Author: dwilde1 (Donald Wilde)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]


def token_generator
    random = Random.new
    alpha = Array.new
    ('a' .. 'z').each do | c |
      alpha << c
    end
    ('A' .. 'Z').each do | c |
      alpha << c
    end
    numbers = %w{ 0 1 2 3 4 5 6 7 8 9 }
    loop begin
      unique_string = ''
      0.upto( 19 ) do | n |
        if n.even? then
          unique_string << alpha[ random.rand( 52 ) ]
        else
          unique_string << numbers[ random.rand( 10 ) ]
        end
      end
      break unless @sessions.include?( unique_string.to_sym )
    end
    unique_string
  end

causes:

/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:55:in `require': 
/home/devel/ISF_Server/Actors/DataProvider.rb:49: syntax error, 
unexpected keyword_do_block, expecting keyword_end (SyntaxError)
      0.upto( 19 ) do | n |
                     ^
/home/devel/ISF_Server/Actors/DataProvider.rb:72: syntax error, 
unexpected keyword_end, expecting $end
  from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:55:in 
`require'
  from ./server-work.rb:7:in `<main>'

but replacing begin/end with { } works.
Posted by marcandre (Marc-Andre Lafortune) (Guest)
on 2012-11-12 22:30
(Received via mailing list)
Issue #7338 has been updated by marcandre (Marc-Andre Lafortune).

Status changed from Open to Rejected


----------------------------------------
Bug #7338: loop command doesn't accept begin/end, only { }
https://bugs.ruby-lang.org/issues/7338#change-32822

Author: dwilde1 (Donald Wilde)
Status: Rejected
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]


def token_generator
    random = Random.new
    alpha = Array.new
    ('a' .. 'z').each do | c |
      alpha << c
    end
    ('A' .. 'Z').each do | c |
      alpha << c
    end
    numbers = %w{ 0 1 2 3 4 5 6 7 8 9 }
    loop begin
      unique_string = ''
      0.upto( 19 ) do | n |
        if n.even? then
          unique_string << alpha[ random.rand( 52 ) ]
        else
          unique_string << numbers[ random.rand( 10 ) ]
        end
      end
      break unless @sessions.include?( unique_string.to_sym )
    end
    unique_string
  end

causes:

/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:55:in `require': 
/home/devel/ISF_Server/Actors/DataProvider.rb:49: syntax error, 
unexpected keyword_do_block, expecting keyword_end (SyntaxError)
      0.upto( 19 ) do | n |
                     ^
/home/devel/ISF_Server/Actors/DataProvider.rb:72: syntax error, 
unexpected keyword_end, expecting $end
  from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:55:in 
`require'
  from ./server-work.rb:7:in `<main>'

but replacing begin/end with { } works.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.