cl 0.1.28 → 1.0.0

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.
Files changed (73) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +19 -1
  4. data/NOTES.md +2 -0
  5. data/README.md +210 -142
  6. data/examples/args/cast +53 -41
  7. data/examples/args/opts +72 -14
  8. data/examples/args/required +28 -14
  9. data/examples/args/splat +29 -32
  10. data/examples/gem +26 -37
  11. data/examples/heroku +15 -16
  12. data/examples/rakeish +13 -15
  13. data/examples/readme/abstract +6 -5
  14. data/examples/readme/alias +4 -7
  15. data/examples/readme/arg +4 -2
  16. data/examples/readme/arg_array +4 -2
  17. data/examples/readme/arg_type +3 -1
  18. data/examples/readme/args_splat +13 -4
  19. data/examples/readme/default +2 -2
  20. data/examples/readme/deprecated +3 -6
  21. data/examples/readme/deprecated_alias +2 -4
  22. data/examples/readme/downcase +2 -2
  23. data/examples/readme/enum +10 -5
  24. data/examples/readme/example +6 -4
  25. data/examples/readme/format +9 -7
  26. data/examples/readme/internal +8 -4
  27. data/examples/readme/negate +20 -5
  28. data/examples/readme/node +19 -0
  29. data/examples/readme/opts +8 -8
  30. data/examples/readme/opts_block +4 -3
  31. data/examples/readme/range +9 -7
  32. data/examples/readme/required +9 -7
  33. data/examples/readme/requireds +26 -18
  34. data/examples/readme/requires +13 -14
  35. data/examples/readme/secret +7 -9
  36. data/examples/readme/see +6 -8
  37. data/examples/readme/type +2 -6
  38. data/examples/src/args/cast.erb.rb +96 -0
  39. data/examples/src/args/opts.erb.rb +96 -0
  40. data/examples/src/args/required.erb.rb +61 -0
  41. data/examples/src/args/splat.erb.rb +55 -0
  42. data/examples/src/gem.erb.rb +95 -0
  43. data/examples/src/heroku.erb.rb +47 -0
  44. data/examples/src/rakeish.erb.rb +54 -0
  45. data/examples/src/readme/abstract.erb.rb +25 -0
  46. data/examples/src/readme/alias.erb.rb +20 -0
  47. data/examples/src/readme/arg.erb.rb +19 -0
  48. data/examples/src/readme/arg_array.erb.rb +19 -0
  49. data/examples/src/readme/arg_type.erb.rb +21 -0
  50. data/examples/src/readme/args_splat.erb.rb +49 -0
  51. data/examples/src/readme/array.erb.rb +19 -0
  52. data/examples/src/readme/default.erb.rb +19 -0
  53. data/examples/src/readme/deprecated.erb.rb +19 -0
  54. data/examples/src/readme/deprecated_alias.erb.rb +19 -0
  55. data/examples/src/readme/downcase.erb.rb +19 -0
  56. data/examples/src/readme/enum.erb.rb +33 -0
  57. data/examples/src/readme/example.erb.rb +23 -0
  58. data/examples/src/readme/format.erb.rb +33 -0
  59. data/examples/src/readme/internal.erb.rb +26 -0
  60. data/examples/src/readme/negate.erb.rb +35 -0
  61. data/examples/src/readme/node.erb.rb +23 -0
  62. data/examples/src/readme/opts.erb.rb +31 -0
  63. data/examples/src/readme/opts_block.erb.rb +28 -0
  64. data/examples/src/readme/range.erb.rb +33 -0
  65. data/examples/src/readme/required.erb.rb +33 -0
  66. data/examples/src/readme/requireds.erb.rb +44 -0
  67. data/examples/src/readme/requires.erb.rb +33 -0
  68. data/examples/src/readme/secret.erb.rb +20 -0
  69. data/examples/src/readme/see.erb.rb +23 -0
  70. data/examples/src/readme/type.erb.rb +19 -0
  71. data/lib/cl/ui.rb +2 -2
  72. data/lib/cl/version.rb +1 -1
  73. metadata +40 -10
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', type: :array
9
+
10
+ def run
11
+ p to
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --to one --to two))" %>
18
+
19
+ <%= out '["one", "two"]' %>
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', default: 'default'
9
+
10
+ def run
11
+ p to: to
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add))" %>
18
+
19
+ <%= out '{:to=>"default"}' %>
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--target GROUP', deprecated: 'Deprecated.'
9
+
10
+ def run
11
+ p target: target, deprecations: deprecations
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --target one))" %>
18
+
19
+ <%= out '{:target=>"one", :deprecations=>{:target=>"Deprecated."}}' %>
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', alias: :target, deprecated: :target
9
+
10
+ def run
11
+ p to: to, deprecations: deprecations
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --target one))" %>
18
+
19
+ <%= out '{:to=>"one", :deprecations=>{:target=>:to}}' %>
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', downcase: true
9
+
10
+ def run
11
+ p to: to
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --to ONE))" %>
18
+
19
+ <%= out '{:to=>"one"}' %>
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', enum: %w(one two)
9
+
10
+ def run
11
+ p to: to
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --to one))" %>
18
+
19
+ <%= out '{:to=>"one"}' %>
20
+
21
+ <%= run "Cl.new('owners').run(%w(add --to unknown))" %>
22
+
23
+ <%= out sq(<<-'str')
24
+ Unknown value: to=unknown (known values: one, two)
25
+
26
+ Usage: owners add [options]
27
+
28
+ Options:
29
+
30
+ --to GROUP type: string, known values: one, two
31
+ --help Get help on this command
32
+ str
33
+ %>
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', example: 'group-one'
9
+ end
10
+ rb
11
+ -%>
12
+
13
+ <%= run "Cl.new('owners').run(%w(add --help))" %>
14
+
15
+ <%= out sq(<<-'str')
16
+ Usage: owners add [options]
17
+
18
+ Options:
19
+
20
+ --to GROUP type: string, e.g.: group-one
21
+ --help Get help on this command
22
+ str
23
+ %>
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', format: /^\w+$/
9
+
10
+ def run
11
+ p to: to
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --to one))" %>
18
+
19
+ <%= out '{:to=>"one"}' %>
20
+
21
+ <%= run "Cl.new('owners').run(['add', '--to', 'does not match!'])" %>
22
+
23
+ <%= out sq(<<-'str')
24
+ Invalid format: to (format: /^\w+$/)
25
+
26
+ Usage: owners add [options]
27
+
28
+ Options:
29
+
30
+ --to GROUP type: string, format: /^\w+$/
31
+ --help Get help on this command
32
+ str
33
+ %>
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ require 'cl'
5
+
6
+ <%= run sq(<<-'rb')
7
+ require 'cl'
8
+
9
+ class Add < Cl::Cmd
10
+ opt '--to GROUP'
11
+ opt '--hidden', internal: true
12
+ end
13
+ rb
14
+ -%>
15
+
16
+ <%= run "Cl.new('owners').run(%w(add --help))" %>
17
+
18
+ <%= out sq(<<-'str')
19
+ Usage: owners add [options]
20
+
21
+ Options:
22
+
23
+ --to GROUP type: string
24
+ --help Get help on this command
25
+ str
26
+ %>
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--notifications', 'Send out notifications to the team', negate: %w(skip)
9
+
10
+ def run
11
+ p notifications?
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --notifications))" %>
18
+
19
+ <%= out 'true' %>
20
+
21
+ <%= run "Cl.new('owners').run(%w(add --no_notifications))" %>
22
+
23
+ <%= out 'false' %>
24
+
25
+ <%= run "Cl.new('owners').run(%w(add --no-notifications))" %>
26
+
27
+ <%= out 'false' %>
28
+
29
+ <%= run "Cl.new('owners').run(%w(add --skip_notifications))" %>
30
+
31
+ <%= out 'false' %>
32
+
33
+ <%= run "Cl.new('owners').run(%w(add --skip-notifications))" %>
34
+
35
+ <%= out 'false' %>
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', note: 'needs to be a group'
9
+ end
10
+ rb
11
+ -%>
12
+
13
+ <%= run "Cl.new('owners').run(%w(add --help))" %>
14
+
15
+ <%= out sq(<<-'str')
16
+ Usage: owners add [options]
17
+
18
+ Options:
19
+
20
+ --to GROUP type: string, note: needs to be a group
21
+ --help Get help on this command
22
+ str
23
+ %>
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', 'Target group to add owners to'
9
+
10
+ def run
11
+ p opts: opts, to: to, to?: to?
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --to one))" %>
18
+
19
+ <%= out '{:opts=>{:to=>"one"}, :to=>"one", :to?=>true}' %>
20
+
21
+ <%= run "Cl.new('owners').run(%w(add --help))" %>
22
+
23
+ <%= out sq(<<-'str')
24
+ Usage: owners add [options]
25
+
26
+ Options:
27
+
28
+ --to GROUP Target group to add owners to (type: string)
29
+ --help Get help on this command
30
+ str
31
+ %>
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ # depending on its arity the block can receive:
9
+ #
10
+ # * value
11
+ # * value, name
12
+ # * value, name, type
13
+ # * value, name, type, opts
14
+ opt '--to GROUP' do |value|
15
+ opts[:to] = "group-#{value}"
16
+ end
17
+
18
+ def run
19
+ p to: to
20
+ end
21
+ end
22
+ rb
23
+ -%>
24
+
25
+ <%= run "Cl.new('owners').run(%w(add --to one))" %>
26
+
27
+ <%= out '{:to=>"group-one"}' %>
28
+
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--retries COUNT', type: :integer, min: 1, max: 5
9
+
10
+ def run
11
+ p retries: retries
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --retries 1))" %>
18
+
19
+ <%= out '{:retries=>1}' %>
20
+
21
+ <%= run "Cl.new('owners').run(%w(add --retries 10))" %>
22
+
23
+ <%= out sq(<<-'str')
24
+ Out of range: retries (min: 1, max: 5)
25
+
26
+ Usage: owners add [options]
27
+
28
+ Options:
29
+
30
+ --retries COUNT type: integer, min: 1, max: 5
31
+ --help Get help on this command
32
+ str
33
+ %>
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ require 'cl'
6
+
7
+ class Add < Cl::Cmd
8
+ opt '--to GROUP', required: true
9
+
10
+ def run
11
+ p to: to
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --to one))" %>
18
+
19
+ <%= out '{:to=>"one"}' %>
20
+
21
+ <%= run "Cl.new('owners').run(%w(add))" %>
22
+
23
+ <%= out sq(<<-'str')
24
+ Missing required option: to
25
+
26
+ Usage: owners add [options]
27
+
28
+ Options:
29
+
30
+ --to GROUP type: string, required: true
31
+ --help Get help on this command
32
+ str
33
+ %>
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ class Add < Cl::Cmd
6
+ # read DNF, i.e. "token OR user AND pass
7
+ required :token, [:user, :pass]
8
+
9
+ opt '--token TOKEN'
10
+ opt '--user NAME'
11
+ opt '--pass PASS'
12
+
13
+ def run
14
+ p token: token, user: user, pass: pass
15
+ end
16
+ end
17
+ rb
18
+ -%>
19
+
20
+ <%= run "Cl.new('owners').run(%w(add --token token))" %>
21
+
22
+ <%= out '{:token=>"token", :user=>nil, :pass=>nil}' %>
23
+
24
+ <%= run "Cl.new('owners').run(%w(add --user user --pass pass))" %>
25
+
26
+ <%= out '{:token=>nil, :user=>"user", :pass=>"pass"}' %>
27
+
28
+ <%= run "Cl.new('owners').run(%w(add))" %>
29
+
30
+ <%= out sq(<<-'str')
31
+ Missing options: token, or user and pass
32
+
33
+ Usage: owners add [options]
34
+
35
+ Options:
36
+
37
+ Either token, or user and pass are required.
38
+
39
+ --token TOKEN type: string
40
+ --user NAME type: string
41
+ --pass PASS type: string
42
+ --help Get help on this command
43
+ str
44
+ %>