class Riddl::Utils::Notifications::Producer::Backend::Subs
Public Class Methods
new(target)
click to toggle source
# File lib/ruby/riddl/utils/notifications_producer.rb, line 83 def initialize(target) @target = target end
Public Instance Methods
[](key)
click to toggle source
# File lib/ruby/riddl/utils/notifications_producer.rb, line 99 def [](key) f = @target + '/' + key + '/subscription.xml' File.exist?(f) ? Sub.new(f) : nil end
create(&block)
click to toggle source
# File lib/ruby/riddl/utils/notifications_producer.rb, line 104 def create(&block) key = nil begin continue = true key = Digest::MD5.hexdigest(Kernel::rand().to_s) Dir.mkdir(@target + '/' + key) rescue continue = false end until continue producer_secret = Digest::MD5.hexdigest(Kernel::rand().to_s) consumer_secret = Digest::MD5.hexdigest(Kernel::rand().to_s) File.open(@target + '/' + key + '/producer-secret','w') { |f| f.write producer_secret } File.open(@target + '/' + key + '/consumer-secret','w') { |f| f.write consumer_secret } XML::Smart::modify(@target + '/' + key + '/subscription.xml',"<subscription xmlns='http://riddl.org/ns/common-patterns/notifications-producer/1.0'/>") do |doc| doc.register_namespace 'n', 'http://riddl.org/ns/common-patterns/notifications-producer/1.0' block.call doc, key end [key, producer_secret, consumer_secret] end
each(&block)
click to toggle source
# File lib/ruby/riddl/utils/notifications_producer.rb, line 87 def each(&block) keys.each do |key| f = @target + '/' + key + '/subscription.xml' block.call Sub.new(f), key if File.exist? f end end
include?(key)
click to toggle source
# File lib/ruby/riddl/utils/notifications_producer.rb, line 94 def include?(key) f = @target + '/' + key + '/subscription.xml' File.exist?(f) end
keys()
click to toggle source
# File lib/ruby/riddl/utils/notifications_producer.rb, line 122 def keys if File.directory?(@target) Dir[@target + '/*'].map do |d| File.directory?(d) ? File.basename(d) : nil end.compact else [] end end