dry-rb / dry-web-roda

Roda integration for dry-web apps
MIT License
119 stars 22 forks source link

Error on start new application: uninitialized constant Dry::Monitor::Rack (NameError) #93

Open Serhiy-Nazarov opened 5 years ago

Serhiy-Nazarov commented 5 years ago
ruby -v
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux]

Install dry-web-roda

gem install dry-web-roda
Fetching thor-0.20.3.gem
Fetching rack-2.0.6.gem
Fetching concurrent-ruby-1.1.5.gem
Fetching dry-core-0.4.7.gem
Fetching roda-flow-0.4.0.gem
Fetching inflecto-0.0.2.gem
Fetching dry-configurable-0.8.2.gem
Fetching roda-3.18.0.gem
Fetching dry-web-roda-0.11.0.gem
Successfully installed concurrent-ruby-1.1.5
Successfully installed dry-core-0.4.7
Successfully installed dry-configurable-0.8.2
Successfully installed inflecto-0.0.2
Successfully installed rack-2.0.6
Successfully installed roda-3.18.0
Successfully installed roda-flow-0.4.0
Successfully installed thor-0.20.3
Successfully installed dry-web-roda-0.11.0
9 gems installed

Create app

dry-web-roda new demo01 --arch=flat
      create  demo01/bin/console
      create  demo01/bin/setup
      create  demo01/.env
      create  demo01/.env.test
      create  demo01/db/sample_data.rb
      create  demo01/db/seed.rb
      create  demo01/log/.keep
      create  demo01/.rspec
      create  demo01/spec/web_spec_helper.rb
      create  demo01/spec/db_spec_helper.rb
      create  demo01/spec/spec_helper.rb
      create  demo01/spec/support/db/factory.rb
      create  demo01/spec/support/db/helpers.rb
      create  demo01/spec/factories/example.rb
      create  demo01/spec/support/web/helpers.rb
      create  demo01/lib/types.rb
      create  demo01/lib/demo01/operation.rb
      create  demo01/lib/demo01/repository.rb
      create  demo01/lib/persistence/relations/.keep
      create  demo01/lib/persistence/commands/.keep
      create  demo01/lib/demo01/view/context.rb
      create  demo01/lib/demo01/view/controller.rb
      create  demo01/system/demo01/container.rb
      create  demo01/system/demo01/import.rb
      create  demo01/system/boot/monitor.rb
      create  demo01/system/boot/persistence.rb
      create  demo01/system/boot/settings.rb
      create  demo01/system/boot.rb
      create  demo01/system/demo01/web.rb
      create  demo01/.gitignore
      create  demo01/Gemfile
      create  demo01/Rakefile
      create  demo01/config.ru
      create  demo01/README.md
      create  demo01/lib/demo01/views/welcome.rb
      create  demo01/web/routes/example.rb
      create  demo01/web/templates/layouts/application.html.slim
      create  demo01/web/templates/welcome.html.slim
cd demo111
bundle install

Start application

puma -C config.ru 
Traceback (most recent call last):
    24: from /home/sena/.rbenv/versions/2.6.1/bin/puma:23:in '<main>'
    23: from /home/sena/.rbenv/versions/2.6.1/bin/puma:23:in 'load'
    22: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/bin/puma:8:in '<top (required)>'
    21: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/bin/puma:8:in 'new'
    20: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/cli.rb:71:in 'initialize'
    19: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/cli.rb:71:in 'new'
    18: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/launcher.rb:61:in 'initialize'
    17: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/configuration.rb:194:in 'load'
    16: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/configuration.rb:194:in 'each'
    15: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/configuration.rb:194:in 'block in load'
    14: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/dsl.rb:43:in '_load_from'
    13: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/dsl.rb:43:in 'instance_eval'
    12: from config.ru:1:in '_load_from'
    11: from config.ru:1:in 'require_relative'
    10: from /home/sena/Projects/dry-demo/demo01/system/boot.rb:8:in '<top (required)>'
     9: from /home/sena/Projects/dry-demo/demo01/system/boot.rb:8:in 'require_relative'
     8: from /home/sena/Projects/dry-demo/demo01/system/demo01/container.rb:4:in '<top (required)>'
     7: from /home/sena/Projects/dry-demo/demo01/system/demo01/container.rb:5:in '<module:Demo01>'
     6: from /home/sena/Projects/dry-demo/demo01/system/demo01/container.rb:6:in '<class:Container>'
     5: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/dry-system-0.9.2/lib/dry/system/container.rb:105:in 'configure'
     4: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/dry-system-0.9.2/lib/dry/system/container.rb:105:in 'each'
     3: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/dry-system-0.9.2/lib/dry/system/container.rb:105:in 'block in configure'
     2: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/dry-system-0.9.2/lib/dry/system/container.rb:105:in 'instance_eval'
     1: from /home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/dry-web-0.8.0/lib/dry/web/container.rb:16:in 'block in inherited'
/home/sena/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/dry-web-0.8.0/lib/dry/web/container.rb:25:in 'register_rack_monitor': uninitialized constant Dry::Monitor::Rack (NameError)

Is it okay when a newly-generated application does not work?

waiting-for-dev commented 5 years ago

Maybe https://github.com/dry-rb/dry-monitor/issues/18 can help you.

Serhiy-Nazarov commented 5 years ago

Thanks @waiting-for-dev

I solved this problem, but have a new problem

uninitialized constant Dry::View::Controller (NameError)
waiting-for-dev commented 5 years ago

Dry::View::Controller is just Dry::View in latest dry-view releases. Anyway, dry-web-roda generated skeleton is not compatible with them, and I'm not sure whether this issue will get more attention because, for my understanding, dry-web-roda is not going to be maintained anymore once hanami 2 is available. However, it is still easy to adapt it oneself in the generated project. I do it in my current project, so ask in dry-rb discussion forums if you need any help and I'll try to help.