0
-# def webView_didFinishLoadForFrame(webview, frame)
0
-# register_dom_observers(webview.mainFrame)
0
-# def on_event(name, options = {}, &block)
0
-# options[:multiple_times] ||= false
0
-# (@events ||= []).push({ :name => name, :options => options, :block => block})
0
-# def register_dom_observers(frame)
0
-# doc = frame.DOMDocument
0
-# self.class.instance_variable_get(:@events).each { |event| doc.addEventListener___(event[:name], self, true) }
0
-# def handleEvent(event)
0
-# self.class.instance_variable_get(:@events).each do |event_handler|
0
-# next unless event_matches_handler?(event, event_handler)
0
-# # FIXME: need to make sure we don't call multiple times for the same node
0
-# event_handler[:block].call(event, Hpricot(event.relatedNode.outerHTML.to_s)) # hpricot
0
-# def event_matches_handler?(event, handler)
0
-# attributes = event.relatedNode.attributes
0
-# event.objc_send(:type) == handler[:name] and handler[:options][:conditions].all? { |key, value| attributes.getNamedItem(key.to_s).value == value }
0
-# def growl(name, message)
0
-# puts "Growl: #{name}: #{message}"
0
-# def increase_badge_counter!
0
-# class CampFire < WebApp::Plugin
0
-# on_event('DOMNodeInserted', :conditions => { :id => 'chat' }) do |event, node|
0
-# last_row = (node/'tr').last
0
-# name, message = (last_row/'td').map { |element| element.inner_text }
0
-# increase_badge_counter!
0
-class ApplicationController < Rucola::RCController
0
- ib_outlet :main_window
0
- # All the application delegate methods will be called on this object.
0
- OSX::NSApp.delegate = self
0
- @growl = GrowlController.alloc.init
0
- @webview.frameLoadDelegate = self
0
- url = 'http://fingertips.campfirenow.com'
0
- @webview.mainFrame.loadRequest OSX::NSURLRequest.requestWithURL(OSX::NSURL.URLWithString(url))
0
- def webView_didFinishLoadForFrame(webview, frame)
0
- __register_dom_observers(webview.mainFrame)
0
- def on_event(name, options = {}, &block)
0
- options[:multiple_times] ||= false
0
- (@events ||= []).push({ :name => name, :options => options, :block => block})
0
- def __register_dom_observers(frame)
0
- doc = frame.DOMDocument
0
- self.class.instance_variable_get(:@events).each { |event| doc.addEventListener___(event[:name], self, true) }
0
- def handleEvent(event)
0
- self.class.instance_variable_get(:@events).each do |event_handler|
0
- next unless __event_matches_handler?(event, event_handler)
0
- # FIXME: need to make sure we don't call multiple times for the same node
0
- event_handler[:block].call(event, Hpricot(event.relatedNode.outerHTML.to_s)) # hpricot
0
- def __event_matches_handler?(event, handler)
0
- attributes = event.relatedNode.attributes
0
- event.objc_send(:type) == handler[:name] and handler[:options][:conditions].all? { |key, value| attributes.getNamedItem(key.to_s).value == value }
0
- def growl(name, message)
0
- puts "Growl: #{name}: #{message}"
0
- #### WHAT IT WOULD LOOK LIKE:
0
- on_event('DOMNodeInserted', :conditions => { :id => 'chat' }) do |event, node|
0
- last_row = (node/'tr').last
0
- name, message = (last_row/'td').map { |element| element.inner_text }
0
\ No newline at end of file