Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2.6.0] NoMethodError: undefined method `[]' for nil:NilClass #46

Closed
0xdevalias opened this issue Jul 22, 2017 · 2 comments
Closed

[2.6.0] NoMethodError: undefined method `[]' for nil:NilClass #46

0xdevalias opened this issue Jul 22, 2017 · 2 comments

Comments

@0xdevalias
Copy link
Contributor

0xdevalias commented Jul 22, 2017

webmentions:
  username: devalias.net
  source: false
NoMethodError: undefined method `[]' for nil:NilClass
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-webmention_io-2.6.0/lib/jekyll/generators/compile_js.rb:14:in `destination_rel_dir'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/static_file.rb:49:in `destination'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/cleaner.rb:57:in `block in new_files'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/site.rb:329:in `block (2 levels) in each_site_file'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/site.rb:328:in `each'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/site.rb:328:in `block in each_site_file'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/site.rb:327:in `each'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/site.rb:327:in `each_site_file'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/cleaner.rb:57:in `new_files'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/cleaner.rb:25:in `obsolete_files'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/cleaner.rb:15:in `cleanup!'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/site.rb:200:in `cleanup'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/site.rb:70:in `process'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/command.rb:26:in `process_site'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/commands/build.rb:63:in `build'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-admin-0.6.0/lib/jekyll/commands/build.rb:9:in `build'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/commands/build.rb:34:in `process'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/lib/jekyll/commands/build.rb:16:in `block (2 levels) in init_with_program'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
  /Users/devalias/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/jekyll-3.4.5/exe/jekyll:13:in `<top (required)>'
  /Users/devalias/.rbenv/versions/2.3.0/bin/jekyll:23:in `load'
  /Users/devalias/.rbenv/versions/2.3.0/bin/jekyll:23:in `<top (required)>'

The line in question is Jekyll::WebmentionIO::config['js']['destination'] || '/js/'

The related line in my version was @site.config['jekyll-webmention-io']['js'] || "/assets/js/"

Related to #41 / #44

Looks like this should be reading the js key from the webmentions key in the _config.yml. But this doesn't appear to be documented anywhere in the readme/etc.

Having a look at the options we have, it would seem like destination would be better repurposed for this, and then control whether it is a 'source destination' or 'built site' destination based on the deploy key?

Actually.. reading those example snippets closer I see how to use it properly now, and re-reading the introductory text, i realise webmentions.js is a config path rather than a javascript file.. my bad.

So.. it's a config error on my part, but perhaps including a better check/default values/error message around this would make it more user friendly.

@aarongustafson
Copy link
Owner

I'm on vacation this week and don't have anything with me except my phone. I can take a look next week.

@0xdevalias
Copy link
Contributor Author

0xdevalias commented Jul 24, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants