Sha256: afeed4468e4de17d7a5b722638af833817b7db46da00475c11aa335effce80f6

Contents?: true

Size: 1.1 KB

Versions: 36

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module Decidim
  module ContentRenderers
    # Abstract base class for content renderers, so they have the same contract
    #
    # @example How to use a content renderer class
    #   renderer = Decidim::ContentRenderers::CustomRenderer.new(content)
    #   parser.render # returns the content formatted
    #
    # @abstract Subclass and override {#render} to implement a content renderer
    class BaseRenderer
      # @return [String] the content to be formatted
      attr_reader :content

      # Gets initialized with the `content` to format
      #
      # @param content [String] content to be formatted
      def initialize(content)
        @content = content || ""
      end

      # Format the content and return it ready to display
      #
      # @example Implementation to display prohibited words
      #   def render
      #     content.gsub(/\~\~(.*?)\~\~/, '<del>\1</del>')
      #   end
      #
      # @abstract Subclass is expected to implement it
      # @return [String] the content processed and ready to display
      def render
        content
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
decidim-core-0.22.0 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.21.0 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.20.1 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.20.0 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.19.1 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.18.1 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.19.0 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.17.2 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.18.0 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.17.1 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.16.1 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.17.0 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.16.0 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.15.2 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.15.1 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.15.0 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.14.4 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.14.3 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.14.2 lib/decidim/content_renderers/base_renderer.rb
decidim-core-0.14.1 lib/decidim/content_renderers/base_renderer.rb