Sha256: 8a21c24212abda8eba076355512ff720265ea6c5668c8f7475384296fc2ed2ca

Contents?: true

Size: 1.57 KB

Versions: 40

Compression:

Stored size: 1.57 KB

Contents

module Vagrant
  # Represents a "box," which is simply a packaged vagrant environment.
  # Boxes are simply `tar` files which contain an exported VirtualBox
  # virtual machine, at the least. They are created with `vagrant package`
  # and may contain additional files if specified by the creator. This
  # class serves to help manage these boxes, although most of the logic
  # is kicked out to middlewares.
  class Box
    # The name of the box.
    attr_reader :name

    # The directory where this box is stored
    attr_reader :directory

    # Creates a new box instance. Given an optional `name` parameter,
    # newly created instance will have that name, otherwise it defaults
    # to `nil`.
    #
    # **Note:** This method does not actually _create_ the box, but merely
    # returns a new, abstract representation of it. To add a box, see {#add}.
    def initialize(name, directory, action_runner)
      @name          = name
      @directory     = directory
      @action_runner = action_runner
    end

    # Begins the process of destroying this box. This cannot be undone!
    def destroy
      @action_runner.run(:box_remove, { :box_name => @name, :box_directory => @directory })
    end

    # Begins sequence to repackage this box.
    def repackage(options=nil)
      @action_runner.run(:box_repackage, { :box_name => @name, :box_directory => @directory })
    end

    # Implemented for comparison with other boxes. Comparison is implemented
    # by simply comparing name.
    def <=>(other)
      return super if !other.is_a?(self.class)
      name <=> other.name
    end
  end
end

Version data entries

40 entries across 40 versions & 6 rubygems

Version Path
bmhatfield-vagrant-1.0.10 lib/vagrant/box.rb
bmhatfield-vagrant-1.0.9 lib/vagrant/box.rb
bmhatfield-vagrant-1.0.8 lib/vagrant/box.rb
bmhatfield-vagrant-1.0.7 lib/vagrant/box.rb
vagrantup-1.0.7 lib/vagrant/box.rb
vagrantup-1.0.6 lib/vagrant/box.rb
vagrantup-1.0.5 lib/vagrant/box.rb
vagrantup-1.0.4 lib/vagrant/box.rb
vagrantup-1.0.3 lib/vagrant/box.rb
vagrantup-1.0.2 lib/vagrant/box.rb
vagrantup-1.0.1 lib/vagrant/box.rb
vagrantup-1.0.0 lib/vagrant/box.rb
vagrantup-0.9.99.2 lib/vagrant/box.rb
vagrantup-0.9.99.1 lib/vagrant/box.rb
vagrantup-0.9.7 lib/vagrant/box.rb
vagrantup-0.9.6 lib/vagrant/box.rb
vagrantup-0.9.5 lib/vagrant/box.rb
vagrantup-0.9.4 lib/vagrant/box.rb
vagrantup-0.9.3 lib/vagrant/box.rb
vagrantup-0.9.2 lib/vagrant/box.rb