NAME
App::Spec::Argument - App::Spec objects representing command line options or parameters
SYNOPSIS
EXAMPLES
Options can be defined in a verbose way via key value pairs, but you can also use a shorter syntax.
The idea comes from Ingy's http://www.schematype.org/.
The first item of the string is the name of the option using a syntax very similar to the one from Getopt::Long.
Then you can optionally define a type, a default value and a summary.
You can see a list of supported syntax in this example from t/data/12.dsl.yaml
:
---
# version with short dsl syntax
name: myapp
appspec: { version: 0.001 }
class: App::Spec::Example::MyApp
title: My Very Cool App
options:
- spec: foo --Foo
- spec: verbose|v+ --be verbose
- spec: +req --Some required flag
- spec: number=i --integer option
- spec: number2|n= +integer --integer option
- spec: fnumber=f --float option
- spec: fnumber2|f= +float --float option
- spec: date|d=s =today
- spec: items=s@ --multi option
- spec: set=s% --multiple key=value pairs
---
# version with verbose syntax
name: myapp
appspec: { version: 0.001 }
class: App::Spec::Example::MyApp
title: My Very Cool App
options:
- name: foo
type: flag
summary: Foo
- name: verbose
summary: be verbose
type: flag
multiple: true
aliases: ["v"]
- name: req
summary: Some required flag
required: true
type: flag
- name: number
summary: integer option
type: integer
- name: number2
summary: integer option
type: integer
aliases: ["n"]
- name: fnumber
summary: float option
type: float
- name: fnumber2
summary: float option
type: float
aliases: ["f"]
- name: date
type: string
default: today
aliases: ["d"]
- name: items
type: string
multiple: true
summary: multi option
- name: set
type: string
multiple: true
mapping: true
summary: multiple key=value pairs
METHODS
- common
-
Builds a hash with the given hashref and fills in some defaults.
my %hash = $class->common($args);
- from_dsl
-
Builds a hash from the dsl string
%dsl = $class->from_dsl("verbose|v+ --Be verbose");
- name, type, multiple, required, unique, summary, description, default, completion, enum, values, mapping
-
Attributes which represent the ones from the spec.