{
  "id": "bundler",
  "name": "Bundler",
  "homepage": "https://bundler.io",
  "description": "Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed.",
  "icon": "https://bundler.io/images/apple-touch-icon.png",
  "executables": [
    "bundle",
    "bundler"
  ],
  "dotfiles": {
    "paths": [
      "~/.bundle/config"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false,
    "secret_paths": [
      {
        "file": "~/.bundle/config",
        "match": {
          "prefix": [
            "BUNDLE_GEMS__",
            "BUNDLE_GITHUB__COM"
          ]
        }
      }
    ],
    "machine_lines": [
      {
        "file": "~/.bundle/config",
        "match": {
          "prefix": [
            "BUNDLE_BUILD__"
          ]
        },
        "scope": "platform"
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Bundler",
    "description": "Install, update and add gems for a Ruby project. Only everyday bundle commands are covered; exec, config, gem and binstubs are left out.",
    "quality": "ai-draft",
    "base": "fig:bundle",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "fig",
        "kind": "completion",
        "url": "https://github.com/withfig/autocomplete/blob/master/src/bundle.ts",
        "license": "MIT"
      }
    ],
    "subcommand": [
      {
        "path": [
          "install"
        ],
        "label": "Install gems",
        "description": "Install the gems in the Gemfile or Gemfile.lock. Path, binstub and trust-policy options are left out.",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/bundle.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "deployment",
            "label": "Deployment mode",
            "description": "For production and CI use.",
            "type": "boolean",
            "option": [
              "--deployment"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "frozen",
            "label": "Frozen lockfile",
            "description": "Do not allow the lock file to update.",
            "type": "boolean",
            "option": [
              "--frozen"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "local",
            "label": "Local gems only",
            "description": "Use only gems already downloaded or cached.",
            "type": "boolean",
            "option": [
              "--local"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "jobs",
            "label": "Parallel jobs",
            "description": "Maximum number of parallel installs.",
            "type": "integer",
            "option": [
              "--jobs"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "retry",
            "label": "Retries",
            "description": "Retry failed network requests N times.",
            "type": "integer",
            "option": [
              "--retry"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "without",
            "label": "Skip groups",
            "description": "Groups to NOT install.",
            "type": "string",
            "option": [
              "--without"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "with",
            "label": "Include groups",
            "description": "Groups to install.",
            "type": "string",
            "option": [
              "--with"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "gemfile",
            "label": "Gemfile",
            "description": "The Gemfile to use.",
            "type": "path",
            "option": [
              "--gemfile"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "fig"
            ]
          },
          {
            "id": "clean",
            "label": "Remove unused gems",
            "description": "Remove unused gems after install.",
            "type": "boolean",
            "option": [
              "--clean"
            ],
            "effect": "delete",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "quiet",
            "label": "Quiet",
            "description": "Do not print to stdout.",
            "type": "boolean",
            "option": [
              "--quiet"
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "install",
            "label": "Install",
            "fields": [
              "local",
              "jobs"
            ],
            "required": []
          },
          {
            "id": "ci",
            "label": "CI install",
            "set": {
              "deployment": [
                true
              ]
            },
            "fields": [
              "deployment",
              "frozen",
              "jobs"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "deployment",
              "frozen",
              "local",
              "jobs"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "without",
              "with",
              "gemfile",
              "clean",
              "quiet",
              "retry"
            ]
          }
        ]
      },
      {
        "path": [
          "update"
        ],
        "label": "Update gems",
        "description": "Update gems to newer versions. Leave the gem name empty and tick \"all\" to update everything.",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/bundle.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "gem",
            "label": "Gem",
            "description": "Gem to update; repeat to update several.",
            "type": "string",
            "position": 0,
            "multiple": true,
            "sources": [
              "fig"
            ]
          },
          {
            "id": "all",
            "label": "Update all gems",
            "description": "Update all gems specified in the Gemfile.",
            "type": "boolean",
            "option": [
              "--all"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "patch",
            "label": "Patch only",
            "description": "Prefer updating only to the next patch version.",
            "type": "boolean",
            "option": [
              "--patch"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "minor",
            "label": "Minor only",
            "description": "Prefer updating only to the next minor version.",
            "type": "boolean",
            "option": [
              "--minor"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "major",
            "label": "Major allowed",
            "description": "Prefer updating to the next major version (default).",
            "type": "boolean",
            "option": [
              "--major"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "conservative",
            "label": "Conservative",
            "description": "Do not allow shared dependencies to be updated.",
            "type": "boolean",
            "option": [
              "--conservative"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "local",
            "label": "Local gems only",
            "description": "Use only gems already downloaded or cached.",
            "type": "boolean",
            "option": [
              "--local"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "group",
            "label": "Group",
            "description": "Only update the gems in the specified group.",
            "type": "string",
            "option": [
              "--group",
              "-g"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "jobs",
            "label": "Parallel jobs",
            "description": "Number of jobs to run in parallel.",
            "type": "integer",
            "option": [
              "-j",
              "--jobs"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "quiet",
            "label": "Quiet",
            "description": "Only output warnings and errors.",
            "type": "boolean",
            "option": [
              "--quiet"
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "all",
            "label": "Update everything",
            "set": {
              "all": [
                true
              ]
            },
            "fields": [
              "all"
            ],
            "required": []
          },
          {
            "id": "gem",
            "label": "Update one gem",
            "fields": [
              "gem",
              "patch",
              "minor",
              "conservative"
            ],
            "required": [
              "gem"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "gem",
              "all",
              "patch",
              "minor",
              "major"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "conservative",
              "local",
              "group",
              "jobs",
              "quiet"
            ]
          }
        ]
      },
      {
        "path": [
          "add"
        ],
        "label": "Add a gem",
        "description": "Add a gem to the Gemfile and run bundle install.",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/bundle.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "gem",
            "label": "Gem name",
            "description": "Name of the gem to add.",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "fig"
            ]
          },
          {
            "id": "version",
            "label": "Version requirement",
            "description": "Specify version requirements, e.g. ~> 1.2.",
            "type": "string",
            "option": [
              "--version",
              "-v"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "group",
            "label": "Group",
            "description": "Group(s) for the added gem, e.g. development.",
            "type": "string",
            "option": [
              "--group",
              "-g"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "source",
            "label": "Source",
            "description": "Gem source.",
            "type": "string",
            "option": [
              "--source",
              "-s"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "skip_install",
            "label": "Skip install",
            "description": "Add to the Gemfile without installing.",
            "type": "boolean",
            "option": [
              "--skip-install"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "optimistic",
            "label": "Optimistic version",
            "description": "Adds optimistic declaration of version.",
            "type": "boolean",
            "option": [
              "--optimistic"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "strict",
            "label": "Strict version",
            "description": "Adds strict declaration of version.",
            "type": "boolean",
            "option": [
              "--strict"
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "dev",
            "label": "Add a development gem",
            "set": {
              "group": [
                "development"
              ]
            },
            "fields": [
              "gem",
              "group",
              "version"
            ],
            "required": [
              "gem"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "gem",
              "version",
              "group",
              "skip_install"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "source",
              "optimistic",
              "strict"
            ]
          }
        ]
      }
    ]
  }
}
