dry-web-roda 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +29 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +30 -0
  5. data/CHANGELOG.md +3 -0
  6. data/Gemfile +20 -0
  7. data/LICENSE +22 -0
  8. data/README.md +9 -0
  9. data/Rakefile +6 -0
  10. data/dry-web-roda.gemspec +28 -0
  11. data/lib/dry/web/roda/application.rb +35 -0
  12. data/lib/dry/web/roda/version.rb +7 -0
  13. data/lib/dry-web-roda.rb +1 -0
  14. data/spec/dummy/apps/main/core/boot.rb +12 -0
  15. data/spec/dummy/apps/main/core/main/application.rb +17 -0
  16. data/spec/dummy/apps/main/core/main/container.rb +16 -0
  17. data/spec/dummy/apps/main/core/main/import.rb +5 -0
  18. data/spec/dummy/apps/main/core/main/requests.rb +22 -0
  19. data/spec/dummy/apps/main/core/main/view.rb +21 -0
  20. data/spec/dummy/apps/main/lib/main/entities/user.rb +5 -0
  21. data/spec/dummy/apps/main/lib/main/persistence/repositories/users.rb +15 -0
  22. data/spec/dummy/apps/main/lib/main/transactions/register_user.rb +21 -0
  23. data/spec/dummy/apps/main/lib/main/views/users/index.rb +17 -0
  24. data/spec/dummy/apps/main/log/.gitkeep +0 -0
  25. data/spec/dummy/apps/main/log/app.log +1 -0
  26. data/spec/dummy/apps/main/requests/users.rb +5 -0
  27. data/spec/dummy/apps/main/web/routes/users.rb +19 -0
  28. data/spec/dummy/apps/main/web/templates/layouts/app.html.slim +6 -0
  29. data/spec/dummy/apps/main/web/templates/users/index/_list.html.slim +3 -0
  30. data/spec/dummy/apps/main/web/templates/users/index/_list_item.html.slim +1 -0
  31. data/spec/dummy/apps/main/web/templates/users/index.html.slim +3 -0
  32. data/spec/dummy/bin/console +6 -0
  33. data/spec/dummy/config/application.yml +4 -0
  34. data/spec/dummy/config.ru +3 -0
  35. data/spec/dummy/core/boot.rb +8 -0
  36. data/spec/dummy/core/dummy/application.rb +7 -0
  37. data/spec/dummy/core/dummy/container.rb +14 -0
  38. data/spec/dummy/log/.gitkeep +0 -0
  39. data/spec/dummy/shared/persistence/db.rb +9 -0
  40. data/spec/dummy/shared/persistence.rb +12 -0
  41. data/spec/request/users_spec.rb +35 -0
  42. data/spec/spec_helper.rb +45 -0
  43. data/spec/support/helpers.rb +15 -0
  44. metadata +214 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 726ea7f39f9d491d5e7681d9842ea0b0d466eb4f
