module UrlTracker
Constants
- VERSION
Public Instance Methods
list_all()
click to toggle source
Returns an array with all URIs currently being tracked
# File lib/url_tracker.rb, line 31 def list_all init_ivars uri_list = @pages.map { |page| page.uri } uri_list.empty? ? ',' : uri_list.join(',') end
release_uri(uri)
click to toggle source
Stops tracking given URI
# File lib/url_tracker.rb, line 39 def release_uri(uri) init_ivars p = Page.new(URI(uri)) if @pages.include?(p) @pages.delete(p) @scheduler.remove_task(uri) 'ok' else 'error' end end
restart()
click to toggle source
Forget about current tracked URIs
# File lib/url_tracker.rb, line 53 def restart init_ivars @pages.clear @scheduler.restart end
track_uri(uri, time = 5*60)
click to toggle source
Tracks url
fetching its content every time
seconds (defaults to 5*60 - 5 minutes).
# File lib/url_tracker.rb, line 17 def track_uri(uri, time = 5*60) init_ivars p = Page.new(URI(uri)) if @pages.add?(p) @scheduler.task(uri).every(:minute) { check_change(p) } 'ok' else 'error' end end
Private Instance Methods
check_change(page)
click to toggle source
# File lib/url_tracker.rb, line 61 def check_change(page) Notifier.notify(title: 'Change!', message: "Page #{page.uri} changed!") if page.changed? end
init_ivars()
click to toggle source
# File lib/url_tracker.rb, line 65 def init_ivars @pages ||= Set.new @scheduler ||= Periodic.new end