Sha256: 792e2e97137907524dcd91f105d93457ebca5725038da5f6b521c17e8054564d
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
# frozen_string_literal: true module LiquidDiagrams # @abstract Subclass and override {#render} or {#render!} to implement class BasicBlock < ::Liquid::Block # Return the renderer class matching the block # # @return [BasicRenderer] # # @raise [NameError] if renderer class not found def self.renderer @renderer ||= Renderers.const_get( name.split('::').last.gsub(/Block$/, 'Renderer') ) end # Render with error rescued # # @param context [Liquid::Context] # # @return String def render(context) @content = super.to_s render!(context) rescue Errors::BasicError => error error end # Render without error rescued # # @param context [Liquid::Context] # # @return String # # @raise [Errors::BasicError] # # rubocop:disable Lint/UnusedMethodArgument def render!(context) self.class.renderer.render(@content, config) end # rubocop:enable Lint/UnusedMethodArgument def config config = (parse_context[:config] || {}) config.fetch(name.split('::').last.chomp('Block').downcase, {}) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
liquid-diagrams-0.1.0 | lib/liquid_diagrams/basic_block.rb |