class DisplayList

Public Instance Methods

clear() click to toggle source
# File lib/bull/ui_core.rb, line 56
def clear
  state.docs! []
end
consume(data) click to toggle source
# File lib/bull/ui_core.rb, line 37
def consume data
  if data.nil?
    clear
    return
  end
  docs = state.docs.dup
  if data['new_val'] == nil
    index = docs.index {|x| x['id'] == data['old_val']['id']}
    docs.delete_at index
  elsif data['old_val'] == nil
    docs << data['new_val']
  else
    index = docs.index {|x| x['id'] == data['old_val']['id']}
    doc = docs.fetch index
    doc.merge! data['new_val']
  end
  state.docs! sort(docs)
end
sort(docs) click to toggle source
# File lib/bull/ui_core.rb, line 60
def sort docs
  docs
end
watch_(name, *args) click to toggle source
# File lib/bull/ui_core.rb, line 16
def watch_(name, *args)
  #reactives = args.pop
  reactives = args.select{|v| v.is_a? RVar}
  @rvs = reactive(*reactives) do
    clear
    $controller.stop_watch(@predicate_id) if @predicate_id != nil
    args_ = args.collect do |arg|
      if arg.is_a? RVar
        arg.value
      else
        arg
      end
    end
    #if args_.empty?
    #  @predicate_id = $controller.watch(name) {|data| consume data}
    #else
    @predicate_id = $controller.watch(name, *args_) {|data| consume data}
    #end
  end
end