Skip to content

Error: undefined method `any?' for nil:NilClass when generating documentation #287

@hajee

Description

@hajee

Describe the bug

When given the command: puppet strings generate --format markdown an error is thrown

Error: undefined method `any?' for nil:NilClass
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/yard/code_objects/type.rb:156:in `parameters'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/yard/code_objects/type.rb:188:in `to_hash'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown/resource_types.rb:10:in `map!'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown/resource_types.rb:10:in `in_rtypes'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown/resource_types.rb:32:in `toc_info'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown/table_of_contents.rb:15:in `block in render'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown/table_of_contents.rb:14:in `each'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown/table_of_contents.rb:14:in `render'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown.rb:21:in `generate'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown.rb:40:in `block in render'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown.rb:40:in `open'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings/markdown.rb:40:in `render'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings.rb:83:in `render_markdown'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet-strings.rb:64:in `generate'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-strings-2.6.0/lib/puppet/face/strings.rb:35:in `block (3 levels) in <top (required)>'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/lib/puppet/interface/action.rb+eval[wrapper]:261:in `generate'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/lib/puppet/application/face_base.rb:254:in `main'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/lib/puppet/application.rb:437:in `run_command'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/lib/puppet/application.rb:421:in `block in run'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/lib/puppet/util.rb:735:in `exit_on_fail'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/lib/puppet/application.rb:421:in `run'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/lib/puppet/util/command_line.rb:143:in `run'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/lib/puppet/util/command_line.rb:77:in `execute'
/Users/hajee/.rvm/gems/ruby-2.6.6/gems/puppet-7.1.0-universal-darwin/bin/puppet:5:in `<top (required)>'
/Users/hajee/.rvm/gems/ruby-2.6.6/bin/puppet:23:in `load'
/Users/hajee/.rvm/gems/ruby-2.6.6/bin/puppet:23:in `<main>'
/Users/hajee/.rvm/gems/ruby-2.6.6/bin/ruby_executable_hooks:24:in `eval'
/Users/hajee/.rvm/gems/ruby-2.6.6/bin/ruby_executable_hooks:24:in `<main>'
Error: Try 'puppet help strings generate' for usage

No output is written

Expected Behavior

strings should not error. It should at least generate the documentation for the correct puppet code.

Steps to Reproduce

Have a non valid (or not finished) puppet type and provider available:

Puppet::Type.newtype(:any_error) do
end

and a provider:

Puppet::Type.type(:any_error).provide(:simple) do
  mk_resource_methods
end

Now run puppet strings:

puppet strings generate --format markdown

Environment

All

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions