A very minimal http server api serving as a platform for adding middleware incrementally.
-
Add the dependency to your
shard.yml
:dependencies: skeleton: github: Oblivious-Oblivious/skeleton
-
Run
shards install
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 }
###
Future additions / #TODOs
- Write proper documentation
- Refactor the
RouteHandler
to avoid conditionals and multiple execution paths - Try to follow MVC more tightly
- 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
- Oblivious - creator and maintainer