mikel / mail

A Really Ruby Mail Library
MIT License
3.61k stars 934 forks source link

NameError: undefined local variable or method `elements' for nil:NilClass #554

Open rwz opened 11 years ago

rwz commented 11 years ago

ruby 1.9.3p392 (2013-02-22 revision 39386)

>> ::Mail::Address.new('').display_name
=> nil

ruby 1.9.2p320 (2012-04-20 revision 35421)

>> ::Mail::Address.new('').display_name
NameError: undefined local variable or method `elements' for nil:NilClass
  from /rubygems-path-goes-here/gems/mail-2.5.4/lib/mail/parsers/rfc2822.rb:2864:in `comments'
  from /rubygems-path-goes-here/gems/mail-2.5.4/lib/mail/elements/address.rb:222:in `get_comments'
  from /rubygems-path-goes-here/gems/mail-2.5.4/lib/mail/elements/address.rb:129:in `comments'
  from /rubygems-path-goes-here/gems/mail-2.5.4/lib/mail/elements/address.rb:232:in `get_display_name'
  from /rubygems-path-goes-here/gems/mail-2.5.4/lib/mail/elements/address.rb:88:in `display_name'
  from (irb):1
srawlins commented 11 years ago

For Mail 2.5.4, I see the following:

$ rbenv shell 2.0.0-p247
$ ruby -r mail -e "puts (::Mail::Address.new('').display_name).inspect"
nil
$ rbenv shell 2.1.0-dev
$ ruby -v
ruby 2.1.0dev (2013-06-15) [x86_64-linux]
$ ruby -r mail -e "puts (::Mail::Address.new('').display_name).inspect"
nil

Looks like the problem is just Ruby 1.9.2?

jeremy commented 7 years ago

@rwz on the off chance you still have Ruby 1.9.2, what does this report for you?

>> RUBY_DESCRIPTION
=> "ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]"
>> Mail::AddressListsParser.new.parse('').elements
=> [SyntaxNode offset=0, "", SyntaxNode offset=0, ""]
>> RUBY_DESCRIPTION
=> "ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-darwin16.3.0]"
>> Mail::AddressListsParser.new.parse('').elements
=> [SyntaxNode offset=0, "", SyntaxNode offset=0, ""]
>> RUBY_DESCRIPTION
=> "ruby 1.8.8dev (2014-01-28 trunk 56877) [i386-darwin16.3.0]"
>> Mail::AddressListsParser.new.parse('').elements
=> [SyntaxNode offset=0, "", SyntaxNode offset=0, ""]