App-Spec-p5
App-Spec-p5 copied to clipboard
Writing command line apps made easy
Before 0.005, it was possible to ignore the `class` slot of the spec, as long as a pre-built object was set in `App::Spec::Run::cmd`. Now, op method names are assumed to...
Before 0.005, a command op could be a coderef, which was nice for those times where you just need to call an existing method with a value from the runner,...
(This PR contains the same changes as #15, but organised in a way that should make it much easier to review) In reference to #14 : * type constraints everywhere:...
I don't see the need for YAML. It would be much simpler to write the spec in Perl. If you had the need to parse the spec from outside the...
Looking at the source code, I notice that in a few places you're not exploiting the facilities that `Moo` provides (e.g. you've got `common` and `build` do more-or-less what `BUILDARGS`...
Right now only parameters for apps with subcommands are possible, and for nested subcommands only for the last subcommand. Todo: ``` myapp param [options] myapp param0 cmd1 param1 cmd2 param2...
Rename `App::Spec::Completion::Bash` to `App::Spec::Completion::bash` and `App::Spec::Completion::Zsh` to `App::Spec::Completion::zsh`. That will allow extension and simplify `App::Spec::generate_completion`: ``` perl sub generate_completion { my ($self, %args) = @_; my $shell = delete $args{shell};...
Generating a man pages (or several per subcommand) from your spec with the complete usage and descriptions.
Generating a pod file from your spec with the complete usage and descriptions.