https://github.com/mamantoha/shards_spec
A shard.yml parser for the Crystal language
https://github.com/mamantoha/shards_spec
crystal hacktoberfest parser shards yaml
Last synced: 6 months ago
JSON representation
A shard.yml parser for the Crystal language
- Host: GitHub
- URL: https://github.com/mamantoha/shards_spec
- Owner: mamantoha
- License: mit
- Created: 2021-01-28T17:42:54.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2023-08-21T08:43:26.000Z (about 2 years ago)
- Last Synced: 2025-03-31T11:41:20.456Z (7 months ago)
- Topics: crystal, hacktoberfest, parser, shards, yaml
- Language: Crystal
- Homepage:
- Size: 22.5 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Shards::Spec

[](https://github.com/mamantoha/shards_spec/releases)
A `shard.yml` parser for the Crystal language.
This library was extracted from [shards](https://github.com/crystal-lang/shards) version `0.10.0`.
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
shards_spec:
github: mamantoha/shards_spec
```
2. Run `shards install`
## Usage
```crystal
require "shards_spec"
str = <<-YAML
name: crest
version: 0.26.6
authors:
- Anton Maminov
description: |
HTTP and REST client for Crystal
crystal: ">= 0.36.0"
dependencies:
http-client-digest_auth:
github: mamantoha/http-client-digest_auth
version: ~> 0.6.0
http_proxy:
github: mamantoha/http_proxy
version: ~> 0.8.0
development_dependencies:
kemal:
github: kemalcr/kemal
version: ~> 0.27.0
ameba:
github: crystal-ameba/ameba
license: MIT
YAML
spec = ShardsSpec::Spec.from_yaml(str)
spec.name
# crest
puts spec.description
# HTTP and REST client for Crystal
puts spec.crystal
# >= 0.36.0
spec.version
# 0.26.6
spec.dependencies.each do |dependency|
"#{dependency.name} | #{dependency.version}"
end
# http-client-digest_auth | ~> 0.6.0
# http_proxy | ~> 0.8.0
spec.development_dependencies.each do |dependency|
"#{dependency.name} | #{dependency.version}"
end
# kemal | ~> 0.27.0
# ameba | *
spec.authors.each do |author|
"#{author.name} | #{author.email}"
end
# => Anton Maminov | anton.maminov@gmail.com
spec.license
# => MIT
```
## Contributing
1. Fork it ()
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [Anton Maminov](https://github.com/mamantoha) - creator and maintainer