Etag
Library to generate HTTP ETags (RFC 7232).
Installation
Add this to your application's shard.yml
:
dependencies:
etag:
github: SuperPaintman/etag
Usage
require "etag"
# === Based on file stat ===
Etag.etag File.lstat("./README.md")
# => "\"a19-582e0568"\"
# or weak
Etag.etag File.lstat("./README.md", weak: true)
# => "W/\"a19-582e0568"\"
# === Based on file entity ===
Etag.etag File.read("./README.md")
# => "\"a19-UDMQYeZ+VMk+2Fv11x6Mu/JkktE\""
# or weak
Etag.etag File.read("./README.md")
# => "W/\"a19-UDMQYeZ+VMk+2Fv11x6Mu/JkktE\""
or with including:
require "etag"
include Etag
etag File.read("./README.md")
# => "W/\"a19-UDMQYeZ+VMk+2Fv11x6Mu/JkktE\""
# ...
Test
crystal spec
Contributing
- Fork it (https://github.com/SuperPaintman/etag/fork)
- Create your feature branch (
git checkout -b feature/<feature_name>
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin feature/<feature_name>
) - Create a new Pull Request
Contributors
- SuperPaintman SuperPaintman - creator, maintainer