Sha256: 1e1925e64c96f966abe0acd45fc728e46c79ede55955795da5d911d034c4f859

Contents?: true

Size: 1.1 KB

Versions: 5

Compression:

Stored size: 1.1 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(::Rubycritic.configuration.root)
      end

      def get_binding
        binding
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rubycritic-1.1.1 lib/rubycritic/report_generators/base.rb
rubycritic-1.1.0 lib/rubycritic/report_generators/base.rb
rubycritic-1.0.2 lib/rubycritic/report_generators/base.rb
rubycritic-1.0.1 lib/rubycritic/report_generators/base.rb
rubycritic-1.0.0 lib/rubycritic/report_generators/base.rb