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.