Wassruby 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/example/example.rb +0 -1
- data/example/example2.rb +15 -0
- data/lib/wassruby.rb +48 -15
- data/test/test1.rb +72 -0
- metadata +7 -5
data/example/example.rb
CHANGED
data/example/example2.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
require 'wassruby'
|
3
|
+
|
4
|
+
#Get a new message of user
|
5
|
+
puts WWW::Wassr.get :user_show, "staff"
|
6
|
+
|
7
|
+
# Module Function : get(key, id = nil) -> Array | Bool
|
8
|
+
# [PARAM] key:
|
9
|
+
#
|
10
|
+
# :public_timeline,:user_timeline,:user_show,:new_channel
|
11
|
+
# :channel_check,:sl_timeline,:user_channel_list :todo_list
|
12
|
+
|
13
|
+
#Return New Channel list (array object)
|
14
|
+
val = WWW::Wassr.get :new_channel
|
15
|
+
puts val #Return an array object
|
data/lib/wassruby.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#= Simple Wassr Client
|
2
2
|
#Authors:: Takuya Mannami
|
3
|
-
#Version:: 0.0.
|
3
|
+
#Version:: 0.0.8 (2009/11/24)
|
4
4
|
#License:: MIT License
|
5
5
|
|
6
6
|
# -*- coding: utf-8 -*-
|
@@ -8,17 +8,25 @@
|
|
8
8
|
require 'open-uri'
|
9
9
|
require 'net/http'
|
10
10
|
require 'cgi'
|
11
|
-
require '
|
11
|
+
require 'rss'
|
12
|
+
require 'json'
|
12
13
|
|
13
14
|
module WWW
|
14
15
|
class Wassr
|
15
|
-
VERSION = '0.0.
|
16
|
+
VERSION = '0.0.8'
|
16
17
|
WASSR = "api.wassr.jp"
|
17
18
|
WASSR_RUBY = "Wassruby"
|
18
19
|
WASSR_API_URL = {
|
19
|
-
:UPDATE
|
20
|
-
:PUBLIC_TIMELINE
|
21
|
-
:USER_TIMELINE
|
20
|
+
:UPDATE => "/statuses/update.json?status=",
|
21
|
+
:PUBLIC_TIMELINE => "/statuses/public_timeline.json",
|
22
|
+
:USER_TIMELINE => "/statuses/user_timeline.json?id=",
|
23
|
+
:USER_SHOW => "/statuses/show.json?id=",
|
24
|
+
:NEW_CHANNEL => "/channel/list.rss",
|
25
|
+
:CHANNEL_CHECK => "/channel/exists.json?name_en=",
|
26
|
+
:USER_CHANNEL_LIST => "/channel_user/user_list.json?login_id=",
|
27
|
+
:SL_TIMELINE => "/statuses/sl_timeline.json",
|
28
|
+
:TODO_UPDATE => "/todo/add.json?body=",
|
29
|
+
:TODO_LIST => "/todo/list.json?page=1&done_fg=0",
|
22
30
|
}
|
23
31
|
|
24
32
|
def initialize(login_id, password)
|
@@ -32,26 +40,51 @@ module WWW
|
|
32
40
|
block.call(self.new(login_id, password))
|
33
41
|
end
|
34
42
|
|
35
|
-
def get_res_body_json(api_add)
|
36
|
-
JSON.parse(Net::HTTP.new(WASSR, 80).get(api_add).body)
|
43
|
+
def get_res_body_json(api_add, id="")
|
44
|
+
JSON.parse(Net::HTTP.new(WASSR, 80).get(WASSR_API_URL[api_add] << id).body)
|
37
45
|
end
|
38
46
|
|
39
|
-
def
|
47
|
+
def get_res_body_rss(api_add, id="")
|
48
|
+
RSS::Parser.parse(Net::HTTP.new(WASSR, 80).get(WASSR_API_URL[api_add] << id).body)
|
49
|
+
end
|
50
|
+
|
51
|
+
def get(key, id=nil)
|
40
52
|
case key
|
41
53
|
when :public_timeline
|
42
|
-
get_res_body_json(
|
54
|
+
get_res_body_json(:PUBLIC_TIMELINE)
|
43
55
|
when :user_timeline
|
44
|
-
get_res_body_json(
|
56
|
+
get_res_body_json(:USER_TIMELINE, id) if id != nil
|
57
|
+
when :user_show #get new one message of user
|
58
|
+
get_res_body_json(:USER_SHOW, id) if id != nil
|
59
|
+
when :new_channel
|
60
|
+
get_res_body_rss(:NEW_CHANNEL)
|
61
|
+
when :channel_check
|
62
|
+
get_res_body_json(:CHANNEL_CHECK, id) if id != nil
|
63
|
+
when :sl_timeline
|
64
|
+
get_res_body_json(:SL_TIMELINE)
|
65
|
+
when :user_channel_list
|
66
|
+
get_res_body_json(:USER_CHANNEL_LIST, id) if id != nil
|
67
|
+
when :todo_list
|
68
|
+
get_res_body_json(:TODO_LIST)
|
45
69
|
end
|
46
70
|
end
|
47
71
|
end
|
48
|
-
|
49
|
-
def post(
|
50
|
-
req = Net::HTTP::Post.new(WASSR_API_URL[
|
51
|
-
CGI.escape(message) <<
|
72
|
+
|
73
|
+
def post!(api_key, val)
|
74
|
+
req = Net::HTTP::Post.new(WASSR_API_URL[api_key] << CGI.escape(val) <<
|
52
75
|
"&source=" << WASSR_RUBY)
|
76
|
+
req[:user_agent] = WASSR_RUBY
|
53
77
|
req.basic_auth(@login_id, @password)
|
54
78
|
res = @http.request(req)
|
55
79
|
end
|
80
|
+
|
81
|
+
def post(key, val="")
|
82
|
+
case key
|
83
|
+
when :update
|
84
|
+
post!(:UPDATE, val)
|
85
|
+
when :todo_update
|
86
|
+
post!(:TODO_UPDATE, val)
|
87
|
+
end
|
88
|
+
end
|
56
89
|
end
|
57
90
|
end
|
data/test/test1.rb
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
|
2
|
+
require 'test/unit'
|
3
|
+
require 'wassruby'
|
4
|
+
|
5
|
+
class Wassr_Test < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
@client = WWW::Wassr.new("hoge","hoge")
|
8
|
+
@wassr_api_channel = "wassr_api"
|
9
|
+
@wassr_staff = "staff"
|
10
|
+
end
|
11
|
+
|
12
|
+
def get(key, val="")
|
13
|
+
WWW::Wassr.get(key, val)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_setup_client1
|
17
|
+
assert_not_nil(@client)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_setup_client2
|
21
|
+
assert(@client.instance_variable_get(:@login_id))
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_setup_client3
|
25
|
+
assert(@client.instance_variable_get(:@password))
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_setup_client4
|
29
|
+
assert(@client.instance_variable_get(:@http))
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_const1
|
33
|
+
assert_equal(WWW::Wassr.const_get(:WASSR), "api.wassr.jp")
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_client
|
37
|
+
assert_instance_of(WWW::Wassr, @client)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_public_timeline
|
41
|
+
assert(get(:public_timeline))
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_user_timeline
|
45
|
+
assert(get(:user_timeline, @wassr_staff))
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_user_show
|
49
|
+
assert(get(:user_show, @wassr_staff))
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_new_channel
|
53
|
+
assert(get(:new_channel))
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_channel_check
|
57
|
+
assert(get(:channel_check, @wassr_api_channel))
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_sl_timeline
|
61
|
+
assert(get(:sl_timeline))
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_user_channel_list
|
65
|
+
assert(get(:user_channel_list, @wassr_staff))
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_start
|
69
|
+
assert(WWW::Wassr.new("hoge","hoge"){|client| client })
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Wassruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takuya Mannami
|
@@ -13,7 +13,7 @@ date: 2009-11-24 00:00:00 +09:00
|
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description:
|
16
|
+
description: A Simple Wassr Client
|
17
17
|
email: mtakuya@users.sourceforge.jp
|
18
18
|
executables: []
|
19
19
|
|
@@ -24,7 +24,9 @@ extra_rdoc_files:
|
|
24
24
|
files:
|
25
25
|
- lib/wassruby.rb
|
26
26
|
- example/example.rb
|
27
|
+
- example/example2.rb
|
27
28
|
- README.txt
|
29
|
+
- test/test1.rb
|
28
30
|
has_rdoc: true
|
29
31
|
homepage: http://wassruby.rubyforge.org/
|
30
32
|
licenses:
|
@@ -53,6 +55,6 @@ rubyforge_project: Wassruby
|
|
53
55
|
rubygems_version: 1.3.5
|
54
56
|
signing_key:
|
55
57
|
specification_version: 3
|
56
|
-
summary: A Simple Wassr Client
|
57
|
-
test_files:
|
58
|
-
|
58
|
+
summary: A Simple Wassr Client (RUBY_VERSIN > 1.9.0)
|
59
|
+
test_files:
|
60
|
+
- test/test1.rb
|