renren-api 0.3.4 → 0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  module RenrenAPI
2
2
 
3
- VERSION = [0, 3, 4]
3
+ VERSION = [0, 4]
4
4
 
5
5
  def self.version
6
6
  VERSION * "."
@@ -33,6 +33,18 @@ module RenrenAPI
33
33
  }
34
34
  request(params)
35
35
  end
36
+ def send_notification(receiver_ids, notification)
37
+ request(
38
+ :api_key => @api_key,
39
+ :method => "notifications.send",
40
+ :call_id => current_time_in_millisecond,
41
+ :v => "1.0",
42
+ :session_key => @session_key,
43
+ :format => "JSON",
44
+ :to_ids => receiver_ids * ",",
45
+ :notification => notification
46
+ )
47
+ end
36
48
  private
37
49
  def current_time_in_millisecond
38
50
  "%.3f" % Time.now.to_f
@@ -96,3 +96,50 @@ describe RenrenAPI::HTTPAdapter, "#get_info" do
96
96
  end
97
97
  it { should == result }
98
98
  end
99
+
100
+ describe RenrenAPI::HTTPAdapter, "#send_notification" do
101
+ subject { described_class.new(http, api_key, secret_key, session_key).send_notification(receiver_ids, notification) }
102
+ let(:http) { Net::HTTP.new("api.renren.com") }
103
+ let(:api_key) { "8802f8e9b2cf4eb993e8c8adb1e02b06" }
104
+ let(:secret_key) { "34d3d1e26cd44c05a0c450c0a0f8147b" }
105
+ let(:session_key) { "session_key" }
106
+ let(:result) do
107
+ {"result" => 1}
108
+ end
109
+ let!(:now) do
110
+ Time.now
111
+ end
112
+ let(:receiver_ids) do
113
+ [12345, 12346]
114
+ end
115
+ let(:params) do
116
+ {
117
+ :api_key => api_key,
118
+ :method => "notifications.send",
119
+ :call_id => "%.3f" % now.to_f,
120
+ :v => "1.0",
121
+ :session_key => session_key,
122
+ :format => "JSON",
123
+ :to_ids => receiver_ids * ",",
124
+ :notification => notification
125
+ }
126
+ end
127
+ let(:notification) do
128
+ "test"
129
+ end
130
+ let(:form_params) do
131
+ signature_calculator = RenrenAPI::SignatureCalculator.new(secret_key)
132
+ signature = signature_calculator.calculate(params)
133
+ URI.encode_www_form(params.merge(:sig => signature))
134
+ end
135
+ before :each do
136
+ Time.stub(:now).and_return(now)
137
+ response = mock(Net::HTTPResponse)
138
+ gzip_writer = Zlib::GzipWriter.new(StringIO.new(buffer = ""))
139
+ gzip_writer << JSON.generate(result)
140
+ gzip_writer.close
141
+ response.stub(:code => '200', :message => "OK", :content_type => "application/json", :body => buffer)
142
+ http.should_receive(:post).with("/restserver.do", form_params, {"Accept-Encoding" => "gzip"}).once.and_return(response)
143
+ end
144
+ it { should == result }
145
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: renren-api
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.4
5
+ version: "0.4"
6
6
  platform: ruby
7
7
  authors:
8
8
  - Lei, Zhi-Qiang
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-02 00:00:00 +08:00
13
+ date: 2011-05-09 00:00:00 +08:00
14
14
  default_executable:
15
15
  dependencies: []
16
16