Class: Builderator::Interface
- Inherits:
-
Object
- Object
- Builderator::Interface
show all
- Defined in:
- lib/builderator/interface.rb,
lib/builderator/interface/packer.rb,
lib/builderator/interface/vagrant.rb,
lib/builderator/interface/berkshelf.rb
Overview
Defined Under Namespace
Classes: Berkshelf, Packer, Vagrant
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.berkshelf ⇒ Object
8
9
10
|
# File 'lib/builderator/interface/berkshelf.rb', line 8
def berkshelf
@berkshelf ||= Berkshelf.new
end
|
.command(arg = nil) ⇒ Object
15
16
17
18
|
# File 'lib/builderator/interface.rb', line 15
def command(arg = nil)
@command = arg unless arg.nil?
@command
end
|
.from_gem(arg = nil) ⇒ Object
20
21
22
23
|
# File 'lib/builderator/interface.rb', line 20
def from_gem(arg = nil)
@from_gem = arg unless arg.nil?
@from_gem || @command
end
|
.packer ⇒ Object
7
8
9
|
# File 'lib/builderator/interface/packer.rb', line 7
def packer
@packer ||= Packer.new
end
|
.template(arg = nil) ⇒ Object
25
26
27
28
|
# File 'lib/builderator/interface.rb', line 25
def template(arg = nil)
@template = arg unless arg.nil?
@template
end
|
.vagrant ⇒ Object
7
8
9
|
# File 'lib/builderator/interface/vagrant.rb', line 7
def vagrant
@vagrant ||= Vagrant.new
end
|
Instance Method Details
#bundled? ⇒ Boolean
Is vagrant in this bundle?
32
33
34
|
# File 'lib/builderator/interface.rb', line 32
def bundled?
Gem.loaded_specs.key?(self.class.from_gem)
end
|
#clean ⇒ Object
63
64
65
|
# File 'lib/builderator/interface.rb', line 63
def clean
source.unlink
end
|
#directory ⇒ Object
44
45
46
|
# File 'lib/builderator/interface.rb', line 44
def directory
Util.workspace
end
|
#render ⇒ Object
48
49
50
51
|
# File 'lib/builderator/interface.rb', line 48
def render
ERB.new(Util.source_path(self.class.template).binread,
nil, '-', '@output_buffer').result(Config.instance_eval('binding'))
end
|
#source ⇒ Object
53
54
55
|
# File 'lib/builderator/interface.rb', line 53
def source
fail 'Interface does not provide a source!'
end
|
#which ⇒ Object
Also known as:
command
36
37
38
39
40
41
|
# File 'lib/builderator/interface.rb', line 36
def which
return self.class.command if bundled?
`which #{self.class.command}`.chomp.tap { |path| fail "Unable to locate a #{self.class.command} executable" if path.empty? }
end
|
#write ⇒ Object
57
58
59
60
61
|
# File 'lib/builderator/interface.rb', line 57
def write
directory.mkpath
source.write(render)
self
end
|