cl 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/NOTES.md +3 -1
- data/README.md +42 -6
- data/examples/owners +28 -0
- data/lib/cl/help/cmd.rb +6 -1
- data/lib/cl/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 531d9fab776f1d706d8c86d087528b1a889f3511197ae5cad48d8c75a6a8aa1d
|
4
|
+
data.tar.gz: f1090e76ddfa1d0cec7a3b054b140eb6d56934ba34db6dfb7deb230eabc26f12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5aa9ba9d3938ac7ca67e138e3f265f3d15ec1e0aad66f7102fe3c2ac1577be3edd2565d1edec045d79d420d5d62e7c833f3fb1e130d410684a441e7c7b44f992
|
7
|
+
data.tar.gz: 82c15f26babdf980a89436e215837e2a54f161a32657764318657a3c45ec8ce60786f2e51973add04011546aae3aedbd4964e5d025450e705aa9d3a513cf8c91
|
data/CHANGELOG.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
* Add config, reading from env vars and yml files (inspired by gem-release)
|
8
8
|
* Add `abstract` in order to signal a cmd is a base class that is not meant to be executed
|
9
|
-
* Add `required :one, [:two, :three]` (DNF, i.e: either
|
9
|
+
* Add `required :one, [:two, :three]` (DNF, i.e: either `:one` or both `:two` and `:three` must be given)
|
10
10
|
* Add `opt '--one STR', type: :array` for options that can be given multiple times
|
11
11
|
* Add `opt '--one STR', default: 'one'`
|
12
12
|
* Add `opt '--one STR', requires :two` or `[:two, :three]` for options that depend on other options
|
data/NOTES.md
CHANGED
data/README.md
CHANGED
@@ -1,22 +1,58 @@
|
|
1
1
|
# CL [](https://travis-ci.org/svenfuchs/cl)
|
2
2
|
|
3
|
-
This library wraps Ruby's `OptionParser` in order to make it easier to use it
|
3
|
+
This library wraps Ruby's `OptionParser` in order to make it easier to use it
|
4
|
+
in an object oriented context.
|
4
5
|
|
5
|
-
|
6
|
+
It uses `OptionParser` for parsing your options, so you get all the goodness that
|
7
|
+
this true gem from Ruby's stoneage provides. But on top of that it also provides
|
8
|
+
a rich DSL for defining, validating, and normalizing options, and automatic and
|
9
|
+
gorgeous help output (modelled after Rubygem's `gem --help` output).
|
10
|
+
|
11
|
+
## Basic Usage
|
6
12
|
|
7
13
|
```ruby
|
8
14
|
module Owners
|
9
|
-
class Add <
|
15
|
+
class Add < Cl::Cmd
|
16
|
+
summary 'Add one or more owners to an existing owner group'
|
10
17
|
|
11
|
-
|
18
|
+
description <<~str
|
19
|
+
Use this command to add one or more owners to an existing
|
20
|
+
owner group.
|
12
21
|
|
13
|
-
|
22
|
+
These will be visible in [...]
|
23
|
+
str
|
14
24
|
|
15
25
|
args :owners
|
16
26
|
|
17
|
-
opt '-t', '--to TO', 'An owner
|
27
|
+
opt '-t', '--to TO', 'An existing owner group' do |value|
|
18
28
|
opts[:to] = value
|
19
29
|
end
|
20
30
|
end
|
21
31
|
end
|
22
32
|
```
|
33
|
+
|
34
|
+
Help output:
|
35
|
+
|
36
|
+
```txt
|
37
|
+
Usage: owners add [owners] [options]
|
38
|
+
|
39
|
+
Arguments:
|
40
|
+
|
41
|
+
owners type: string
|
42
|
+
|
43
|
+
Options:
|
44
|
+
|
45
|
+
-t --to TO An existing owner group (type: string, required: true)
|
46
|
+
--help Get help on this command (type: flag)
|
47
|
+
|
48
|
+
Summary:
|
49
|
+
|
50
|
+
Add one or more owners to an existing owner group
|
51
|
+
|
52
|
+
Description:
|
53
|
+
|
54
|
+
Use this command to add one or more owners to an existing
|
55
|
+
owner group.
|
56
|
+
|
57
|
+
These will be visible in [...]
|
58
|
+
```
|
data/examples/owners
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$: << File.expand_path('lib')
|
3
|
+
|
4
|
+
# Example from the README
|
5
|
+
|
6
|
+
require 'cl'
|
7
|
+
|
8
|
+
module Owners
|
9
|
+
class Add < Cl::Cmd
|
10
|
+
|
11
|
+
register 'owners:add'
|
12
|
+
|
13
|
+
summary 'Add one or more owners to an existing owner group'
|
14
|
+
|
15
|
+
description <<~str
|
16
|
+
Use this command to add one or more owners to an existing
|
17
|
+
owner group.
|
18
|
+
|
19
|
+
These will be visible in [...]
|
20
|
+
str
|
21
|
+
|
22
|
+
args :owners #, 'Comma separated list of owner login names who are to be added to the owner group'
|
23
|
+
|
24
|
+
opt '-t', '--to TO', 'An existing owner group', required: true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Cl.new($0).run(%w(add --help))
|
data/lib/cl/help/cmd.rb
CHANGED
@@ -4,6 +4,8 @@ require 'cl/help/usage'
|
|
4
4
|
class Cl
|
5
5
|
class Help
|
6
6
|
class Cmd
|
7
|
+
include Regex
|
8
|
+
|
7
9
|
attr_reader :cmd
|
8
10
|
|
9
11
|
def initialize(cmd)
|
@@ -100,7 +102,7 @@ class Cl
|
|
100
102
|
opts << "alias: #{format_aliases(opt)}" if opt.aliases?
|
101
103
|
opts << "requires: #{opt.requires.join(', ')}" if opt.requires?
|
102
104
|
opts << "default: #{format_default(opt)}" if opt.default?
|
103
|
-
opts << "known values: #{opt
|
105
|
+
opts << "known values: #{format_enum(opt)}" if opt.enum?
|
104
106
|
opts << "format: #{opt.format}" if opt.format?
|
105
107
|
opts << "downcase: true" if opt.downcase?
|
106
108
|
opts << "max: #{opt.max}" if opt.max?
|
@@ -118,6 +120,9 @@ class Cl
|
|
118
120
|
end.join(', ')
|
119
121
|
end
|
120
122
|
|
123
|
+
def format_enum(opt)
|
124
|
+
opt.enum.map { |value| format_regex(value) }.join(', ')
|
125
|
+
end
|
121
126
|
|
122
127
|
def format_type(obj)
|
123
128
|
return obj.type unless obj.is_a?(Opt) && obj.type == :array
|
data/lib/cl/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sven Fuchs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-05-
|
11
|
+
date: 2019-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: regstry
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- examples/args/splat
|
43
43
|
- examples/gem
|
44
44
|
- examples/heroku
|
45
|
+
- examples/owners
|
45
46
|
- examples/rakeish
|
46
47
|
- lib/cl.rb
|
47
48
|
- lib/cl/arg.rb
|