class Blogo::Renderer::Base

Attributes

dependencies[RW]

@!attribute [rw] dependencies

@return [Array<Hash>]

Public Class Methods

add_dependency(dependency) click to toggle source

Declare external gem dependencies for a render.

@param dependency [Hash] hash with :gem and :require keys

@return [void]

# File lib/blogo/renderer/base.rb, line 13
def add_dependency(dependency)
  self.dependencies ||= []
  self.dependencies << dependency
end
load_dependencies!(renderer_name) click to toggle source

Try to load dependencies, otherwise raise meaningful error.

@param renderer_name [Symbol, String]

@return [void]

# 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

Public Instance Methods

render(raw_text) click to toggle source

@param raw_text [String]

@return [String] html

# File lib/blogo/renderer/base.rb, line 42
def render(raw_text)
  raise AbstractMethodCallError, __method__
end