Sha256: 3dd8f5adac90eb5b87deb2016c0deddd70a5074947b40182ccc3273bcd46cf2c

Contents?: true

Size: 719 Bytes

Versions: 1

Compression:

Stored size: 719 Bytes

Contents

require 'erb'
require 'vedeu/support/helpers'
require 'vedeu/output/text_adaptor'

module Vedeu
  class ERBParser
    include Helpers

    def self.parse(object)
      new(object).parse
    end

    def initialize(object)
      @object = object
    end

    def parse
      {
        interfaces: [
          {
            name:  interface,
            lines: TextAdaptor.adapt(erb_output)
          }
        ]
      }
    end

    private

    attr_reader :object

    def erb_output
      ERB.new(template, nil, '-').result(get_binding)
    end

    def interface
      object.interface
    end

    def template
      File.read(object.path)
    end

    def get_binding
      object.send(:binding)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.1.3 lib/vedeu/output/erb_parser.rb