Module: YARD::Templates::ErbCache

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

Overview

Since:

  • 0.5.4

Class Method Summary collapse

Class Method Details

.clear!Object

Since:

  • 0.5.4


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

def self.clear!
  return unless @methods
  @methods.clear
end

.method_for(filename, &block) ⇒ Object

Since:

  • 0.5.4


5
6
7
8
9
10
11
12
13
14
# File 'lib/yard/templates/erb_cache.rb', line 5

def self.method_for(filename, &block)
  @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