lib/private_pub.rb in private_pub-0.0.0 vs lib/private_pub.rb in private_pub-0.1.0
- old
+ new
@@ -1,56 +1,112 @@
-# TODO
+require "digest/sha1"
+require "net/http"
+
+require "private_pub/faye_extension"
+
+class PrivatePub
+ class Error < StandardError; end
+
+ class << self
+ def server=(server)
+ @config[:server] = server
+ end
+
+ def server
+ @config[:server]
+ end
+
+ def signature_expiration=(signature_expiration)
+ @config[:signature_expiration] = signature_expiration
+ end
+
+ def signature_expiration
+ @config[:signature_expiration]
+ end
+
+ def secret_token=(secret_token)
+ @config[:secret_token] = secret_token
+ end
+
+ def secret_token
+ @config[:secret_token]
+ end
+
+ def reset_config
+ @config = {
+ :server => "http://localhost:9292/faye",
+ :signature_expiration => 60 * 60, # one hour
+ }
+ end
+
+ def subscription(options = {})
+ sub = {:timestamp => (Time.now.to_f * 1000).round}.merge(options)
+ sub[:signature] = Digest::SHA1.hexdigest([secret_token, sub[:channel], sub[:timestamp]].join)
+ sub
+ end
+
+ def publish(data)
+ Net::HTTP.post_form(URI.parse(PrivatePub.server), data)
+ end
+
+ def faye_extension
+ FayeExtension.new
+ end
+ end
+
+ reset_config
+end