docopt
Version, currently master branch1 version
- master branchlatestMay 25, 2026
github.com/chenkovsky/docopt.cr
docopt for crystal-lang
25 stars
1 dependent
License: MIT
Installation
# Add this to your shard.yml
dependencies:
docopt:
github: chenkovsky/docopt.cr
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
- no constraint declared
- License
- MIT
- Authors
- chenkovsky.chen <chenkov@yeah.net>, Roberto Alsina <roberto.alsina@gmail.com>
Dependencies
This version declares no dependencies.
README
# docopt.cr
docopt for crystal-lang
## Installation
Add this to your application's `shard.yml`:
```yaml
dependencies:
docopt:
github: chenkovsky/docopt.cr
```
## Usage
```crystal
require "docopt"
describe "Docopt" do
# TODO: Write tests
it "works" do
doc = <<-DOC
Naval Fate.
Usage:
naval_fate ship new <name>...
naval_fate ship <name> move <x> <y> [--speed=<kn>]
naval_fate ship shoot <x> <y>
naval_fate mine (set|remove) <x> <y> [--moored|--drifting]
naval_fate -h | --help
naval_fate --version
Options:
-h --help Show this screen.
--version Show version.
--speed=<kn> Speed in knots [default: 10].
--moored Moored (anchored) mine.
--drifting Drifting mine.
DOC
std = {"ship" => true, "new" => false, "<name>" => ["A"], "move" => true, "<x>" => "a", "<y>" => "b", "--speed" => "3", "shoot" => false, "mine" => false, "set" => false, "remove" => false, "--moored" => nil, "--drifting" => nil, "-h" => nil, "--help" => false, "--version" => nil}
ans = Docopt.docopt(doc, argv = ["ship", "A", "move", "a", "b", "--speed=3"])
ans["<name>"].should eq(std["<name>"])
end
it "one or more" do
doc = <<-DOC
test
Usage:
naval [--files=files...]
DOC
ans = Docopt.docopt(doc, argv = ["--files=a.txt", "--files=b.txt"])
farr = ans["--files"] as Array(String)
"a.txt".should eq(farr[0])
"b.txt".should eq(farr[1])
end
end
```
## Development
TODO: Write development instructions here
## Contributing
1. Fork it ( https://github.com/ralsina/docopt.cr/fork )
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
- [chenkovsky](https://github.com/chenkovsky) chenkovsky.chen - creator, maintainer
- [ralsina](https://github.com/ralsina) Roberto Alsina - minor fixes, maintainer of a fork
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- May 25, 2026
- Indexed
- yes
Dependents
Repository
github.com/chenkovsky/docopt.cr
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 1