class Compositor::Composite

Attributes

collection[RW]
renderer[RW]

Public Class Methods

new(view_context, args = {}) click to toggle source
Calls superclass method Compositor::Base::new
# File lib/compositor/composite.rb, line 5
def initialize(view_context, args = {})
  super
  @collection_set = true if args.has_key?(:collection)
  self.collection ||= []
end

Public Instance Methods

composite?() click to toggle source
# File lib/compositor/composite.rb, line 17
def composite?
  true
end
dsl(dsl, &block) click to toggle source
# File lib/compositor/composite.rb, line 21
def dsl(dsl, &block)
  original_generator = dsl.generator

  dsl.generator = self

  if self.collection && @collection_set && block
    # reset collection, we'll be mapping it via a block
    unmapped_collection = collection
    self.collection = []
    unmapped_collection.each do |object|
      dsl.instance_exec(object, &block)
    end
  elsif block
    dsl.instance_eval &block
  end

  dsl.generator = original_generator if original_generator

  dsl.generator.collection << self if dsl.generator != self
end
to_hash() click to toggle source
# File lib/compositor/composite.rb, line 11
def to_hash
  with_root_element do
    renderer.new(self, collection).render
  end
end