├── .editorconfig ├── .gitignore ├── .rspec ├── .rubocop.yml ├── CODE_OF_CONDUCT.md ├── Gemfile ├── LICENSE.txt ├── README.md ├── Rakefile ├── TODOS.md ├── bin ├── console └── setup ├── example ├── Gemfile ├── Gemfile.lock ├── config.ru └── example.rb ├── lib ├── modern.rb └── modern │ ├── app.rb │ ├── app │ ├── error_handling.rb │ ├── request_handling.rb │ ├── request_handling │ │ ├── input_handling.rb │ │ ├── output_handling.rb │ │ └── request_container.rb │ ├── router.rb │ └── trie_router.rb │ ├── capsule.rb │ ├── configuration.rb │ ├── core_ext │ ├── array.rb │ └── hash.rb │ ├── descriptor.rb │ ├── descriptor │ ├── content.rb │ ├── converters.rb │ ├── converters │ │ ├── input │ │ │ ├── base.rb │ │ │ └── json.rb │ │ └── output │ │ │ ├── base.rb │ │ │ ├── json.rb │ │ │ └── yaml.rb │ ├── core.rb │ ├── info.rb │ ├── parameters.rb │ ├── request_body.rb │ ├── response.rb │ ├── route.rb │ ├── security.rb │ └── server.rb │ ├── doc_generator │ ├── open_api3.rb │ └── open_api3 │ │ ├── operations.rb │ │ ├── paths.rb │ │ ├── schema_default_types.rb │ │ ├── schemas.rb │ │ └── security_schemes.rb │ ├── dsl.rb │ ├── dsl │ ├── info.rb │ ├── response_builder.rb │ ├── root.rb │ ├── route_builder.rb │ ├── scope.rb │ └── scope_settings.rb │ ├── errors.rb │ ├── errors │ ├── error.rb │ ├── setup_errors.rb │ └── web_errors.rb │ ├── redirect.rb │ ├── request.rb │ ├── response.rb │ ├── services.rb │ ├── struct.rb │ ├── types.rb │ ├── util │ ├── header_parsing.rb │ └── trie_node.rb │ └── version.rb ├── manual └── 01-why_modern.md ├── modern.gemspec └── spec ├── modern ├── app │ └── trie_router_spec.rb ├── app_spec.rb ├── descriptor │ ├── content_spec.rb │ ├── parameters_spec.rb │ ├── request_body_spec.rb │ ├── route_spec.rb │ ├── routes.rb │ └── security_spec.rb ├── doc_generator │ └── open_api3_spec.rb ├── dsl_spec.rb └── request_spec.rb └── spec_helper.rb /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/.gitignore -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --require spec_helper 2 | --format documentation -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/Rakefile -------------------------------------------------------------------------------- /TODOS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/TODOS.md -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/bin/console -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/bin/setup -------------------------------------------------------------------------------- /example/Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/example/Gemfile -------------------------------------------------------------------------------- /example/Gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/example/Gemfile.lock -------------------------------------------------------------------------------- /example/config.ru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/example/config.ru -------------------------------------------------------------------------------- /example/example.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/example/example.rb -------------------------------------------------------------------------------- /lib/modern.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern.rb -------------------------------------------------------------------------------- /lib/modern/app.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/app.rb -------------------------------------------------------------------------------- /lib/modern/app/error_handling.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/app/error_handling.rb -------------------------------------------------------------------------------- /lib/modern/app/request_handling.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/app/request_handling.rb -------------------------------------------------------------------------------- /lib/modern/app/request_handling/input_handling.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/app/request_handling/input_handling.rb -------------------------------------------------------------------------------- /lib/modern/app/request_handling/output_handling.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/app/request_handling/output_handling.rb -------------------------------------------------------------------------------- /lib/modern/app/request_handling/request_container.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/app/request_handling/request_container.rb -------------------------------------------------------------------------------- /lib/modern/app/router.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/app/router.rb -------------------------------------------------------------------------------- /lib/modern/app/trie_router.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/app/trie_router.rb -------------------------------------------------------------------------------- /lib/modern/capsule.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/capsule.rb -------------------------------------------------------------------------------- /lib/modern/configuration.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/configuration.rb -------------------------------------------------------------------------------- /lib/modern/core_ext/array.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/core_ext/array.rb -------------------------------------------------------------------------------- /lib/modern/core_ext/hash.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/core_ext/hash.rb -------------------------------------------------------------------------------- /lib/modern/descriptor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/content.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/content.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/converters.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/converters.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/converters/input/base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/converters/input/base.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/converters/input/json.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/converters/input/json.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/converters/output/base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/converters/output/base.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/converters/output/json.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/converters/output/json.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/converters/output/yaml.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/converters/output/yaml.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/core.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/core.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/info.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/info.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/parameters.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/parameters.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/request_body.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/request_body.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/response.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/response.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/route.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/route.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/security.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/security.rb -------------------------------------------------------------------------------- /lib/modern/descriptor/server.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/descriptor/server.rb -------------------------------------------------------------------------------- /lib/modern/doc_generator/open_api3.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/doc_generator/open_api3.rb -------------------------------------------------------------------------------- /lib/modern/doc_generator/open_api3/operations.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/doc_generator/open_api3/operations.rb -------------------------------------------------------------------------------- /lib/modern/doc_generator/open_api3/paths.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/doc_generator/open_api3/paths.rb -------------------------------------------------------------------------------- /lib/modern/doc_generator/open_api3/schema_default_types.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/doc_generator/open_api3/schema_default_types.rb -------------------------------------------------------------------------------- /lib/modern/doc_generator/open_api3/schemas.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/doc_generator/open_api3/schemas.rb -------------------------------------------------------------------------------- /lib/modern/doc_generator/open_api3/security_schemes.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/doc_generator/open_api3/security_schemes.rb -------------------------------------------------------------------------------- /lib/modern/dsl.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/dsl.rb -------------------------------------------------------------------------------- /lib/modern/dsl/info.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/dsl/info.rb -------------------------------------------------------------------------------- /lib/modern/dsl/response_builder.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/dsl/response_builder.rb -------------------------------------------------------------------------------- /lib/modern/dsl/root.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/dsl/root.rb -------------------------------------------------------------------------------- /lib/modern/dsl/route_builder.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/dsl/route_builder.rb -------------------------------------------------------------------------------- /lib/modern/dsl/scope.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/dsl/scope.rb -------------------------------------------------------------------------------- /lib/modern/dsl/scope_settings.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/dsl/scope_settings.rb -------------------------------------------------------------------------------- /lib/modern/errors.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/errors.rb -------------------------------------------------------------------------------- /lib/modern/errors/error.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/errors/error.rb -------------------------------------------------------------------------------- /lib/modern/errors/setup_errors.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/errors/setup_errors.rb -------------------------------------------------------------------------------- /lib/modern/errors/web_errors.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/errors/web_errors.rb -------------------------------------------------------------------------------- /lib/modern/redirect.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/redirect.rb -------------------------------------------------------------------------------- /lib/modern/request.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/request.rb -------------------------------------------------------------------------------- /lib/modern/response.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/response.rb -------------------------------------------------------------------------------- /lib/modern/services.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/services.rb -------------------------------------------------------------------------------- /lib/modern/struct.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/struct.rb -------------------------------------------------------------------------------- /lib/modern/types.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/types.rb -------------------------------------------------------------------------------- /lib/modern/util/header_parsing.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/util/header_parsing.rb -------------------------------------------------------------------------------- /lib/modern/util/trie_node.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/util/trie_node.rb -------------------------------------------------------------------------------- /lib/modern/version.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/lib/modern/version.rb -------------------------------------------------------------------------------- /manual/01-why_modern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/manual/01-why_modern.md -------------------------------------------------------------------------------- /modern.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/modern.gemspec -------------------------------------------------------------------------------- /spec/modern/app/trie_router_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/app/trie_router_spec.rb -------------------------------------------------------------------------------- /spec/modern/app_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/app_spec.rb -------------------------------------------------------------------------------- /spec/modern/descriptor/content_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/descriptor/content_spec.rb -------------------------------------------------------------------------------- /spec/modern/descriptor/parameters_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/descriptor/parameters_spec.rb -------------------------------------------------------------------------------- /spec/modern/descriptor/request_body_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/descriptor/request_body_spec.rb -------------------------------------------------------------------------------- /spec/modern/descriptor/route_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/descriptor/route_spec.rb -------------------------------------------------------------------------------- /spec/modern/descriptor/routes.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/descriptor/routes.rb -------------------------------------------------------------------------------- /spec/modern/descriptor/security_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/descriptor/security_spec.rb -------------------------------------------------------------------------------- /spec/modern/doc_generator/open_api3_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/doc_generator/open_api3_spec.rb -------------------------------------------------------------------------------- /spec/modern/dsl_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/dsl_spec.rb -------------------------------------------------------------------------------- /spec/modern/request_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/modern/request_spec.rb -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/modern-project/modern-ruby/HEAD/spec/spec_helper.rb --------------------------------------------------------------------------------