Skip to content

Nested dynamic napespace problem (crash) #267

Closed
@igneus

Description

@igneus

Let's have a config.ru defining a little API doing something with dates:

require 'grape'
require 'grape-swagger'

class API < Grape::API
  segment '/:year' do
    get do
      "Year #{params[:year]}"
    end

    segment '/:month' do
      get do
        "Month #{params[:year]}/#{params[:month]}"
      end

      get '/:day' do
        "Day #{params[:year]}-#{params[:month]}-#{params[:day]}"
      end
    end
  end

  add_swagger_documentation
end

run API

On startup add_swagger_documentation crashes:

/home/igneus/.rvm/gems/ruby-2.1.1/gems/grape-swagger-0.10.1/lib/grape-swagger.rb:70:in `block in combine_namespace_routes': undefined method `collect' for nil:NilClass (NoMethodError)
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/grape-swagger-0.10.1/lib/grape-swagger.rb:65:in `each'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/grape-swagger-0.10.1/lib/grape-swagger.rb:65:in `combine_namespace_routes'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/grape-swagger-0.10.1/lib/grape-swagger.rb:39:in `add_swagger_documentation'
        from /home/igneus/tmp/config.ru:21:in `<class:API>'
        from /home/igneus/tmp/config.ru:4:in `block in <main>'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/builder.rb:55:in `instance_eval'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/builder.rb:55:in `initialize'
        from /home/igneus/tmp/config.ru:in `new'
        from /home/igneus/tmp/config.ru:in `<main>'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/builder.rb:49:in `eval'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/builder.rb:49:in `new_from_string'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/builder.rb:40:in `parse_file'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/server.rb:299:in `build_app_and_options_from_config'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/server.rb:208:in `app'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/server.rb:336:in `wrapped_app'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/server.rb:272:in `start'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/lib/rack/server.rb:147:in `start'
        from /home/igneus/.rvm/gems/ruby-2.1.1/gems/rack-1.6.1/bin/rackup:4:in `<top (required)>'
        from /home/igneus/.rvm/gems/ruby-2.1.1/bin/rackup:23:in `load'
        from /home/igneus/.rvm/gems/ruby-2.1.1/bin/rackup:23:in `<main>'
        from /home/igneus/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
        from /home/igneus/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'

Tested with
ruby 2.1.1
grape 0.11.0
grape-swagger 0.10.1 as well as current master

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions