Sha256: 81d2fe3c621664ab757959de5534a053590659c02d1e6fb1a9d3e44b1df19953

Contents?: true

Size: 1.19 KB

Versions: 54

Compression:

Stored size: 1.19 KB

Contents

module HTML
  class Pipeline
    # Public: Runs a String of content through an HTML processing pipeline,
    # providing easy access to a generated DocumentFragment.
    class BodyContent
      attr_reader :result

      # Public: Initialize a BodyContent.
      #
      # body     - A String body.
      # context  - A Hash of context options for the filters.
      # pipeline - A HTML::Pipeline object with one or more Filters.
      def initialize(body, context, pipeline)
        @body = body
        @context = context
        @pipeline = pipeline
      end

      # Public: Gets the memoized result of the body content as it passed through
      # the Pipeline.
      #
      # Returns a Hash, or something similar as defined by @pipeline.result_class.
      def result
        @result ||= @pipeline.call @body, @context
      end

      # Public: Gets the updated body from the Pipeline result.
      #
      # Returns a String or DocumentFragment.
      def output
        @output ||= result[:output]
      end

      # Public: Parses the output into a DocumentFragment.
      #
      # Returns a DocumentFragment.
      def document
        @document ||= HTML::Pipeline.parse output
      end
    end
  end
end

Version data entries

54 entries across 54 versions & 3 rubygems

Version Path
html-pipeline-2.11.0 lib/html/pipeline/body_content.rb
html-pipeline-2.10.0 lib/html/pipeline/body_content.rb
html-pipeline-2.9.2 lib/html/pipeline/body_content.rb
html-pipeline-2.9.1 lib/html/pipeline/body_content.rb
html-pipeline-2.9.0 lib/html/pipeline/body_content.rb
html-pipeline-2.8.4 lib/html/pipeline/body_content.rb
html-pipeline-2.8.3 lib/html/pipeline/body_content.rb
html-pipeline-2.8.2 lib/html/pipeline/body_content.rb
html-pipeline-2.8.1 lib/html/pipeline/body_content.rb
html-pipeline-2.8.0 lib/html/pipeline/body_content.rb
html-pipeline-2.7.2 lib/html/pipeline/body_content.rb
html-pipeline-2.7.1 lib/html/pipeline/body_content.rb
html-pipeline-2.7.0 lib/html/pipeline/body_content.rb
html-pipeline-2.6.0 lib/html/pipeline/body_content.rb
html-pipeline-2.5.0 lib/html/pipeline/body_content.rb
html-pipeline-2.4.2 lib/html/pipeline/body_content.rb
html-pipeline-2.4.1 lib/html/pipeline/body_content.rb
html-pipeline-2.4.0 lib/html/pipeline/body_content.rb
html-pipeline-2.3.0 lib/html/pipeline/body_content.rb
html-pipeline-2.2.4 lib/html/pipeline/body_content.rb