# Module: YARD::Templates::ErbCache

Included in:
  Template

Defined in:
  lib/yard/templates/erb_cache.rb

## Overview

Since:

- 0.5.4

## Class Method Summary collapse

- .clear! ⇒ Object
- .method_for(filename) ⇒ Object

## Class Method Details

### .clear! ⇒ `Object`

Since:

- 0.5.4

    17
    18
    19
    20

    # File 'lib/yard/templates/erb_cache.rb', line 17

    def self.clear!
      return unless defined?(@methods) && @methods
      @methods.clear
    end

### .method_for(filename) ⇒ `Object`

Since:

- 0.5.4

    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    # File 'lib/yard/templates/erb_cache.rb', line 6

    def self.method_for(filename)
      @methods ||= {}
      return @methods[filename] if @methods[filename]
      @methods[filename] = name = "_erb_cache_#{@methods.size}"
      erb = yield.src
      encoding = erb[/\A(#coding[:=].*\r?\n)/, 1] || ''
      module_eval "#{encoding}def #{name}; #{erb}; end", filename

      name
    end