dry-rb / dry-web-roda

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

Use the latest gem version in the generated app #71

Closed v-kolesnikov closed 4 years ago

v-kolesnikov commented 7 years ago

Fixes #70 @timriley

flash-gordon commented 7 years ago

there is a problem with this, ~> 0.9 and ~> 0.9.1 aren't equal, ~> 0.9 permits 0.10 whereas ~> 0.9.1 doesn't. From what we had it's logical to have something like '~> 0.9', '>= 0.9.1' as the output.

v-kolesnikov commented 7 years ago

Thank you @flash-gordon! I will try to fix it.

alejandrobabio commented 7 years ago

IMO this PR is not necessary. Actually, gem "dry-web-roda", "~> 0.7" resolves to last version 0.x.y, right now 0.9.1. (BTW, I don't think that this fix the issue #70 that seems to be a local issue)

I did a double check into an isolated env and the dry-web-roda app works on version 0.9.1:

alejandro in /tmp(ruby-2.3.0) λ rvm gemset create tmp
ruby-2.3.0 - #gemset created /home/alejandro/.rvm/gems/ruby-2.3.0@tmp
ruby-2.3.0 - #generating tmp wrappers........
alejandro in /tmp(ruby-2.3.0) λ rvm use ruby-2.3.0@tmp
Using /home/alejandro/.rvm/gems/ruby-2.3.0 with gemset tmp
alejandro in /tmp(ruby-2.3.0@tmp) λ gem install bundler
Fetching: bundler-1.16.0.gem (100%)
Successfully installed bundler-1.16.0
1 gem installed
alejandro in /tmp(ruby-2.3.0@tmp) λ gem install dry-web-roda
Fetching: concurrent-ruby-1.0.5.gem (100%)
Successfully installed concurrent-ruby-1.0.5
Fetching: dry-configurable-0.7.0.gem (100%)
Successfully installed dry-configurable-0.7.0
Fetching: inflecto-0.0.2.gem (100%)
Successfully installed inflecto-0.0.2
Fetching: rack-2.0.3.gem (100%)
Successfully installed rack-2.0.3
Fetching: roda-2.29.0.gem (100%)
Successfully installed roda-2.29.0
Fetching: roda-flow-0.3.1.gem (100%)
Successfully installed roda-flow-0.3.1
Fetching: thor-0.20.0.gem (100%)
Successfully installed thor-0.20.0
Fetching: dry-web-roda-0.9.1.gem (100%)
Successfully installed dry-web-roda-0.9.1
8 gems installed
alejandro in /tmp(ruby-2.3.0@tmp) λ gem list dry-web-roda

*** LOCAL GEMS ***

dry-web-roda (0.9.1)
alejandro in /tmp(ruby-2.3.0@tmp) λ dry-web-roda new my_project
      create  my_project/bin/console
      create  my_project/bin/setup
      create  my_project/.env
      create  my_project/.env.test
      create  my_project/db/sample_data.rb
      create  my_project/db/seed.rb
      create  my_project/log/.keep
      create  my_project/.rspec
      create  my_project/spec/web_spec_helper.rb
      create  my_project/spec/db_spec_helper.rb
      create  my_project/spec/spec_helper.rb
      create  my_project/spec/support/db/factory.rb
      create  my_project/spec/support/db/helpers.rb
      create  my_project/spec/factories/example.rb
      create  my_project/spec/support/web/helpers.rb
      create  my_project/lib/types.rb
      create  my_project/lib/my_project/operation.rb
      create  my_project/lib/my_project/repository.rb
      create  my_project/lib/persistence/relations/.keep
      create  my_project/lib/persistence/commands/.keep
      create  my_project/lib/my_project/view/context.rb
      create  my_project/lib/my_project/view/controller.rb
      create  my_project/system/my_project/container.rb
      create  my_project/system/my_project/import.rb
      create  my_project/system/boot/monitor.rb
      create  my_project/system/boot/persistence.rb
      create  my_project/system/boot/settings.rb
      create  my_project/system/boot.rb
      create  my_project/system/my_project/web.rb
      create  my_project/.gitignore
      create  my_project/Gemfile
      create  my_project/Rakefile
      create  my_project/config.ru
      create  my_project/README.md
      create  apps/main/lib/my_project/main/view/context.rb
      create  apps/main/lib/my_project/main/view/controller.rb
      create  apps/main/lib/my_project/main/views/welcome.rb
      create  apps/main/system/my_project/main/web.rb
      create  apps/main/system/my_project/main/container.rb
      create  apps/main/system/my_project/main/import.rb
      create  apps/main/system/boot.rb
      create  apps/main/web/routes/example.rb
      create  apps/main/web/templates/layouts/application.html.slim
      create  apps/main/web/templates/welcome.html.slim
alejandro in /tmp(ruby-2.3.0@tmp) λ cd my_project 
alejandro in /tmp/my_project(ruby-2.3.0@tmp) λ bundle
Fetching gem metadata from https://rubygems.org/......
Resolving dependencies...
Fetching rake 12.2.1
Installing rake 12.2.1
Fetching public_suffix 3.0.1
Installing public_suffix 3.0.1
Fetching addressable 2.5.2
Installing addressable 2.5.2
Using bundler 1.16.0
Fetching byebug 9.1.0
Installing byebug 9.1.0 with native extensions
Fetching mini_mime 1.0.0
Installing mini_mime 1.0.0
Fetching mini_portile2 2.3.0
Installing mini_portile2 2.3.0
Fetching nokogiri 1.8.1
Installing nokogiri 1.8.1 with native extensions
Using rack 2.0.3
Fetching rack-test 0.7.0
Installing rack-test 0.7.0
Fetching xpath 2.1.0
Installing xpath 2.1.0
Fetching capybara 2.15.4
Installing capybara 2.15.4
Fetching launchy 2.4.3
Installing launchy 2.4.3
Fetching capybara-screenshot 1.0.18
Installing capybara-screenshot 1.0.18
Fetching cliver 0.3.2
Installing cliver 0.3.2
Fetching coderay 1.1.2
Installing coderay 1.1.2
Using concurrent-ruby 1.0.5
Fetching database_cleaner 1.6.2
Installing database_cleaner 1.6.2
Fetching diff-lcs 1.3
Installing diff-lcs 1.3
Using dry-configurable 0.7.0
Fetching dry-container 0.6.0
Installing dry-container 0.6.0
Fetching dry-auto_inject 0.4.4
Installing dry-auto_inject 0.4.4
Fetching dry-core 0.4.1
Installing dry-core 0.4.1
Fetching dry-equalizer 0.2.0
Installing dry-equalizer 0.2.0
Fetching dry-initializer 2.3.0
Installing dry-initializer 2.3.0
Fetching dry-logic 0.4.2
Installing dry-logic 0.4.2
Fetching dry-matcher 0.6.0
Installing dry-matcher 0.6.0
Fetching dry-monads 0.3.1
Installing dry-monads 0.3.1
Fetching rouge 2.2.1
Installing rouge 2.2.1
Fetching dry-monitor 0.0.3
Installing dry-monitor 0.0.3
Using inflecto 0.0.2
Fetching dry-types 0.12.2
Installing dry-types 0.12.2
Fetching ice_nine 0.11.2
Installing ice_nine 0.11.2
Fetching dry-struct 0.4.0
Installing dry-struct 0.4.0
Fetching dry-system 0.8.1
Installing dry-system 0.8.1
Fetching wisper 2.0.0
Installing wisper 2.0.0
Fetching dry-transaction 0.10.2
Installing dry-transaction 0.10.2
Fetching dry-validation 0.11.1
Installing dry-validation 0.11.1
Fetching tilt 2.0.8
Installing tilt 2.0.8
Fetching dry-view 0.4.0
Installing dry-view 0.4.0
Fetching dry-web 0.7.1
Installing dry-web 0.7.1
Using roda 2.29.0
Using roda-flow 0.3.1
Using thor 0.20.0
Using dry-web-roda 0.9.1
Fetching i18n 0.9.1
Installing i18n 0.9.1
Fetching faker 1.8.4
Installing faker 1.8.4
Fetching method_source 0.9.0
Installing method_source 0.9.0
Fetching pg 0.21.0
Installing pg 0.21.0 with native extensions
Fetching websocket-extensions 0.1.2
Installing websocket-extensions 0.1.2
Fetching websocket-driver 0.7.0
Installing websocket-driver 0.7.0 with native extensions
Fetching poltergeist 1.16.0
Installing poltergeist 1.16.0
Fetching pry 0.11.2
Installing pry 0.11.2
Fetching pry-byebug 3.5.0
Installing pry-byebug 3.5.0
Fetching puma 3.10.0
Installing puma 3.10.0 with native extensions
Fetching rack_csrf 2.6.0
Installing rack_csrf 2.6.0
Fetching transproc 1.0.2
Installing transproc 1.0.2
Fetching rom-mapper 1.0.2
Installing rom-mapper 1.0.2
Fetching rom-core 4.0.2
Installing rom-core 4.0.2
Fetching rom-changeset 1.0.1
Installing rom-changeset 1.0.1
Fetching rom-repository 2.0.1
Installing rom-repository 2.0.1
Fetching rom 4.0.2
Installing rom 4.0.2
Fetching rom-factory 0.5.0
Installing rom-factory 0.5.0
Fetching sequel 5.2.0
Installing sequel 5.2.0
Fetching rom-sql 2.2.0
Installing rom-sql 2.2.0
Fetching rspec-support 3.7.0
Installing rspec-support 3.7.0
Fetching rspec-core 3.7.0
Installing rspec-core 3.7.0
Fetching rspec-expectations 3.7.0
Installing rspec-expectations 3.7.0
Fetching rspec-mocks 3.7.0
Installing rspec-mocks 3.7.0
Fetching rspec 3.7.0
Installing rspec 3.7.0
Fetching shotgun 0.9.2
Installing shotgun 0.9.2
Fetching temple 0.8.0
Installing temple 0.8.0
Fetching slim 3.0.9
Installing slim 3.0.9
Bundle complete! 26 Gemfile dependencies, 73 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
alejandro in /tmp/my_project(ruby-2.3.0@tmp) λ bundle exec shotgun -p 3000 -o 0.0.0.0 config.ru
== Shotgun/Puma on http://0.0.0.0:3000/
Puma starting in single mode...
* Version 3.10.0 (ruby 2.3.0-p0), codename: Russell's Teapot
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
^C- Gracefully stopping, waiting for requests to finish
=== puma shutdown: 2017-11-10 08:05:01 -0300 ===
- Goodbye!
alejandro in /tmp/my_project(ruby-2.3.0@tmp) λ rake db:create
alejandro in /tmp/my_project(ruby-2.3.0@tmp) λ bundle exec shotgun -p 3000 -o 0.0.0.0 config.ru
== Shotgun/Puma on http://0.0.0.0:3000/
Puma starting in single mode...
* Version 3.10.0 (ruby 2.3.0-p0), codename: Russell's Teapot
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
127.0.0.1 - - [10/Nov/2017:08:05:17 -0300] "GET / HTTP/1.1" 200 59 0.0117
^C- Gracefully stopping, waiting for requests to finish
=== puma shutdown: 2017-11-10 08:05:28 -0300 ===
- Goodbye!
alejandro in /tmp/my_project(ruby-2.3.0@tmp) λ cat Gemfile.lock G dry-web-roda
    dry-web-roda (0.9.1)
  dry-web-roda (~> 0.7)
alejandro in /tmp/my_project(ruby-2.3.0@tmp) λ 
flash-gordon commented 7 years ago

@alejandrobabio sure, you're right about it, it's just looking more consistent (and there are questions/misunderstandings about it https://github.com/dry-rb/dry-web-roda/issues/70)

timriley commented 6 years ago

Thanks for doing this, @v-kolesnikov, I think it'd be good to get this change in. Just a final request before we get it in: could you rename Gemfile to Gemfile.tt (and update the add_template line in abstract_project.rb to match)? This keeps it clearer which files have erb code in them and which don't. Thanks :)

v-kolesnikov commented 6 years ago

Sounds good! I'll try to do it in the near future. UPD: @timriley done 🎉

v-kolesnikov commented 4 years ago

Looks like outdated and abandoned. Feel free to reopen if needed.