Class: FastComments::Jekyll::BaseTag

Inherits:
Liquid::Tag
  • Object
show all
Defined in:
lib/fastcomments/jekyll/base_tag.rb

Overview

Shared Liquid::Tag lifecycle: parse markup -> resolve config -> render widget. Concrete tags declare a ‘self.spec` and inherit one of the renderer bases below.

Direct Known Subclasses

BulkCountTag, ContainerTag, SelectorTag

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.page_scoped?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/fastcomments/jekyll/base_tag.rb', line 14

def self.page_scoped?
  spec[:page_scoped] == true
end

Instance Method Details

#render(context) ⇒ Object



8
9
10
11
12
# File 'lib/fastcomments/jekyll/base_tag.rb', line 8

def render(context)
  attrs = AttributeParser.parse(@markup, context)
  config = ConfigResolver.resolve(context, attrs, derive_page_context: self.class.page_scoped?)
  render_widget(config)
end

#render_widget(_config) ⇒ Object

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/fastcomments/jekyll/base_tag.rb', line 18

def render_widget(_config)
  raise NotImplementedError, "#{self.class} must implement #render_widget"
end