2013-03-11 63 views
0

我正在努力将UserVoice Single Single On与我的Rails应用程序集成在一起。他们为红宝石提供以下类:如何在lib中使用方法?

require 'rubygems' 
require 'ezcrypto' 
require 'json' 
require 'cgi' 
require 'base64' 

module Uservoice 
    class Token 
    attr_accessor :data 

    USERVOICE_SUBDOMAIN = "FILL IN" 
    USERVOICE_SSO_KEY = "FILL IN" 

    def initialize(options = {}) 
     options.merge!({:expires => (Time.zone.now.utc + 5 * 60).to_s}) 

     key = EzCrypto::Key.with_password USERVOICE_SUBDOMAIN, USERVOICE_SSO_KEY 
     encrypted = key.encrypt(options.to_json) 
     @data = Base64.encode64(encrypted).gsub(/\n/,'') # Remove line returns where are annoyingly placed every 60 characters 
    end 

    def to_s 
     @data 
    end 
    end 
end 

我无法弄清楚的是如何使用它。我将这个文件添加到我的lib目录,并使用Rails控制台运行。我想:

1.9.3-p125 :013 > Uservoice::Token 
=> Uservoice::Token 

但不能让它实际返回的选项:

Uservoice::Token.new(:guid => 1, :display_name => "jeff goldmen", :email => "[email protected]") 

任何想法如何实际使用呢?谢谢

回答

2

看看code,它似乎并没有出现初始化程序(当您调用new时会运行什么)将只采用散列。该方法的定义是这样的:

def initialize(key, api_key, data) 

而且似乎对待data变量作为哈希值。实例化令牌时,可能只需添加keyapi_key值。所以一个电话会看起来像这样:

Uservoice::Token.new(KEY, API_KEY, {guid:1, display_name:'foo', email:'[email protected]'}) 
+0

谢谢,但我没有得到如何在课堂外调用此函数。我需要通过它guid,显示名称和电子邮件?想法?谢谢 – AnApprentice 2013-03-11 00:50:46

+0

仅供参考,您提供的链接是3岁。我上面粘贴的课程是我尝试使用的最新课程。谢谢 – AnApprentice 2013-03-11 00:51:21

+0

你的图书馆来源在哪里?我正在看的github与rubygems相关。 – bdares 2013-03-11 00:54:55