Skip to content
This repository has been archived by the owner on Aug 19, 2024. It is now read-only.

undefined method `downcase' for nil:NilClass (NoMethodError) #3

Closed
hsanson opened this issue May 17, 2017 · 4 comments
Closed

undefined method `downcase' for nil:NilClass (NoMethodError) #3

hsanson opened this issue May 17, 2017 · 4 comments

Comments

@hsanson
Copy link

hsanson commented May 17, 2017

Running this tool I get this error:

[~]> littleredflag -a
/var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent/mbsync/config.rb:21:in `connect': undefined method `downcase' for nil:NilClass (NoMethodError)
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent/mbsync/config.rb:211:in `block in populate_channel_inboxes'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent/mbsync/config.rb:210:in `each'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent/mbsync/config.rb:210:in `populate_channel_inboxes'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent/mbsync/config.rb:144:in `postprocess'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent/mbsync/config.rb:76:in `initialize'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent/mbsync.rb:10:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent/mbsync.rb:10:in `initialize'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent.rb:12:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/lib/little_red_flag/mail_agent.rb:12:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/bin/littleredflag:37:in `block in <top (required)>'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/bin/littleredflag:37:in `map!'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.2/bin/littleredflag:37:in `<top (required)>'
        from /usr/local/bin/littleredflag:23:in `load'
        from /usr/local/bin/littleredflag:23:in `<main>'
@rlue
Copy link
Owner

rlue commented May 17, 2017

Appears to be related to Issue #2, and hopefully fixed now. Try

gem update little_red_flag

then run again and let me know?

@hsanson
Copy link
Author

hsanson commented May 17, 2017

Unfortunately not solved with 0.1.3:

littleredflag                                                                                   
/var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:21:in `connect': undefinedmethod `downcase' for nil:NilClass (NoMethodError)
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:211:in `blockin populate_channel_inboxes'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:210:in `each'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:210:in `populate_channel_inboxes'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:144:in `postprocess'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:76:in `initialize'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync.rb:10:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync.rb:10:in `initialize'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent.rb:12:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent.rb:12:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/bin/littleredflag:37:in `block in <top (required)>'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/bin/littleredflag:37:in `map!'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/bin/littleredflag:37:in `<top (required)>'
        from /usr/local/bin/littleredflag:23:in `load'
        from /usr/local/bin/littleredflag:23:in `<main>'

Looking at the trace the problem seems to be that ssltype is nil:

21: imap = Net::IMAP.new(host, port: port, ssl: (ssltype.downcase == 'imaps'))

And I do have an IMAP account that does not use IMAPS:

IMAPAccount [email protected]
Host mail.email.net
User [email protected]
Pass secretPassWord
UseIMAPS no
RequireSSL no

I am trying to create the smallest config file that reproduces the issue but when I delete other parts of the config I get a different error:

/var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:187:in `block in link_group_channels': undefined method `map!' for "xxxxx-email-inbox":String (NoMethodError)
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:186:in `each'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:186:in `link_group_channels'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:142:in `postprocess'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync/config.rb:76:in `initialize'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync.rb:10:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent/mbsync.rb:10:in `initialize'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent.rb:12:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/lib/little_red_flag/mail_agent.rb:12:in `new'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/bin/littleredflag:37:in `block in <top (required)>'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/bin/littleredflag:37:in `map!'
        from /var/lib/gems/2.3.0/gems/little_red_flag-0.1.3/bin/littleredflag:37:in `<top (required)>'
        from /usr/local/bin/littleredflag:23:in `load'
        from /usr/local/bin/littleredflag:23:in `<main>'

BTW: Would be nice to have a flag option to use a different .mbsyncrc file so I do not have to modify my main configuration to debug this.

rlue added a commit that referenced this issue May 17, 2017
@rlue
Copy link
Owner

rlue commented May 17, 2017

v0.1.4 should check that ssltype is not nil before trying to apply the #downcase method.

Three version bumps in one day. How embarrassing. The code is a bit of a mess right now tbh, but I intend to give it a hearty refactoring when I get some time to hunker down with it again.

Thanks for your help.

@hsanson
Copy link
Author

hsanson commented May 17, 2017

First time I have had an issue solved within one hour of reporting!!.

Last fix seems to be working, Thanks.

@hsanson hsanson closed this as completed May 17, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants