Sha256: d1142e0195808e4623de6ddc3d6693ecfae0ddf643ad18cbf08ff1ef593c67e8

Contents?: true

Size: 1.08 KB

Versions: 3

Compression:

Stored size: 1.08 KB

Contents

require "erb"
require "pathname"
require "rubycritic/report_generators/view_helpers"

module Rubycritic
  module Generator

    class Base
      def self.erb_template(template_path)
        ERB.new(File.read(File.join(TEMPLATES_DIR, template_path)))
      end

      TEMPLATES_DIR = File.expand_path("../templates", __FILE__)
      LAYOUT_TEMPLATE = erb_template(File.join("layouts", "application.html.erb"))

      include ViewHelpers

      def file_href
        "file://#{file_pathname}"
      end

      def file_pathname
        File.join(file_directory, file_name)
      end

      def file_directory
        @file_directory ||= root_directory
      end

      def file_name
        raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
      end

      def render
        raise NotImplementedError.new("The #{self.class} class must implement the #{__method__} method.")
      end

      private

      def root_directory
        @root_directory ||= Pathname.new(Config.root)
      end

      def get_binding
        binding
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rubycritic-1.3.0 lib/rubycritic/report_generators/base.rb
rubycritic-1.2.1 lib/rubycritic/report_generators/base.rb
rubycritic-1.2.0 lib/rubycritic/report_generators/base.rb