Errors and Plugin documentation
This commit is contained in:
parent
2e3be3789e
commit
7aded5e214
|
@ -2,6 +2,40 @@
|
||||||
# commands, actions, etc.
|
# commands, actions, etc.
|
||||||
|
|
||||||
module Vagrant
|
module Vagrant
|
||||||
|
# This module contains all of the internal errors in Vagrant's core.
|
||||||
|
# These errors are _expected_ errors and as such don't typically represent
|
||||||
|
# bugs in Vagrant itself. These are meant as a way to detect errors and
|
||||||
|
# display them in a user-friendly way.
|
||||||
|
#
|
||||||
|
# # Defining a new Error
|
||||||
|
#
|
||||||
|
# To define a new error, inherit from {VagrantError}, which lets Vagrant
|
||||||
|
# know that this is an expected error, and also gives you some helpers for
|
||||||
|
# providing exit codes and error messages. An example is shown below, then
|
||||||
|
# it is explained:
|
||||||
|
#
|
||||||
|
# class MyError < Vagrant::Errors::VagrantError
|
||||||
|
# error_key "my_error"
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# This creates an error with an I18n error key of "my_error." {VagrantError}
|
||||||
|
# uses I18n to look up error messages, in the "vagrant.errors" namespace. So
|
||||||
|
# in the above, the error message would be the translation of "vagrant.errors.my_error"
|
||||||
|
#
|
||||||
|
# If you don't want to use I18n, you can override the {#initialize} method and
|
||||||
|
# set your own error message.
|
||||||
|
#
|
||||||
|
# # Raising an Error
|
||||||
|
#
|
||||||
|
# To raise an error, it is nothing special, just raise it like any normal
|
||||||
|
# exception:
|
||||||
|
#
|
||||||
|
# raise MyError.new
|
||||||
|
#
|
||||||
|
# Eventually this exception will bubble out to the `vagrant` binary which
|
||||||
|
# will show a nice error message. And if it is raised in the middle of a
|
||||||
|
# middleware sequence, then {Action::Warden} will catch it and begin the
|
||||||
|
# recovery process prior to exiting.
|
||||||
module Errors
|
module Errors
|
||||||
# Main superclass of any errors in Vagrant. This provides some
|
# Main superclass of any errors in Vagrant. This provides some
|
||||||
# convenience methods for setting the status code and error key.
|
# convenience methods for setting the status code and error key.
|
||||||
|
|
|
@ -1,11 +1,19 @@
|
||||||
require "rubygems"
|
require "rubygems"
|
||||||
|
|
||||||
module Vagrant
|
module Vagrant
|
||||||
|
# Represents a single plugin and also manages loading plugins from
|
||||||
|
# RubyGems. If a plugin has a `vagrant_init.rb` file somewhere on its
|
||||||
|
# load path, then this class will find it and load it. For logging purposes
|
||||||
|
# (for debugging), the list of loaded plugins is stored in the {plugins}
|
||||||
|
# array.
|
||||||
class Plugin
|
class Plugin
|
||||||
# The array of loaded plugins.
|
# The array of loaded plugins.
|
||||||
@@plugins = []
|
@@plugins = []
|
||||||
|
|
||||||
|
# The gemspec of this plugin. This is an actual gemspec object.
|
||||||
attr_reader :gemspec
|
attr_reader :gemspec
|
||||||
|
|
||||||
|
# The path to the `vagrant_init.rb` file which was loaded for this plugin.
|
||||||
attr_reader :file
|
attr_reader :file
|
||||||
|
|
||||||
# Loads all the plugins for Vagrant. Plugins are currently
|
# Loads all the plugins for Vagrant. Plugins are currently
|
||||||
|
@ -25,6 +33,8 @@ module Vagrant
|
||||||
|
|
||||||
# Returns the array of plugins which are currently loaded by
|
# Returns the array of plugins which are currently loaded by
|
||||||
# Vagrant.
|
# Vagrant.
|
||||||
|
#
|
||||||
|
# @return [Array]
|
||||||
def self.plugins; @@plugins; end
|
def self.plugins; @@plugins; end
|
||||||
|
|
||||||
# Initializes a new plugin, given a Gemspec and the path to the
|
# Initializes a new plugin, given a Gemspec and the path to the
|
||||||
|
|
Loading…
Reference in New Issue