Sha256: 77e93d7460f9476130519cfbc9edf77300405d86807ddf397d50825af7690070

Contents?: true

Size: 831 Bytes

Versions: 1

Compression:

Stored size: 831 Bytes

Contents

require 'vedeu/models/composition'
require 'vedeu/output/dsl_parser'
require 'vedeu/output/erb_parser'
require 'vedeu/output/raw_parser'
require 'vedeu/output/json_parser'
require 'vedeu/output/menu_parser'
require 'vedeu/output/raw_parser'

module Vedeu
  class View
    def self.render(type, output)
      new(type, output).render
    end

    def initialize(type, output)
      @type, @output = type, output
    end

    def render
      Composition.enqueue(parsed_output)
    end

    private

    attr_reader :type, :output

    def parsed_output
      @parsed ||= parser.parse(output)
    end

    def parser
      {
        dsl:     DSLParser,
        erb:     ERBParser,
        json:    JSONParser,
        hash:    RawParser,
        menu:    MenuParser,
        raw:     RawParser,
      }.fetch(type)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.1.6 lib/vedeu/output/view.rb