Class: Blogo::Renderer::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/blogo/renderer/base.rb

Direct Known Subclasses

Html, Markdown

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.dependenciesArray<Hash>

Returns:

  • (Array<Hash>)

6
7
8
# File 'lib/blogo/renderer/base.rb', line 6

def dependencies
  @dependencies
end

Class Method Details

.add_dependency(dependency) ⇒ void

This method returns an undefined value.

Declare external gem dependencies for a render.

Parameters:

  • dependency (Hash)

    hash with :gem and :require keys


13
14
15
16
# File 'lib/blogo/renderer/base.rb', line 13

def add_dependency(dependency)
  self.dependencies ||= []
  self.dependencies << dependency
end

.load_dependencies!(renderer_name) ⇒ void

This method returns an undefined value.

Try to load dependencies, otherwise raise meaningful error.

Parameters:

  • renderer_name (Symbol, String)

23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/blogo/renderer/base.rb', line 23

def load_dependencies!(renderer_name)
  return unless dependencies

  dependencies.each do |dependency|
    begin
      require dependency[:require]
    rescue LoadError
      msg = "Please add `gem \"#{dependency[:gem]}\"` to the Gemfile " \
            "to use Blogo with #{renderer_name.inspect} renderer"
      raise LoadError, msg
    end
  end
end

Instance Method Details

#render(raw_text) ⇒ String

Returns html.

Parameters:

  • raw_text (String)

Returns:

  • (String)

    html

Raises:


42
43
44
# File 'lib/blogo/renderer/base.rb', line 42

def render(raw_text)
  raise AbstractMethodCallError, __method__
end