def initialize(topics,target,init=nil)
@target = target.gsub(/^\/+/,'/')
unless File.exist?(@target)
if init
FileUtils::cp_r init, @target
else
FileUtils::mkdir_p(@target)
end
end
raise "topics file not found" unless File.exist?(topics)
@topics = XML::Smart.open_unprotected(topics.gsub(/^\/+/,'/'))
@topics.register_namespace 'n', 'http://riddl.org/ns/common-patterns/notifications-producer/1.0'
subscriptions.each do |sub,key|
sub.read do |doc|
if doc.find('/*[@url]').empty?
sub.delete
end
end
end
end