Sha256: f53477d8d150bff7028c4dd69edf8f0e4270d8fd8d89994f30156011bd797337

Contents?: true

Size: 879 Bytes

Versions: 1

Compression:

Stored size: 879 Bytes

Contents

require_relative 'decorator/request'
require_relative 'decorator/response'

module CassetteRack
  class Drawer
    attr_reader :name

    def initialize(name, options={})
      @name = name
    end

    def cassette
      @cassette ||= VCR::Cassette.new(name)
    end

    def render
      Kramdown::Document.new(self.pull).to_html
    end

    def delete
      File.delete cassette.file if self.exist?
    end

    def exist?
      File.exist?(cassette.file)
    end

    def pull
      request = CassetteRack::Decorator::Request.new(http.request)
      response = CassetteRack::Decorator::Response.new(http.response)

      template = Liquid::Template.parse(CassetteRack::Configure.content_template)
      template.render('title' => name, 'request' => request, 'response' => response)
    end

    def http
      cassette.http_interactions.interactions.first
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cassette-rack-0.4.0 lib/cassette-rack/drawer.rb