Sha256: 0db0598b588120cc43486741e7e747c4f31994dd0e680b7796e5bdc77ff39447
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
require 'yaml' module App extend self attr_accessor \ :seeds, :machine_configs, :root class Hashy < Hash alias_method :__old_get__ , :[] def get( key ) if has_key?( key ) __old_get__ key else self[ key ] = self.class.new end end alias_method :[] , :get def register( key , &block ) self[ key ] = block end end self.machine_configs = Hashy.new self.seeds = Hashy.new self.root = File.expand_path "#{ __FILE__ }/../.." def load_seed!( seed ) seed_name = seed.split( '/' ).last.split( '.' ).first data = YAML.load_file seed seeds[ seed_name ] = data end def load_seeds! Dir[ "#{ root }/seeds/**/**.seed.yml" ].each do | seed | load_seed! seed end end def load_machines!( config ) Dir[ "#{ root }/machines/**/**.vagrant.rb" ].each do | machine | load machine end machines = if ENV[ 'MACHINES' ] ENV[ 'MACHINES' ].split ',' else machine_configs.keys end machines.each do | machine | if machine_config = machine_configs[ machine ] instance_exec config , &machine_config end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
petra-0.0.2 | lib/sources/project/new/lib/app.rb |