Sha256: 7c45d83ec8645d2f2598b062da23e2c4579d04d4bdbd421d491e0d542ed50f8f

Contents?: true

Size: 1.07 KB

Versions: 14

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module Liquid
  # @liquid_public_docs
  # @liquid_type tag
  # @liquid_category variable
  # @liquid_name capture
  # @liquid_summary
  #   Creates a new variable with a string value.
  # @liquid_description
  #   You can create complex strings with Liquid logic and variables.
  # @liquid_syntax
  #   {% capture variable %}
  #     value
  #   {% endcapture %}
  # @liquid_syntax_keyword variable The name of the variable being created.
  # @liquid_syntax_keyword value The value you want to assign to the variable.
  class Capture < Block
    Syntax = /(#{VariableSignature}+)/o

    def initialize(tag_name, markup, options)
      super
      if markup =~ Syntax
        @to = Regexp.last_match(1)
      else
        raise SyntaxError, options[:locale].t("errors.syntax.capture")
      end
    end

    def render_to_output_buffer(context, output)
      context.resource_limits.with_capture do
        capture_output = render(context)
        context.scopes.last[@to] = capture_output
      end
      output
    end

    def blank?
      true
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
liquid-5.8.1 lib/liquid/tags/capture.rb
liquid-5.8.0 lib/liquid/tags/capture.rb
liquid-5.7.3 lib/liquid/tags/capture.rb
liquid-5.7.2 lib/liquid/tags/capture.rb
liquid-5.7.1 lib/liquid/tags/capture.rb
liquid-5.7.0 lib/liquid/tags/capture.rb
liquid-5.6.4 lib/liquid/tags/capture.rb
liquid-5.6.3 lib/liquid/tags/capture.rb
liquid-5.6.2 lib/liquid/tags/capture.rb
liquid-5.6.1 lib/liquid/tags/capture.rb
liquid-5.6.0 lib/liquid/tags/capture.rb
liquid-5.6.0.rc3 lib/liquid/tags/capture.rb
liquid-5.6.0.rc2 lib/liquid/tags/capture.rb
liquid-5.6.0.rc1 lib/liquid/tags/capture.rb