• Stars
    star
    23
  • Rank 984,160 (Top 20 %)
  • Language
    Crystal
  • License
    MIT License
  • Created about 8 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

docopt for crystal-lang

docopt.cr

docopt for crystal-lang

Installation

Add this to your application's shard.yml:

dependencies:
  docopt:
    github: chenkovsky/docopt.cr

Usage

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

TODO: Write usage instructions here

Development

TODO: Write development instructions here

Contributing

  1. Fork it ( https://github.com/chenkovsky/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 chenkovsky.chen - creator, maintainer

More Repositories

1

aha

useful algorithm for text processing. includes ahocorasick automaton, suffix automaton, symspell....
Crystal
8
star
2

aho_corasick

aho_corasick for crystal-lang
Crystal
5
star
3

heap.cr

data structure heap for crystal-lang
Crystal
4
star
4

kuhn_munkres

kuhn munkres algorithm c implementation
C
4
star
5

super_template

SQL Template for Ruby
Ruby
4
star
6

pygoogle

useful google apis for language processing
Python
3
star
7

ngram

efficient data structure for storing ngram.
C
3
star
8

cookie_export

export cookie from firefox and chrome
Python
3
star
9

xegex

excellent regular expression tool.
Crystal
3
star
10

app_spiders

spiders crawl android app
Python
2
star
11

huffman

huffman algorithm in crystal
Crystal
2
star
12

darts-clone

Automatically exported from code.google.com/p/darts-clone
C++
2
star
13

pyngram

python binding for ngram query library
C
2
star
14

shears

lm prune by size, based on srilm
C++
2
star
15

mxnet.cr

mxnet bind for crystal-lang [WIP]
Crystal
2
star
16

rbngram

ruby binding for ngram query
C
2
star
17

lmprune

prune language model by gram num
C++
2
star
18

recpy

recommend system based on sklearn and numpy. It uses vector operation, so it's very fast.
Python
2
star
19

LuceneBench

Lucene Benchmark : benchmarking Lucene vs. SeekStorm
Java
1
star
20

rake_hdfs

a patch makes rake run on hdfs file system
Ruby
1
star
21

graphviz.cr

Crystal
1
star
22

crytok

Fastest configurable Indo European Language Tokenizer on earth
Crystal
1
star
23

blis.cr

crystal-lang binding for blis
Crystal
1
star
24

rake_emr

run task on emr with less pain
Ruby
1
star
25

super_io

serialize, deserialize for crystal
Crystal
1
star
26

rsatomic

Rust
1
star
27

fast-params

Python
1
star