toys-core 0.11.5 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +62 -0
  3. data/LICENSE.md +1 -1
  4. data/README.md +5 -2
  5. data/docs/guide.md +1 -1
  6. data/lib/toys/acceptor.rb +13 -4
  7. data/lib/toys/arg_parser.rb +7 -7
  8. data/lib/toys/cli.rb +170 -120
  9. data/lib/toys/compat.rb +71 -23
  10. data/lib/toys/completion.rb +18 -6
  11. data/lib/toys/context.rb +24 -15
  12. data/lib/toys/core.rb +6 -2
  13. data/lib/toys/dsl/base.rb +87 -0
  14. data/lib/toys/dsl/flag.rb +26 -20
  15. data/lib/toys/dsl/flag_group.rb +18 -14
  16. data/lib/toys/dsl/internal.rb +206 -0
  17. data/lib/toys/dsl/positional_arg.rb +26 -16
  18. data/lib/toys/dsl/tool.rb +180 -218
  19. data/lib/toys/errors.rb +64 -8
  20. data/lib/toys/flag.rb +662 -656
  21. data/lib/toys/flag_group.rb +24 -10
  22. data/lib/toys/input_file.rb +13 -7
  23. data/lib/toys/loader.rb +293 -140
  24. data/lib/toys/middleware.rb +46 -22
  25. data/lib/toys/mixin.rb +10 -8
  26. data/lib/toys/positional_arg.rb +21 -20
  27. data/lib/toys/settings.rb +914 -0
  28. data/lib/toys/source_info.rb +147 -35
  29. data/lib/toys/standard_middleware/add_verbosity_flags.rb +2 -0
  30. data/lib/toys/standard_middleware/apply_config.rb +6 -4
  31. data/lib/toys/standard_middleware/handle_usage_errors.rb +1 -0
  32. data/lib/toys/standard_middleware/set_default_descriptions.rb +19 -18
  33. data/lib/toys/standard_middleware/show_help.rb +19 -5
  34. data/lib/toys/standard_middleware/show_root_version.rb +2 -0
  35. data/lib/toys/standard_mixins/bundler.rb +24 -15
  36. data/lib/toys/standard_mixins/exec.rb +43 -34
  37. data/lib/toys/standard_mixins/fileutils.rb +3 -1
  38. data/lib/toys/standard_mixins/gems.rb +21 -17
  39. data/lib/toys/standard_mixins/git_cache.rb +46 -0
  40. data/lib/toys/standard_mixins/highline.rb +8 -8
  41. data/lib/toys/standard_mixins/terminal.rb +5 -5
  42. data/lib/toys/standard_mixins/xdg.rb +56 -0
  43. data/lib/toys/template.rb +11 -9
  44. data/lib/toys/{tool.rb → tool_definition.rb} +292 -226
  45. data/lib/toys/utils/completion_engine.rb +7 -2
  46. data/lib/toys/utils/exec.rb +162 -132
  47. data/lib/toys/utils/gems.rb +85 -60
  48. data/lib/toys/utils/git_cache.rb +813 -0
  49. data/lib/toys/utils/help_text.rb +117 -37
  50. data/lib/toys/utils/terminal.rb +11 -3
  51. data/lib/toys/utils/xdg.rb +293 -0
  52. data/lib/toys/wrappable_string.rb +9 -2
  53. data/lib/toys-core.rb +18 -6
  54. metadata +14 -7
data/lib/toys-core.rb CHANGED
@@ -17,16 +17,21 @@ module Toys
17
17
  # Namespace for DSL classes. These classes provide the directives that can be
18
18
  # used in configuration files. Most are defined in {Toys::DSL::Tool}.
19
19
  #
20
- module DSL; end
20
+ module DSL
21
+ end
21
22
 
22
23
  ##
23
24
  # Namespace for standard middleware classes.
24
25
  #
25
26
  module StandardMiddleware
26
- ## @private
27
+ ##
28
+ # @private
29
+ #
27
30
  COMMON_FLAG_GROUP = :__common
28
31
 
29
- ## @private
32
+ ##
33
+ # @private
34
+ #
30
35
  def self.append_common_flag_group(tool)
31
36
  tool.add_flag_group(type: :optional, name: COMMON_FLAG_GROUP,
32
37
  desc: "Common Flags", report_collisions: false)
@@ -37,7 +42,8 @@ module Toys
37
42
  ##
38
43
  # Namespace for standard mixin classes.
39
44
  #
40
- module StandardMixins; end
45
+ module StandardMixins
46
+ end
41
47
 
42
48
  ##
43
49
  # Namespace for common utility classes.
@@ -46,7 +52,8 @@ module Toys
46
52
  # For example, before using {Toys::Utils::Exec}, you must
47
53
  # `require "toys/utils/exec"`.
48
54
  #
49
- module Utils; end
55
+ module Utils
56
+ end
50
57
 
51
58
  class << self
52
59
  ##
