./lib/stacco/stack.rb in stacco-0.1.27 vs ./lib/stacco/stack.rb in stacco-0.1.28

- old
+ new

@@ -102,32 +102,36 @@ end def enable_layers(layer_names) layer_names = layer_names.map(&:to_s) layer_names.each do |layer_name| - raise ArgumentError, "Layer '#{layer_name}' is not provided by the template definition" unless self.available_layers.include? layer_name + raise ArgumentError, "Layer '#{layer_name}' is not provided by the template definition" unless self.available_layer_names.include? layer_name end self.update_config do |c| - c['layers'] = self.enabled_layers | layer_names + c['layers'] = self.enabled_layer_names | layer_names end end def disable_layers(layer_names) layer_names = layer_names.map(&:to_s) self.update_config do |c| - c['layers'] = self.enabled_layers - layer_names + c['layers'] = self.enabled_layer_names - layer_names end end + def enabled_layer_names + (self.available_layer_names & (self.config['layers'] || [])) + end + def enabled_layers - self.available_layers & (self.config['layers'] || []) + self.enabled_layer_names.map{ |layer_name| Stacco::Layer.load(self, layer_name) } end def layer_enabled?(layer_name) - self.enabled_layers.inlude?(layer_name.to_s) + self.enabled_layer_names.inlude?(layer_name.to_s) end def aws_credentials Hash[ *(self.config['aws'].map{ |k, v| [k.intern, v] }.flatten) ] end @@ -209,11 +213,15 @@ def roles Stacco::Resources::RoleScripts.keys end - def available_layers + def available_layer_names Stacco::Resources::LayerTemplates.keys + end + + def available_layers + self.available_layer_names.map{ |layer_name| Stacco::Layer.load(self, layer_name) } end def up! body_object, params = self.bake_template(publish: true)