4
+ data.tar.gz: 288314be9441cb36682f5c863634013e5565fcc9
5
+ SHA512:
6
+ metadata.gz: 219b11b37b13bc7116425604ef6e98a9bf44e98c7e0e2ca362636cb4c880ecce42fec9fbd61a282d9b60563620cbba7b025f7d4fb0aeacff6b27a76359f47875
7
+ data.tar.gz: dfd793d774f1528e0c3a8983c0f6d51dff8df1b133738a3644883323c4482970270d634cfe1889b4042c12c0fb1e5bcb6803b97f624db4e20a29fb1ef89a4d40
data/.gitignore ADDED
@@ -0,0 +1,29 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+
12
+ ## Documentation cache and generated files:
13
+ /.yardoc/
14
+ /_yardoc/
15
+ /doc/
16
+ /rdoc/
17
+
18
+ ## Environment normalisation:
19
+ /.bundle/
20
+ /lib/bundler/man/
21
+
22
+ # for a library or gem, you might want to ignore these files since the code is
23
+ # intended to run in multiple environments; otherwise, check them in:
24
+ Gemfile.lock
25
+ # .ruby-version
26
+ # .ruby-gemset
27
+
28
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
29
+ .rvmrc
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --order random
3
+ --require ./spec/spec_helper.rb
data/.travis.yml ADDED
@@ -0,0 +1,30 @@
1
+ language: ruby
2
+ sudo: false
3
+ cache: bundler
4
+ bundler_args: --without tools
5
+ script:
6
+ - bundle exec rake spec
7
+ rvm:
8
+ - 2.0
9
+ - 2.1
10
+ - 2.2
11
+ - 2.3.0
12
+ - rbx
13
+ - jruby-9000
14
+ - ruby-head
15
+ - jruby-head
16
+ env:
17
+ global:
18
+ - JRUBY_OPTS='--dev -J-Xmx1024M'
19
+ matrix:
20
+ allow_failures:
21
+ - rvm: ruby-head
22
+ - rvm: jruby-head
23
+ notifications:
24
+ email: false
25
+ webhooks:
26
+ urls:
27
+ - https://webhooks.gitter.im/e/19098b4253a72c9796db
28
+ on_success: change # options: [always|never|change] default: always
29
+ on_failure: always # options: [always|never|change] default: always
30
+ on_start: false # default: false
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ # 0.1.0, 2016-06-12
2
+
3
+ - Extracted from dry-web (timriley)
data/Gemfile ADDED
@@ -0,0 +1,20 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in rodakase.gemspec
4
+ gemspec
5
+
6
+ group :test do
7
+ gem 'byebug', platform: :mri
8
+ gem 'rack-test'
9
+ gem 'dry-monads'
10
+ gem 'dry-transaction'
11
+ gem 'dry-view'
12
+ gem 'dry-web', '~> 0.2.0'
13
+ gem 'slim'
14
+
15
+ gem 'codeclimate-test-reporter', platform: :rbx
16
+ end
17
+
18
+ group :tools do
19
+ gem 'pry'
20
+ end
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015-2016 dry-rb team
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # dry-web-roda [![Join the chat at https://gitter.im/dry-rb/chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dry-rb/chat?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2
+
3
+ ## LICENSE
4
+
5
+ See `LICENSE` file.
6
+
7
+ ## Contributing
8
+
9
+ Bug reports and pull requests are welcome on GitHub at https://github.com/dry-rb/dry-web.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require "rspec/core/rake_task"
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: [:spec]
@@ -0,0 +1,28 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "dry/web/roda/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "dry-web-roda"
7
+ spec.version = Dry::Web::Roda::VERSION
8
+ spec.authors = ["Piotr Solnica"]
9
+ spec.email = ["piotr.solnica@gmail.com"]
10
+ spec.summary = "Roda integration for dry-web apps"
11
+ spec.description = spec.summary
12
+ spec.homepage = "https://github.com/dry-rb/dry-web-roda"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_runtime_dependency "dry-configurable", "~> 0.1"
21
+ spec.add_runtime_dependency "roda", "~> 2.14"
22
+ spec.add_runtime_dependency "roda-flow", "~> 0.3"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.7"
25
+ spec.add_development_dependency "rake", "~> 11.0"
26
+ spec.add_development_dependency "rspec", "~> 3.4"
27
+ spec.add_development_dependency "capybara", "~> 2.5"
28
+ end
@@ -0,0 +1,35 @@
1
+ require "roda"
2
+ require "roda/plugins/flow"
3
+ require "dry-configurable"
4
+
5
+ module Dry
6
+ module Web
7
+ module Roda
8
+ class Application < ::Roda
9
+ extend Dry::Configurable
10
+
11
+ setting :container
12
+ setting :routes
13
+
14
+ plugin :multi_route
15
+ plugin :flow
16
+
17
+ def self.resolve(name)
18
+ config.container[name]
19
+ end
20
+
21
+ def self.[](name)
22
+ resolve(name)
23
+ end
24
+
25
+ def self.load_routes!
26
+ Dir[root.join("#{config.routes}/**/*.rb")].each { |f| require f }
27
+ end
28
+
29
+ def self.root
30
+ config.container.config.root
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,7 @@
1
+ module Dry
2
+ module Web
3
+ module Roda
4
+ VERSION = "0.1.0".freeze
5
+ end
6
+ end
7
+ end
@@ -0,0 +1 @@
1
+ require "dry/web/roda/application"
@@ -0,0 +1,12 @@
1
+ require_relative 'main/container'
2
+
3
+ Main::Container.finalize! do |container|
4
+ require 'logger'
5
+ container.register(:logger, Logger.new(container.root.join('log/app.log')))
6
+ end
7
+
8
+ require 'main/application'
9
+ require 'main/view'
10
+ require 'main/requests'
11
+
12
+ Main::Container.require('requests/**/*.rb')
@@ -0,0 +1,17 @@
1
+ require 'dry/web/roda/application'
2
+ require_relative 'container'
3
+
4
+ module Main
5
+ class Application < Dry::Web::Roda::Application
6
+ configure do |config|
7
+ config.routes = 'web/routes'.freeze
8
+ config.container = Main::Container
9
+ end
10
+
11
+ route do |r|
12
+ r.multi_route
13
+ end
14
+
15
+ load_routes!
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ require 'dry/web/container'
2
+
3
+ module Main
4
+ class Container < Dry::Web::Container
5
+ configure do |config|
6
+ config.root = Pathname(__FILE__).join('../..').realpath.dirname.freeze
7
+ config.auto_register = 'lib'
8
+ end
9
+
10
+ require root.join('../../shared/persistence').to_s
11
+
12
+ import Persistence::Container
13
+
14
+ load_paths!('lib')
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ require_relative 'container'
2
+
3
+ module Main
4
+ Import = Main::Container::Inject
5
+ end
@@ -0,0 +1,22 @@
1
+ require_relative 'container'
2
+ require 'dry-transaction'
3
+
4
+ module Main
5
+ module Requests
6
+ class Registrar
7
+ attr_reader :container
8
+
9
+ def initialize(container)
10
+ @container = container
11
+ end
12
+
13
+ def define(identifier, &block)
14
+ container.register(identifier, Dry.Transaction(container: container, &block))
15
+ end
16
+ end
17
+
18
+ def self.define(&block)
19
+ yield(Registrar.new(Container))
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ require 'slim'
2
+ require 'dry-view'
3
+
4
+ require_relative 'container'
5
+
6
+ module Main
7
+ class Page
8
+ def title
9
+ 'Woohaa'
10
+ end
11
+ end
12
+ end
13
+
14
+ module Main
15
+ class View < Dry::View::Layout
16
+ setting :root, Container.root.join('web/templates')
17
+ setting :scope, Page.new
18
+ setting :formats, {html: :slim}
19
+ setting :name, 'app'.freeze
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ module Main
2
+ module Entities
3
+ User = Struct.new(:id, :name)
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ require 'main/import'
2
+
3
+ module Main
4
+ module Persistence
5
+ module Repositories
6
+ class Users
7
+ include Main::Import['persistence.db']
8
+
9
+ def all
10
+ db[:users]
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ require 'dry-monads'
2
+ require 'main/entities/user'
3
+ require 'main/import'
4
+
5
+ module Main
6
+ module Transactions
7
+ class RegisterUser
8
+ include Dry::Monads::Either::Mixin
9
+
10
+ include Main::Import['persistence.db']
11
+
12
+ def call(params)
13
+ if params['name']
14
+ Right(db[:users] << Main::Entities::User.new(*params.values_at('id', 'name')))
15
+ else
16
+ Left(validation: 'name is missing')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ require 'main/view'
2
+
3
+ module Main
4
+ module Views
5
+ module Users
6
+ class Index < Main::View
7
+ configure do |config|
8
+ config.template = 'users/index'
9
+ end
10
+
11
+ def locals(options)
12
+ { users: [{ name: 'Jane' }, { name: 'Joe' }] }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
File without changes
@@ -0,0 +1 @@
1
+ # Logfile created on 2016-04-21 14:19:48 +1000 by logger.rb/53141
@@ -0,0 +1,5 @@
1
+ Main::Requests.define do |r|
2
+ r.define('main.requests.users.create') do
3
+ step 'main.transactions.register_user'
4
+ end
5
+ end
@@ -0,0 +1,19 @@
1
+ class Main::Application
2
+ route('users') do |r|
3
+ r.get(to: 'main.views.users.index')
4
+
5
+ r.resolve('main.requests.users.create') do |t|
6
+ r.post do
7
+ t.(r[:user]) do |m|
8
+ m.success do
9
+ response.status = 201
10
+ end
11
+
12
+ m.failure do |err|
13
+ r.redirect '/users'
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,6 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title == page.title
5
+ body
6
+ == yield
@@ -0,0 +1,3 @@
1
+ ul
2
+ - users.each do |user|
3
+ == user.list_item
@@ -0,0 +1,3 @@
1
+ h1 Users
2
+
3
+ .users == users.list
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'dry/web/cli'
4
+ # require_relative '../core/boot'
5
+
6
+ Dry::Web::Cli.start
@@ -0,0 +1,4 @@
1
+ development:
2
+ DATABASE_URL: 'postgres://localhost/rodakase'
3
+ test:
4
+ DATABASE_URL: 'postgres://localhost/rodakase'
@@ -0,0 +1,3 @@
1
+ require_relative 'core/boot'
2
+
3
+ run Dummy::Application.freeze.app
@@ -0,0 +1,8 @@
1
+ require_relative 'dummy/container'
2
+
3
+ Dummy::Container.finalize!
4
+
5
+ app_paths = Pathname(__FILE__).dirname.join('../apps').realpath.join('*')
6
+ Dir[app_paths].each { |f| require "#{f}/core/boot" }
7
+
8
+ require_relative "dummy/application"
@@ -0,0 +1,7 @@
1
+ module Dummy
2
+ class Application < Roda
3
+ route do |r|
4
+ r.run Main::Application.freeze.app
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ require 'dry/web/container'
2
+
3
+ module Dummy
4
+ class Container < Dry::Web::Container
5
+ # we need to override default here because we run tests from within the
6
+ # project root and our app is in spec/dummy
7
+ configure do |config|
8
+ config.root = Pathname(__FILE__).dirname.join('../..')
9
+ config.auto_register = 'lib'
10
+ end
11
+
12
+ load_paths! 'lib'
13
+ end
14
+ end
File without changes
@@ -0,0 +1,9 @@
1
+ module Persistence
2
+ class Db
3
+ STORE = Hash.new { |k, v| k[v] = [] }
4
+
5
+ def [](name)
6
+ STORE[name]
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ module Persistence
2
+ class Container < Dry::Component::Container
3
+ configure do |config|
4
+ config.root = Pathname(__dir__).join('persistence')
5
+ config.name = :persistence
6
+ end
7
+
8
+ require 'db'
9
+
10
+ register(:db, Db.new)
11
+ end
12
+ end
@@ -0,0 +1,35 @@
1
+ require 'main/entities/user'
2
+
3
+ RSpec.describe '/users', type: :request do
4
+ describe 'GET /users' do
5
+ it 'renders hello template' do
6
+ get '/users'
7
+
8
+ expect(last_response).to be_ok
9
+
10
+ expect(last_response.body).to eql(
11
+ '<!DOCTYPE html><html><head><title>Woohaa</title></head><body><h1>Users</h1><div class="users"><ul><li>Jane</li><li>Joe</li></ul></div></body></html>'
12
+ )
13
+ end
14
+ end
15
+
16
+ describe 'POST /users' do
17
+ it 'creates a user' do
18
+ user = { id: '1', name: 'Jane' }
19
+
20
+ post '/users', user: user
21
+
22
+ expect(last_response).to be_created
23
+
24
+ expect(container['main.persistence.repositories.users'].all).to eql([Main::Entities::User.new('1', 'Jane')])
25
+ end
26
+
27
+ it 'redirects when name is missing' do
28
+ user = { id: '1' }
29
+
30
+ post '/users', user: user
31
+
32
+ expect(last_response).to be_redirect
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+
3
+ if RUBY_ENGINE == "rbx"
4
+ require "codeclimate-test-reporter"
5
+ CodeClimate::TestReporter.start
6
+ end
7
+
8
+ begin
9
+ require 'byebug'
10
+ rescue LoadError; end
11
+
12
+ require 'pathname'
13
+ require 'rack/test'
14
+ require 'slim'
15
+
16
+ ENV['RACK_ENV'] = 'test'
17
+
18
+ SPEC_ROOT = Pathname(__FILE__).dirname
19
+
20
+ Dir[SPEC_ROOT.join('support/*.rb').to_s].each { |f| require f }
21
+ Dir[SPEC_ROOT.join('shared/*.rb').to_s].each { |f| require f }
22
+
23
+ require SPEC_ROOT.join('dummy/core/boot').to_s
24
+
25
+ module Test; end
26
+
27
+ RSpec.configure do |config|
28
+ config.disable_monkey_patching!
29
+
30
+ config.before(:suite) do
31
+ Dummy::Application.freeze
32
+ end
33
+
34
+ config.include Rack::Test::Methods, type: :request
35
+ config.include Helpers
36
+
37
+ config.before do
38
+ @test_constants = Test.constants
39
+ end
40
+
41
+ config.after do
42
+ added_constants = Test.constants - @test_constants
43
+ added_constants.each { |name| Test.send(:remove_const, name) }
44
+ end
45
+ end
@@ -0,0 +1,15 @@
1
+ module Helpers
2
+ module_function
3
+
4
+ def fixtures_path
5
+ SPEC_ROOT.join('fixtures')
6
+ end
7
+
8
+ def container
9
+ Main::Container
10
+ end
11
+
12
+ def app
13
+ Dummy::Application.app
14
+ end
15
+ end
metadata ADDED
@@ -0,0 +1,214 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dry-web-roda
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Piotr Solnica
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-06-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dry-configurable
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: roda
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.14'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: roda-flow
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.3'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.7'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '11.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '11.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: capybara
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.5'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.5'
111
+ description: Roda integration for dry-web apps
112
+ email:
113
+ - piotr.solnica@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".rspec"
120
+ - ".travis.yml"
121
+ - CHANGELOG.md
122
+ - Gemfile
123
+ - LICENSE
124
+ - README.md
125
+ - Rakefile
126
+ - dry-web-roda.gemspec
127
+ - lib/dry-web-roda.rb
128
+ - lib/dry/web/roda/application.rb
129
+ - lib/dry/web/roda/version.rb
130
+ - spec/dummy/apps/main/core/boot.rb
131
+ - spec/dummy/apps/main/core/main/application.rb
132
+ - spec/dummy/apps/main/core/main/container.rb
133
+ - spec/dummy/apps/main/core/main/import.rb
134
+ - spec/dummy/apps/main/core/main/requests.rb
135
+ - spec/dummy/apps/main/core/main/view.rb
136
+ - spec/dummy/apps/main/lib/main/entities/user.rb
137
+ - spec/dummy/apps/main/lib/main/persistence/repositories/users.rb
138
+ - spec/dummy/apps/main/lib/main/transactions/register_user.rb
139
+ - spec/dummy/apps/main/lib/main/views/users/index.rb
140
+ - spec/dummy/apps/main/log/.gitkeep
141
+ - spec/dummy/apps/main/log/app.log
142
+ - spec/dummy/apps/main/requests/users.rb
143
+ - spec/dummy/apps/main/web/routes/users.rb
144
+ - spec/dummy/apps/main/web/templates/layouts/app.html.slim
145
+ - spec/dummy/apps/main/web/templates/users/index.html.slim
146
+ - spec/dummy/apps/main/web/templates/users/index/_list.html.slim
147
+ - spec/dummy/apps/main/web/templates/users/index/_list_item.html.slim
148
+ - spec/dummy/bin/console
149
+ - spec/dummy/config.ru
150
+ - spec/dummy/config/application.yml
151
+ - spec/dummy/core/boot.rb
152
+ - spec/dummy/core/dummy/application.rb
153
+ - spec/dummy/core/dummy/container.rb
154
+ - spec/dummy/log/.gitkeep
155
+ - spec/dummy/shared/persistence.rb
156
+ - spec/dummy/shared/persistence/db.rb
157
+ - spec/request/users_spec.rb
158
+ - spec/spec_helper.rb
159
+ - spec/support/helpers.rb
160
+ homepage: https://github.com/dry-rb/dry-web-roda
161
+ licenses:
162
+ - MIT
163
+ metadata: {}
164
+ post_install_message:
165
+ rdoc_options: []
166
+ require_paths:
167
+ - lib
168
+ required_ruby_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ required_rubygems_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ requirements: []
179
+ rubyforge_project:
180
+ rubygems_version: 2.5.1
181
+ signing_key:
182
+ specification_version: 4
183
+ summary: Roda integration for dry-web apps
184
+ test_files:
185
+ - spec/dummy/apps/main/core/boot.rb
186
+ - spec/dummy/apps/main/core/main/application.rb
187
+ - spec/dummy/apps/main/core/main/container.rb
188
+ - spec/dummy/apps/main/core/main/import.rb
189
+ - spec/dummy/apps/main/core/main/requests.rb
190
+ - spec/dummy/apps/main/core/main/view.rb
191
+ - spec/dummy/apps/main/lib/main/entities/user.rb
192
+ - spec/dummy/apps/main/lib/main/persistence/repositories/users.rb
193
+ - spec/dummy/apps/main/lib/main/transactions/register_user.rb
194
+ - spec/dummy/apps/main/lib/main/views/users/index.rb
195
+ - spec/dummy/apps/main/log/.gitkeep
196
+ - spec/dummy/apps/main/log/app.log
197
+ - spec/dummy/apps/main/requests/users.rb
198
+ - spec/dummy/apps/main/web/routes/users.rb
199
+ - spec/dummy/apps/main/web/templates/layouts/app.html.slim
200
+ - spec/dummy/apps/main/web/templates/users/index.html.slim
201
+ - spec/dummy/apps/main/web/templates/users/index/_list.html.slim
202
+ - spec/dummy/apps/main/web/templates/users/index/_list_item.html.slim
203
+ - spec/dummy/bin/console
204
+ - spec/dummy/config.ru
205
+ - spec/dummy/config/application.yml
206
+ - spec/dummy/core/boot.rb
207
+ - spec/dummy/core/dummy/application.rb
208
+ - spec/dummy/core/dummy/container.rb
209
+ - spec/dummy/log/.gitkeep
210
+ - spec/dummy/shared/persistence.rb
211
+ - spec/dummy/shared/persistence/db.rb
212
+ - spec/request/users_spec.rb
213
+ - spec/spec_helper.rb
214
+ - spec/support/helpers.rb