Class: Jekyll::Latex::Pdf::TempLiquid

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/latex/pdf/liquid.rb

Overview

Generates an environment where we temporarily can add new tags to the templet, without changing the registered tags.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.register_tag(name, klass) ⇒ Object



47
48
49
50
# File 'lib/jekyll/latex/pdf/liquid.rb', line 47

def self.register_tag(name, klass)
  @@liquid_tags_register ||= {}
  @@liquid_tags_register[name.to_s] = klass
end

.run {|s| ... } ⇒ Object

Yields:

  • (s)


36
37
38
39
40
41
# File 'lib/jekyll/latex/pdf/liquid.rb', line 36

def self.run
  s = TempLiquid.new
  s.register_tags
  yield s
  s.restore_liquid_tags
end

.tagsObject



43
44
45
# File 'lib/jekyll/latex/pdf/liquid.rb', line 43

def self.tags
  @@liquid_tags_register || {}
end

Instance Method Details

#register_tag(tag_key, tag_value) ⇒ Object



14
15
16
17
# File 'lib/jekyll/latex/pdf/liquid.rb', line 14

def register_tag(tag_key, tag_value)
  saved_liquid_tags[tag_key] = Liquid::Template.tags[tag_key]
  Liquid::Template.register_tag(tag_key, tag_value)
end

#register_tagsObject



19
20
21
22
23
24
# File 'lib/jekyll/latex/pdf/liquid.rb', line 19

def register_tags
  TempLiquid.tags.each do |tag_key, tag_value|
    register_tag(tag_key, tag_value)
    Jekyll.logger.debug "Register tag:", tag_key.to_s
  end
end

#restore_liquid_tagsObject



30
31
32
33
34
# File 'lib/jekyll/latex/pdf/liquid.rb', line 30

def restore_liquid_tags
  saved_liquid_tags.each do |tag_key, tag_value|
    Liquid::Template.register_tag tag_key, tag_value
  end
end

#saved_liquid_tagsObject



10
11
12
# File 'lib/jekyll/latex/pdf/liquid.rb', line 10

def saved_liquid_tags
  @saved_liquid_tags ||= {}
end

#tmp_keysObject



26
27
28
# File 'lib/jekyll/latex/pdf/liquid.rb', line 26

def tmp_keys
  @tmp_keys ||= []
end