module Tumblargh::Renderer
Public Class Methods
factory(node, context, options = {})
click to toggle source
# File lib/tumblargh/renderer.rb, line 12 def self.factory(node, context, options = {}) args = [] base = node.first.to_s if base == 'Block' block_name = node[1] if block_name[0..1] == 'If' if block_name[2..4] == 'Not' args << block_name[5..block_name.size] block_name = 'InverseBoolean' else args << block_name[2..block_name.size] block_name = 'Boolean' end elsif n_post = block_name.match(/Post(\d+)/) block_name = 'NumberedPost' args << n_post[1].to_i end base = "Blocks::#{ block_name }" end klass_name = "Tumblargh::Renderer::#{ base }" begin klass = klass_name.constantize klass.new(node, context, options, *args) rescue NameError => e puts "WARNING: Unsupported block `#{ klass_name }`" end end