Module: DisqusRails::Helpers
- Included in:
- ApplicationHelper
- Defined in:
- lib/disqus_rails/helpers.rb
Instance Method Summary collapse
- #disqus_init(attributes = {}) ⇒ Object
- #disqus_sso_script(disquser) ⇒ Object
- #disqus_thread(disqusable_id = nil, disqusable_title = nil) ⇒ Object
Instance Method Details
#disqus_init(attributes = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/disqus_rails/helpers.rb', line 7 def disqus_init(attributes={}) if attributes.has_key?(:short_name) DisqusRails.const_set('SHORT_NAME', attributes[:short_name]) else attributes[:short_name] = DisqusRails::SHORT_NAME end if attributes.has_key?(:public_key) DisqusRails.const_set('PUBLIC_KEY', attributes[:public_key]) else attributes[:public_key] = DisqusRails::PUBLIC_KEY end if attributes.has_key?(:secret_key) DisqusRails.const_set('SECRET_KEY', attributes[:secret_key]) end if attributes.has_key?(:access_token) DisqusRails.const_set('ACCESS_TOKEN', attributes[:access_token]) end if attributes.has_key?(:disquser) && attributes[:disquser].respond_to?(:disqus_params) attributes[:remote_auth_s3] = disqus_sso_script attributes[:disquser].disqus_params() end attributes.delete :disquser attributes.delete :secret_key attributes.delete :access_token javascript_tag %Q"$(document).ready(function(){ window.disqus_rails = new DisqusRails(#{attributes.to_json}); });" end |
#disqus_sso_script(disquser) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/disqus_rails/helpers.rb', line 42 def disqus_sso_script(disquser) # encode the data to base64 = Base64.strict_encode64(disquser.to_json) # generate a timestamp for signing the message = Time.now.to_i # generate our hmac signature digest = OpenSSL::Digest::Digest.new('sha1') signature = OpenSSL::HMAC.hexdigest(digest, SECRET_KEY, "#{} #{}") # return a script tag to insert the sso message "#{} #{signature} #{}" end |
#disqus_thread(disqusable_id = nil, disqusable_title = nil) ⇒ Object
58 59 60 61 62 |
# File 'lib/disqus_rails/helpers.rb', line 58 def disqus_thread(disqusable_id=nil, disqusable_title=nil) javascript_tag %Q"$(document).ready(function(){ disqus_rails.draw_thread(\"#{disqusable_id}\", \"#{disqusable_title}\"); });" end |