tssc.cr v1.0.0
Time::Span
String Converter

Provides a Time::Span::StringConverter
module for parsing and serializing Time::Span
objects as strings. Can be used standalone or with JSON & YAML.
Installation
-
Add the dependency to your
shard.yml
:dependencies: tssc: github: Sija/tssc.cr
-
Run
shards install
Usage
Standalone
require "tssc"
Time::Span::StringConverter.parse("1 hour, 15 minutes") # => 01:15:00
Time::Span::StringConverter.dump(1.hour + 15.minutes) # => "1 hour, 15 minutes"
JSON & YAML
require "json"
require "yaml"
require "tssc"
record FooWithTimeSpan, ttl : Time::Span? do
include JSON::Serializable
include YAML::Serializable
@[JSON::Field(converter: Time::Span::StringConverter)]
@[YAML::Field(converter: Time::Span::StringConverter)]
@ttl : Time::Span?
end
foo = FooWithTimeSpan.from_yaml("ttl: 1 hour, 15 minutes")
foo.ttl # => 01:15:00
[!TIP] Valid string examples:
1w2d3h4m5s
1w 2d 3h 4m 5s
1w 2d 3h 4 min 5 sec
1 week 2 days 3 hours 4 minutes 5 seconds
1 week, 2 days, 3 hours, 4 minutes, 5 seconds
[!NOTE] Allowed suffixes:
- week —
w
,week(s)
- day —
d
,day(s)
- hour —
h
,hour(s)
- minute —
m
,min
,minute(s)
- second —
s
,sec
,second(s)
- nanosecond —
ns
,nanosecond(s)
Contributing
- Fork it (https://github.com/Sija/tssc.cr/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
- Sijawusz Pur Rahnama - creator and maintainer
Repository
tssc.cr
Owner
Statistic
- 3
- 0
- 0
- 1
- 1
- 3 days ago
- October 19, 2025
License
MIT License
Links
Synced at
Thu, 23 Oct 2025 18:02:07 GMT
Languages