Sha256: 67c6c2d0edb0e14057287dd6a651efc1fc5427b2925647736600ce382523d31a

Contents?: true

Size: 1.15 KB

Versions: 62

Compression:

Stored size: 1.15 KB

Contents

require 'forwardable'
require_relative './resource'
require_relative '../mixin/conditional'

module Convection
  module Model
    class Template
      # A collection of different {Convection::Model::Template::Resource}s.
      class ResourceCollection
        extend Forwardable
        include DSL::Helpers
        include DSL::Template::Resource
        include Mixin::Conditional

        attr_reader :name
        attr_reader :parent
        attr_reader :template

        def_delegator :@template, :stack

        class << self
          def attach_to_dsl(dsl_name)
            DSL::Template::Resource.attach_resource_collection(dsl_name, self)
          end
        end

        def initialize(name, parent, &definition)
          @definition = definition
          @name = name
          @parent = parent
          @template = parent.template
        end

        # @note This method is in place to be overriden by subclasses.
        def execute
        end

        def run_definition
          instance_exec(&@definition) if @definition
        end

        def resources
          @resources ||= Convection::Model::Collection.new
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
convection-2.3.1 lib/convection/model/template/resource_collection.rb
convection-2.3.0 lib/convection/model/template/resource_collection.rb
convection-2.2.29 lib/convection/model/template/resource_collection.rb
convection-2.2.28.pre.beta.2 lib/convection/model/template/resource_collection.rb
convection-2.2.28.pre.beta.1 lib/convection/model/template/resource_collection.rb
convection-2.2.27 lib/convection/model/template/resource_collection.rb
convection-2.2.26 lib/convection/model/template/resource_collection.rb
convection-2.2.25 lib/convection/model/template/resource_collection.rb
convection-2.2.24 lib/convection/model/template/resource_collection.rb
convection-2.2.23 lib/convection/model/template/resource_collection.rb
convection-2.2.22 lib/convection/model/template/resource_collection.rb
convection-2.2.21 lib/convection/model/template/resource_collection.rb
convection-2.2.20 lib/convection/model/template/resource_collection.rb
convection-2.2.19 lib/convection/model/template/resource_collection.rb
convection-2.2.18 lib/convection/model/template/resource_collection.rb
convection-2.2.17 lib/convection/model/template/resource_collection.rb
convection-2.2.16 lib/convection/model/template/resource_collection.rb
convection-2.2.15 lib/convection/model/template/resource_collection.rb
convection-2.2.14 lib/convection/model/template/resource_collection.rb
convection-2.2.13 lib/convection/model/template/resource_collection.rb