Sha256: 7b7696d61294baca5c00c85bf54d95ec338e14e87f1a807a77342d48ef9d53ed

Contents?: true

Size: 1.16 KB

Versions: 33

Compression:

Stored size: 1.16 KB

Contents

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

      @template_path = template_path
      @target        = AttributeTarget.new(nil, nil, self)
      @template      = TemplateRenderer.new(volt_app, @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

33 entries across 33 versions & 1 rubygems

Version Path
volt-0.9.7.pre8 lib/volt/page/string_template_renderer.rb
volt-0.9.7.pre7 lib/volt/page/string_template_renderer.rb
volt-0.9.7.pre6 lib/volt/page/string_template_renderer.rb
volt-0.9.7.pre5 lib/volt/page/string_template_renderer.rb
volt-0.9.7.pre3 lib/volt/page/string_template_renderer.rb
volt-0.9.7.pre2 lib/volt/page/string_template_renderer.rb
volt-0.9.6 lib/volt/page/string_template_renderer.rb
volt-0.9.6.pre3 lib/volt/page/string_template_renderer.rb
volt-0.9.6.pre2 lib/volt/page/string_template_renderer.rb
volt-0.9.6.pre1 lib/volt/page/string_template_renderer.rb
volt-0.9.5 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre12 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre11 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre9 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre8 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre7 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre6 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre5 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre4 lib/volt/page/string_template_renderer.rb
volt-0.9.5.pre3 lib/volt/page/string_template_renderer.rb