Sha256: aa10106f9481673cb45917c2fac4057572940d9c6b53abf887d6f449e159f5fe

Contents?: true

Size: 838 Bytes

Versions: 43

Compression:

Stored size: 838 Bytes

Contents

class ReactiveTemplate
  include Events
  
  def initialize(context, template_path)
    # puts "New Reactive Template: #{context.inspect} - #{template_path.inspect}"
    @template_path = template_path
    @target = AttributeTarget.new
    @template = TemplateRenderer.new(@target, context, "main", template_path)
  end
  
  def event_added(event, scope_provider, first)
    if first && !@template_listener
      @template_listener = @target.on('changed') { update }
    end
  end
  
  def event_removed(event, last)
    if last && @template_listener
      @template_listener.remove
      @template_listener = nil
    end
  end
  
  # Render the template and get the current value
  def cur
    @target.to_html
  end
  
  # TODO: improve
  def skip_current_queue_flush
    true
  end
  
  
  def update
    trigger!('changed')
  end
  
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
volt-0.3.3 lib/volt/templates/reactive_template.rb
volt-0.3.2 lib/volt/templates/reactive_template.rb
volt-0.3.1 lib/volt/templates/reactive_template.rb