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,33 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ class Add < Cl::Cmd
6
+ opt '--to GROUP'
7
+ opt '--other GROUP', requires: :to
8
+
9
+ def run
10
+ p to: to, other: other
11
+ end
12
+ end
13
+ rb
14
+ -%>
15
+
16
+ <%= run "Cl.new('owners').run(%w(add --to one --other two))" %>
17
+
18
+ <%= out '{:to=>"one", :other=>"two"}' %>
19
+
20
+ <%= run "Cl.new('owners').run(%w(add --other two))" %>
21
+
22
+ <%= out sq(<<-'str')
23
+ Missing option: to (required by other)
24
+
25
+ Usage: owners add [options]
26
+
27
+ Options:
28
+
29
+ --to GROUP type: string
30
+ --other GROUP type: string, requires: to
31
+ --help Get help on this command
32
+ str
33
+ %>
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ class Add < Cl::Cmd
6
+ opt '--pass PASS', secret: true
7
+
8
+ def run
9
+ p(
10
+ secret?: self.class.opts[:pass].secret?,
11
+ tainted?: pass.tainted?
12
+ )
13
+ end
14
+ end
15
+ rb
16
+ -%>
17
+
18
+ <%= run "Cl.new('owners').run(%w(add --pass pass))" %>
19
+
20
+ <%= out '{:secret?=>true, :tainted?=>true}' %>
@@ -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', see: 'https://docs.io/cli/owners/add'
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, see: https://docs.io/cli/owners/add
21
+ --help Get help on this command
22
+ str
23
+ %>
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path('lib')
3
+
4
+ <%= run sq(<<-'rb')
5
+ class Add < Cl::Cmd
6
+ opt '--active BOOL', type: :boolean
7
+ opt '--retries INT', type: :integer
8
+ opt '--sleep FLOAT', type: :float
9
+
10
+ def run
11
+ p active: active.class, retries: retries.class, sleep: sleep.class
12
+ end
13
+ end
14
+ rb
15
+ -%>
16
+
17
+ <%= run "Cl.new('owners').run(%w(add --active yes --retries 1 --sleep 0.1))" %>
18
+
19
+ <%= out "{:active=>TrueClass, :retries=>#{RUBY_VERSION < '2.4' ? 'Fixnum' : 'Integer'}, :sleep=>Float}" %>
@@ -5,8 +5,8 @@ class Cl
5
5
  def self.new(ctx, opts)
6
6
  const = Test if ctx.test?
7
7
  const ||= Silent if opts[:silent]
8
- const ||= Tty if $stdout.tty?
9
- const ||= Pipe
8
+ const ||= Tty # if $stdout.tty?
9
+ # const ||= Pipe
10
10
  const.new(opts)
11
11
  end
12
12
 
@@ -1,3 +1,3 @@
1
1
  class Cl
2
- VERSION = '0.1.28'
2
+ VERSION = '1.0.0'
3
3
  end
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.28
4
+ version: 1.0.0
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-08-08 00:00:00.000000000 Z
11
+ date: 2019-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: regstry
@@ -28,13 +28,10 @@ description: |-
28
28
  OptionParser based CLI support for rapid CLI development in an object-oriented
29
29
  context.
30
30
 
31
- This library wraps Ruby's OptionParser in order to make it easier to use it in
32
- an object oriented context.
31
+ This library wraps Ruby's OptionParser for parsing your options under the hood,
32
+ so you get all the goodness that the Ruby standard library provides.
33
33
 
34
- It uses OptionParser for parsing your options under the hood, so you get all
35
- the goodness that this library provides.
36
-
37
- But on top of that it also provides a rich DSL for defining, validating, and
34
+ On top of that it adds a rich and powerful DSL for defining, validating, and
38
35
  normalizing options, as well as automatic and gorgeous help output (modeled
39
36
  after `gem --help`).
40
37
  email:
@@ -71,6 +68,7 @@ files:
71
68
  - examples/readme/format
72
69
  - examples/readme/internal
73
70
  - examples/readme/negate
71
+ - examples/readme/node
74
72
  - examples/readme/note
75
73
  - examples/readme/opts
76
74
  - examples/readme/opts_block
@@ -81,6 +79,39 @@ files:
81
79
  - examples/readme/secret
82
80
  - examples/readme/see
83
81
  - examples/readme/type
82
+ - examples/src/args/cast.erb.rb
83
+ - examples/src/args/opts.erb.rb
84
+ - examples/src/args/required.erb.rb
85
+ - examples/src/args/splat.erb.rb
86
+ - examples/src/gem.erb.rb
87
+ - examples/src/heroku.erb.rb
88
+ - examples/src/rakeish.erb.rb
89
+ - examples/src/readme/abstract.erb.rb
90
+ - examples/src/readme/alias.erb.rb
91
+ - examples/src/readme/arg.erb.rb
92
+ - examples/src/readme/arg_array.erb.rb
93
+ - examples/src/readme/arg_type.erb.rb
94
+ - examples/src/readme/args_splat.erb.rb
95
+ - examples/src/readme/array.erb.rb
96
+ - examples/src/readme/default.erb.rb
97
+ - examples/src/readme/deprecated.erb.rb
98
+ - examples/src/readme/deprecated_alias.erb.rb
99
+ - examples/src/readme/downcase.erb.rb
100
+ - examples/src/readme/enum.erb.rb
101
+ - examples/src/readme/example.erb.rb
102
+ - examples/src/readme/format.erb.rb
103
+ - examples/src/readme/internal.erb.rb
104
+ - examples/src/readme/negate.erb.rb
105
+ - examples/src/readme/node.erb.rb
106
+ - examples/src/readme/opts.erb.rb
107
+ - examples/src/readme/opts_block.erb.rb
108
+ - examples/src/readme/range.erb.rb
109
+ - examples/src/readme/required.erb.rb
110
+ - examples/src/readme/requireds.erb.rb
111
+ - examples/src/readme/requires.erb.rb
112
+ - examples/src/readme/secret.erb.rb
113
+ - examples/src/readme/see.erb.rb
114
+ - examples/src/readme/type.erb.rb
84
115
  - lib/cl.rb
85
116
  - lib/cl/arg.rb
86
117
  - lib/cl/args.rb
@@ -125,8 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
156
  - !ruby/object:Gem::Version
126
157
  version: '0'
127
158
  requirements: []
128
- rubyforge_project:
129
- rubygems_version: 2.6.13
159
+ rubygems_version: 3.0.3
130
160
  signing_key:
131
161
  specification_version: 4
132
162
  summary: Object-oriented OptionParser based CLI support