Sha256: 383369f54b129530b40b7d0ed125fe7d24312a18550c64a53ede77fcd45ecc83

Contents?: true

Size: 915 Bytes

Versions: 21

Compression:

Stored size: 915 Bytes

Contents

module ExpressTemplates
  module Components
    class Container < Configurable

      abstract_component

      class_attribute :prepended_blocks
      self.prepended_blocks = []

      class_attribute :appended_blocks
      self.appended_blocks = []

      contains -> (&block) {
        prepended
        block.call(self) if block
        appended
      }

      def prepended
        prepended_blocks.each do |block_to_prepend|
          call_block(block_to_prepend)
        end
      end

      def appended
        appended_blocks.each do |block_to_append|
          call_block(block_to_append)
        end
      end

      def call_block(block)
        instance_exec &block
      end

      def self.prepends(proc = nil, &block)
        self.prepended_blocks += [proc || block]
      end

      def self.appends(proc = nil, &block)
        self.appended_blocks += [proc || block]
      end

    end
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
express_templates-0.11.11 lib/express_templates/components/container.rb
express_templates-0.11.10 lib/express_templates/components/container.rb
express_templates-0.11.9 lib/express_templates/components/container.rb
express_templates-0.11.8 lib/express_templates/components/container.rb
express_templates-0.11.7 lib/express_templates/components/container.rb
express_templates-0.11.6 lib/express_templates/components/container.rb
express_templates-0.11.5 lib/express_templates/components/container.rb
express_templates-0.11.4 lib/express_templates/components/container.rb
express_admin-1.7.5 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.7.4 vendor/gems/express_templates/express_templates/lib/express_templates/components/container.rb
express_admin-1.7.3 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.7.2 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.7.1 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.6.13 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.6.12 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.6.11 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.6.10 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.6.9 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.6.8 vendor/gems/express_templates/lib/express_templates/components/container.rb
express_admin-1.6.7 vendor/gems/express_templates/lib/express_templates/components/container.rb