Class: VagrantPlugins::Cachier::Bucket

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-cachier/bucket.rb,
lib/vagrant-cachier/bucket/apt.rb,
lib/vagrant-cachier/bucket/gem.rb,
lib/vagrant-cachier/bucket/rvm.rb,
lib/vagrant-cachier/bucket/yum.rb,
lib/vagrant-cachier/bucket/chef.rb,
lib/vagrant-cachier/bucket/pacman.rb

Direct Known Subclasses

Apt, Chef, Gem, Pacman, Rvm, Yum

Defined Under Namespace

Classes: Apt, Chef, Gem, Pacman, Rvm, Yum

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, env, configs) ⇒ Bucket

Returns a new instance of Bucket.



27
28
29
30
31
# File 'lib/vagrant-cachier/bucket.rb', line 27

def initialize(name, env, configs)
  @name    = name
  @env     = env
  @configs = configs
end

Class Method Details

.auto_detect(env) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/vagrant-cachier/bucket.rb', line 9

def self.auto_detect(env)
  @buckets.each do |bucket|
    if env[:machine].guest.capability?(bucket.capability)
      env[:machine].config.cache.enable bucket.bucket_name
    end
  end
end

.bucket_nameObject



17
18
19
20
# File 'lib/vagrant-cachier/bucket.rb', line 17

def self.bucket_name
  # TODO: Handle MultiWord bucket classes
  self.name.split('::').last.downcase
end

.inherited(base) ⇒ Object



4
5
6
7
# File 'lib/vagrant-cachier/bucket.rb', line 4

def self.inherited(base)
  @buckets ||= []
  @buckets << base
end

.install(name, env, configs) ⇒ Object



22
23
24
25
# File 'lib/vagrant-cachier/bucket.rb', line 22

def self.install(name, env, configs)
  bucket = const_get(name.to_s.capitalize)
  bucket.new(name, env, configs).install
end