@@ -59,7 +66,9 @@ module Toys
59
66
  attr_accessor :executable_path
60
67
  end
61
68
 
69
+ ##
62
70
  # @private
71
+ #
63
72
  CORE_LIB_PATH = __dir__
64
73
  end
65
74
 
@@ -70,8 +79,10 @@ require "toys/compat"
70
79
  require "toys/completion"
71
80
  require "toys/context"
72
81
  require "toys/core"
82
+ require "toys/dsl/base"
73
83
  require "toys/dsl/flag"
74
84
  require "toys/dsl/flag_group"
85
+ require "toys/dsl/internal"
75
86
  require "toys/dsl/positional_arg"
76
87
  require "toys/dsl/tool"
77
88
  require "toys/errors"
@@ -83,7 +94,8 @@ require "toys/middleware"
83
94
  require "toys/mixin"
84
95
  require "toys/module_lookup"
85
96
  require "toys/positional_arg"
97
+ require "toys/settings"
86
98
  require "toys/source_info"
87
99
  require "toys/template"
88
- require "toys/tool"
100
+ require "toys/tool_definition"
89
101
  require "toys/wrappable_string"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toys-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.5
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Azuma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-28 00:00:00.000000000 Z
11
+ date: 2022-02-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Toys-Core is the command line tool framework underlying Toys. It can
14
14
  be used to create command line executables using the Toys DSL and classes.
@@ -31,8 +31,10 @@ files:
31
31
  - lib/toys/completion.rb
32
32
  - lib/toys/context.rb
33
33
  - lib/toys/core.rb
34
+ - lib/toys/dsl/base.rb
34
35
  - lib/toys/dsl/flag.rb
35
36
  - lib/toys/dsl/flag_group.rb
37
+ - lib/toys/dsl/internal.rb
36
38
  - lib/toys/dsl/positional_arg.rb
37
39
  - lib/toys/dsl/tool.rb
38
40
  - lib/toys/errors.rb
@@ -44,6 +46,7 @@ files:
44
46
  - lib/toys/mixin.rb
45
47
  - lib/toys/module_lookup.rb
46
48
  - lib/toys/positional_arg.rb
49
+ - lib/toys/settings.rb
47
50
  - lib/toys/source_info.rb
48
51
  - lib/toys/standard_middleware/add_verbosity_flags.rb
49
52
  - lib/toys/standard_middleware/apply_config.rb
@@ -55,24 +58,28 @@ files:
55
58
  - lib/toys/standard_mixins/exec.rb
56
59
  - lib/toys/standard_mixins/fileutils.rb
57
60
  - lib/toys/standard_mixins/gems.rb
61
+ - lib/toys/standard_mixins/git_cache.rb
58
62
  - lib/toys/standard_mixins/highline.rb
59
63
  - lib/toys/standard_mixins/terminal.rb
64
+ - lib/toys/standard_mixins/xdg.rb
60
65
  - lib/toys/template.rb
61
- - lib/toys/tool.rb
66
+ - lib/toys/tool_definition.rb
62
67
  - lib/toys/utils/completion_engine.rb
63
68
  - lib/toys/utils/exec.rb
64
69
  - lib/toys/utils/gems.rb
70
+ - lib/toys/utils/git_cache.rb
65
71
  - lib/toys/utils/help_text.rb
66
72
  - lib/toys/utils/terminal.rb
73
+ - lib/toys/utils/xdg.rb
67
74
  - lib/toys/wrappable_string.rb
68
75
  homepage: https://github.com/dazuma/toys
69
76
  licenses:
70
77
  - MIT
71
78
  metadata:
72
- changelog_uri: https://dazuma.github.io/toys/gems/toys-core/v0.11.5/file.CHANGELOG.html
79
+ changelog_uri: https://dazuma.github.io/toys/gems/toys-core/v0.13.0/file.CHANGELOG.html
73
80
  source_code_uri: https://github.com/dazuma/toys/tree/main/toys-core
74
81
  bug_tracker_uri: https://github.com/dazuma/toys/issues
75
- documentation_uri: https://dazuma.github.io/toys/gems/toys-core/v0.11.5
82
+ documentation_uri: https://dazuma.github.io/toys/gems/toys-core/v0.13.0
76
83
  post_install_message:
77
84
  rdoc_options: []
78
85
  require_paths:
@@ -81,14 +88,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
88
  requirements:
82
89
  - - ">="
83
90
  - !ruby/object:Gem::Version
84
- version: 2.3.0
91
+ version: 2.4.0
85
92
  required_rubygems_version: !ruby/object:Gem::Requirement
86
93
  requirements:
87
94
  - - ">="
88
95
  - !ruby/object:Gem::Version
89
96
  version: '0'
90
97
  requirements: []
91
- rubygems_version: 3.1.4
98
+ rubygems_version: 3.1.6
92
99
  signing_key:
93
100
  specification_version: 4
94
101
  summary: Framework for creating command line executables