Sha256: d12516c619a79b39e44f3377d98c9e60317f2f13f1402304481f7efc539d933a

Contents?: true

Size: 684 Bytes

Versions: 2

Compression:

Stored size: 684 Bytes

Contents

module Vedeu
  NotImplemented = Class.new(StandardError)

  class View
    include Vedeu::API

    def self.render(object = nil)
      new(object).render
    end

    def initialize(object = nil)
      @object = object
    end

    def render
      interfaces.map do |interface|
        Buffers.enqueue(interface.name, interface.to_s)
      end
    end

    def output
      fail NotImplemented, 'Implement #output on your subclass of Vedeu::View.'
    end

    private

    attr_reader :object

    def interfaces
      composition.interfaces
    end

    def composition
      @_composition ||= Composition.new(attributes)
    end

    def attributes
      output
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vedeu-0.1.15 lib/vedeu/output/view.rb
vedeu-0.1.14 lib/vedeu/output/view.rb