Sha256: bd5b3a2fb197acf55f4ea297931e7e0758737aa719dd20b42b0315181982ff8d
Contents?: true
Size: 1.59 KB
Versions: 4
Compression:
Stored size: 1.59 KB
Contents
require 'base64' module Messenger def self.valid_url?(url) service_handler = handler(url) service_handler.valid_url?(url) rescue ProtocolError false end def self.deliver(url, message, options={}) service_handler = handler(url) if defined?(SystemTimer) && SystemTimer.respond_to?(:timeout_after) SystemTimer.timeout_after(options[:timeout] || 15) do service_handler.deliver(url, message, options) end else Timeout.timeout(options[:timeout] || 15) do service_handler.deliver(url, message, options) end end end def self.obfuscate(url) service_handler = handler(url) service_handler.obfuscate(url) end def self.protocol(url) # TODO: More services # sms://1231231234 # twitter://username # aim://username case url when /^http/ then :http when /^campfire/ then :campfire when /^jabber/ then :jabber when /^notifo/ then :notifo when /^mailto|@+/ then :email end end def self.handler(url) case protocol(url) when :email then Messenger::Email when :http then Messenger::Web when :campfire then Messenger::Campfire when :jabber then Messenger::Jabber when :notifo then Messenger::Notifo else raise Messenger::ProtocolError, "Malformed service URL: #{url}. Either this syntax is wrong or this service type is not yet implemented." end end def self.basic_auth(user, password) encoded_credentials = ["#{user}:#{password}"].pack("m*").gsub(/\n/, '') {"HTTP_AUTHORIZATION" => "Basic #{encoded_credentials}"} end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
messenger-0.5.0 | lib/messenger/messenger.rb |
messenger-0.4.4 | lib/messenger/messenger.rb |
messenger-0.4.3 | lib/messenger/messenger.rb |
messenger-0.4.2 | lib/messenger/messenger.rb |