Sha256: f14d4d6dbfc6787d94bfc4ecee0c386c00a9eac9dd500fb0be36ee02412cdc39

Contents?: true

Size: 1.15 KB

Versions: 31

Compression:

Stored size: 1.15 KB

Contents

module Volt
  # StringTemplateRender are used to render a template to a string.  Call .html
  # to get the string.  Be sure to call .remove when complete.
  #
  # StringTemplateRender will intellegently update the string in the same way
  # a normal bindings will update the dom.
  class StringTemplateRender
    def initialize(page, context, template_path)
      @dependency = Dependency.new

      @template_path = template_path
      @target        = AttributeTarget.new(nil, nil, self)
      @template      = TemplateRenderer.new(page, @target, context, 'main', template_path)
    end

    # Render the template and get the current value
    def html
      @dependency.depend

      html = nil
      Computation.run_without_tracking do
        html = @target.to_html
      end

      html
    end

    def changed!
      # if @dependency is missing, this template has been removed
      @dependency.changed! if @dependency
    end

    def remove
      @dependency.remove
      @dependency = nil

      Computation.run_without_tracking do
        @template.remove
        @template = nil
      end

      @target        = nil
      @template_path = nil
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
volt-0.9.1.pre1 lib/volt/page/string_template_renderer.rb
volt-0.9.0 lib/volt/page/string_template_renderer.rb
volt-0.9.0.pre7 lib/volt/page/string_template_renderer.rb
volt-0.9.0.pre6 lib/volt/page/string_template_renderer.rb
volt-0.9.0.pre5 lib/volt/page/string_template_renderer.rb
volt-0.9.0.pre4 lib/volt/page/string_template_renderer.rb
volt-0.9.0.pre3 lib/volt/page/string_template_renderer.rb
volt-0.9.0.pre2 lib/volt/page/string_template_renderer.rb
volt-0.9.0.pre1 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta9 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta8 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta7 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta6 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta5 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta4 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta3 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta2 lib/volt/page/string_template_renderer.rb
volt-0.8.27.beta1 lib/volt/page/string_template_renderer.rb
volt-0.8.26.beta1 lib/volt/page/string_template_renderer.rb
volt-0.8.26 lib/volt/page/string_template_renderer.rb