ronin-rb/ronin-web-server

View on GitHub
ChangeLog.md

Summary

Maintainability
Test Coverage
### 0.1.1 / 2023-03-01

* Correctly set the `bind` setting in {Ronin::Web::Server::Base} to ensure it
  will always listen on `0.0.0.0`.
* Allow `directory` and `mount` to accept directory paths ending with a `/`.
* Increased test coverage.

### 0.1.0 / 2023-02-01

* Extracted and refactored from [ronin-web](https://github.com/ronin-rb/ronin-web/tree/v0.3.0.rc1).
* Relicensed as LGPL-3.0.
* Initial release:
  * Requires `ruby` >= 3.0.0.
  * Provides a [Sinatra][sinatra] based
    {Ronin::Web::Server::Base web server base class}.
  * Supports additional routing helper methods:
    * `any` - matches any HTTP request method.
    * `default` - default response for the app.
    * `basic_auth` - enables Basic-Auth for the app.
    * `redirect` - adds a redirect to a given URL for the given path.
    * `file` - mounts a local file to the given path.
    * `directory` - mounts a local directory of files at the given path.
    * `public_dir` - mounts the files/directories within the directory to the
      root of the app.
    * `vhost` - routes all requests for the given host to another app.
    * `mount` - routes all requests for a given directory to another app.
  * Supports additional routing conditions:
    * `client_ip` - matches the client IP Address that sent the request.
    * `asn` - matches the AS number of the client's IP address.
    * `country_code` - matches the country code of the ASN information for the
      client's IP address.
    * `asn_name` - matches the company/ISP name of the ASN information for the
      client's IP address.
    * `host` - matches the `Host` header.
    * `referer` - matches the `Referer` header of the request.
    * `user_agent` - matches the `User-Agent` header of the request.
    * `browser` - matches the browser name from the `User-Agent` header of the
      request.
    * `browser_vendor` - matches the browser vendor from the `User-Agent` header
      of the request.
    * `browser_version` - matches the browser version from the `User-Agent`
      header of the request.
    * `device_type` - matches the device type of the `User-Agent` header of the
      request.
    * `os` - matches the OS from the `User-Agent` header of the request.
    * `os_version` - matches the OS version from the `User-Agent` header of the
      request.