Skeleton
A very minimal http server api serving as a platform for incremental middleware.
Installation
- Add the dependency to your shard.yml:
- Run shards install
dependencies:
  skeleton:
    github: Oblivious-Oblivious/skeleton
Usage
require "skeleton"
# Initialize a server choose what middleware to add
server = Skeleton::Server.new
  .add(Skeleton::CORSHandler.new)
  .add(Skeleton::RouteHandler.new # Create a route handler for defining sinatra-like routes
    .get "/" {                    # Define all basic HTTP method routes with callback blocks
      "Hello World"               # Return a `Renderable` value
    }
  )
  .bind_tcp("127.0.0.1", 8080)    # Bind to an address on a port
  .listen;                        # Blocking listen
### Non blocking version
# spawn { server.listen }
###
Development
Future additions / #TODOs
- Write proper documentation
- Refactor the RouteHandlerto avoid conditionals and multiple execution paths
- Try to follow MVC more tightly
Contributing
- Fork it (<https://github.com/Oblivious-Oblivious/skeleton/fork>)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- Oblivious - creator and maintainer