Yeager
Simple router implementation for Crystal, named after "Router Man" - William Yeager. It supports basic router requirements with speed but not battle-tested.
Installation
Add this to your application's shard.yml
:
dependencies:
yeager:
github: gokmen/yeager
Usage
require "yeager"
# Create router instance
router = Yeager::Router.new
# Define your routes
router.add "/foo"
router.add "/foo/:hello"
# Run a route on router which will return nil or an
# Hash(Symbol | String => String) if there is a match
router.run "/foo" # -> {:path => "/foo"}
router.run "/foo/world" # -> {"hello" => "world", :path => "/foo/:hello"}
router.run "/bar" # -> nil
You can checkout tests for more examples and documentation can be accessed from here.
Todo
- Add optional argument support like
/foo/:bar?
- Add glob support like
/foo/*
Contributing
- Fork it ( https://github.com/gokmen/yeager/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
- Gokmen Goksel - creator, maintainer