Module: LogicalConstruct

Defined in:
lib/logical-construct/resolving-task.rb,
lib/logical-construct/satisfiable-task.rb,
lib/logical-construct/target/chef-solo.rb,
lib/logical-construct/target/platforms.rb,
lib/logical-construct/target/provision.rb,
lib/logical-construct/ground-control/core.rb,
lib/logical-construct/ground-control/setup.rb,
lib/logical-construct/target/platforms/aws.rb,
lib/logical-construct/target/unpack-cookbook.rb,
lib/logical-construct/testing/resolving-task.rb,
lib/logical-construct/target/sinatra-resolver.rb,
lib/logical-construct/ground-control/provision.rb,
lib/logical-construct/target/platforms/virtualbox.rb,
lib/logical-construct/ground-control/run-on-target.rb,
lib/logical-construct/testing/resolve-configuration.rb,
lib/logical-construct/ground-control/setup/copy-files.rb,
lib/logical-construct/target/platforms/default/volume.rb,
lib/logical-construct/ground-control/setup/build-files.rb,
lib/logical-construct/ground-control/setup/install-init.rb,
lib/logical-construct/target/platforms/virtualbox/volume.rb,
lib/logical-construct/target/platforms/default/chef-config.rb,
lib/logical-construct/target/platforms/default/resolve-configuration.rb,
lib/logical-construct/ground-control/setup/create-construct-directory.rb

Defined Under Namespace

Modules: AWS, Default, GroundControl, PlatformSpecific, ResolutionProtocol, SatisfiableManager, Testing, VirtualBox Classes: BuildFiles, ChefSolo, ConfigBuilder, CopyFiles, CreateConstructDirectory, GenerateManifest, Manifest, Provision, RemoteCopyFile, ResolvingTask, RunOnTarget, SatisfiableEnvTask, SatisfiableFileTask, SatisfiableTask, SinatraResolver, UnpackCookbook

Class Method Summary collapse

Class Method Details

.Platform(explicit = nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/logical-construct/target/platforms.rb', line 27

def self.Platform(explicit = nil)
  name = explicit || $DEPLOYMENT_PLATFORM || ENV['LOGCON_DEPLOYMENT_PLATFORM']
  return platforms.fetch(name)
rescue KeyError
  puts "Cannot find platform specified:"
  puts "  explicit argument: #{explicit.inspect}"
  puts "  $DEPLOYMENT_PLATFORM: #{$DEPLOYMENT_PLATFORM.inspect}"
  puts "  ENV['LOGCON_DEPLOYMENT_PLATFORM']: #{ENV['LOGCON_DEPLOYMENT_PLATFORM'].inspect}"
  puts "  available: #{platforms.keys.inspect}"
  puts
  raise
end

.platformsObject



2
3
4
# File 'lib/logical-construct/target/platforms.rb', line 2

def self.platforms
  @platforms ||= {}
end

.register_platform(mod) ⇒ Object



6
7
8
9
# File 'lib/logical-construct/target/platforms.rb', line 6

def self.register_platform(mod)
  name = mod.name.split('::').last
  platforms[name] = mod
end

.require_platform_files(platform, mod = nil) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/logical-construct/target/platforms.rb', line 11

def self.require_platform_files(platform, mod = nil)
  [
    ['volume', :Volume],
    ['chef-config', :ChefConfig],
    ['resolve-configuration', :ResolveConfiguration],
  ].each do |file, classname|
    begin
      require File::join('logical-construct', 'target', 'platforms', platform, file)
    rescue LoadError
      raise if mod.nil?
      klass = Class.new(LogicalConstruct::Default.const_get(classname))
      mod.const_set(classname, klass)
    end
  end
end