me2api-ruby 0.2.0 → 0.2.1

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- me2api-ruby (0.1.1)
4
+ me2api-ruby (0.2.0)
5
5
  curb (~> 0.8.0)
6
6
  json (~> 1.7.3)
7
7
  rake (~> 0.8.3)
data/README.md CHANGED
@@ -45,6 +45,17 @@ For more information, see http://unlicense.org/ or the accompanying UNLICENSE fi
45
45
  ChangeLog
46
46
  =========
47
47
 
48
+ ## 0.2.1 (2012-06-30)
49
+
50
+ Features:
51
+ - Me2API::API#get_post 메소드 추가.
52
+
53
+ ## 0.2.0 (2012-06-30)
54
+
55
+ Features:
56
+ - 밴드 멤버를 위한 Member 모델 추가
57
+ - Band.leader를 Member 모델로 wrap
58
+
48
59
  ## 0.1.1 (2012-06-29)
49
60
 
50
61
  Features:
data/lib/me2api/agent.rb CHANGED
@@ -54,20 +54,12 @@ module Me2API
54
54
  @logger = options[:logger]
55
55
  end
56
56
 
57
- def api_url(name, params = {})
58
- case name
59
- when 'get_person', 'get_posts', 'create_post', 'get_friends',
60
- 'get_friendship_requests'
61
- return "#{@protocol}://#{@host}/api/#{name}/#{params[:user_id]}.json"
62
- else
63
- return "#{@protocol}://#{@host}/api/#{name}.json"
64
- end
57
+ def api_url(url)
58
+ "#{@protocol}://#{@host}/api/#{url}.json"
65
59
  end
66
60
 
67
- def call(method_name, params = {})
68
- url = api_url(method_name, params)
69
-
70
- http = Curl::Easy.new(url)
61
+ def call(url, params = {})
62
+ http = Curl::Easy.new(api_url(url))
71
63
  http.max_redirects = 2
72
64
  http.connect_timeout = @open_timeout
73
65
  http.timeout = @read_timeout
data/lib/me2api/api.rb CHANGED
@@ -20,20 +20,22 @@ module Me2API
20
20
  :logger => @logger
21
21
  )
22
22
  end
23
-
23
+
24
24
  def get_person(user_id)
25
- resp = agent.call('get_person', :user_id => user_id)
25
+ resp = agent.call("get_person/#{user_id}")
26
26
  Person.new(resp)
27
27
  end
28
+
29
+ def get_post(post_id)
30
+ resp = agent.call("get_posts", :post_id => post_id)
31
+ Post.new(resp.first)
32
+ end
28
33
 
29
34
  def get_posts(user_id, options = {})
30
- options = {
31
- :user_id => user_id
32
- }.merge(options)
33
- resp = agent.call('get_posts', options)
35
+ resp = agent.call("get_posts/#{user_id}", options)
34
36
  resp.map { |p| Post.new(p) }
35
37
  end
36
-
38
+
37
39
  # options
38
40
  # :tag - 태그
39
41
  # :attachments - 첨부 파일
@@ -44,17 +46,17 @@ module Me2API
44
46
  if options[:attachment]
45
47
  params[:files] = { 'attachment' => options[:attachment] }
46
48
  end
47
- resp = agent.call('create_post', params)
49
+ resp = agent.call("create_post/#{user_id}", params)
48
50
  Post.new(resp)
49
51
  end
50
-
52
+
51
53
  def delete_post(post_id)
52
- resp = agent.call('delete_post', :post_id => post_id)
54
+ resp = agent.call("delete_post", :post_id => post_id)
53
55
  Result.new(resp)
54
56
  end
55
-
57
+
56
58
  def get_comments(post_id)
57
- resp = agent.call('get_comments', :post_id => post_id)
59
+ resp = agent.call("get_comments", :post_id => post_id)
58
60
  resp['comments'].map do |c|
59
61
  Comment.new(post_id, c, :post_permalink => resp['post_permalink'])
60
62
  end
@@ -85,19 +87,19 @@ module Me2API
85
87
  end
86
88
 
87
89
  def get_friends(user_id, options = {})
88
- resp = agent.call('get_friends', :user_id => user_id)
90
+ resp = agent.call("get_friends/#{user_id}")
89
91
  resp['friends'].map { |f| Person.new(f) }
90
92
  end
91
93
 
92
94
  def friendship
93
95
  raise NotImplementedError.new("friendship unsupported method")
94
96
  end
95
-
97
+
96
98
  def get_friendship_requests(user_id)
97
- resp = agent.call('get_friendship_requests', :user_id => user_id)
99
+ resp = agent.call("get_friendship_requests/#{user_id}")
98
100
  resp['friendship_requests'].map { |r| FriendshipRequest.new(r) }
99
101
  end
100
-
102
+
101
103
  def accept_friendship_request(friendship_request_id, message)
102
104
  agent.call(
103
105
  'accept_friendship_requests',
@@ -105,7 +107,7 @@ module Me2API
105
107
  :message => message
106
108
  )
107
109
  end
108
-
110
+
109
111
  def get_settings
110
112
  resp = agent.call('get_settings')
111
113
  Setting.new(resp)
@@ -1,3 +1,3 @@
1
1
  module Me2API
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/test/agent_test.rb CHANGED
@@ -14,8 +14,8 @@ class AgentTest < Test::Unit::TestCase
14
14
  def test_call
15
15
  resp = nil
16
16
  assert_nothing_raised do
17
- resp = @agent.call('get_person', :user_id => 'me2help')
17
+ resp = @agent.call('get_posts', :post_id => 'pyxdhvf-yr5s')
18
18
  end
19
- assert_equal('me2help', resp['id'])
19
+ assert_equal('pyxdhvf-yr5s', resp.first['post_id'])
20
20
  end
21
21
  end
data/test/api_test.rb CHANGED
@@ -30,6 +30,13 @@ class APITest < Test::Unit::TestCase
30
30
  assert_kind_of(Time, post.pub_date)
31
31
  end
32
32
 
33
+ def test_get_post
34
+ post = @api.get_post('pyxdhvf-yr5s')
35
+
36
+ assert_kind_of(Me2API::Post, post)
37
+ assert_equal('pyxdhvf-yr5s', post.post_id)
38
+ end
39
+
33
40
  def test_create_and_delete_post
34
41
  post = nil
35
42
  assert_nothing_raised do
@@ -223,6 +230,7 @@ class APITest < Test::Unit::TestCase
223
230
 
224
231
  def test_get_bands
225
232
  bands = @api.get_bands
233
+ assert_kind_of(Array, bands)
226
234
  assert(bands.length > 0)
227
235
  band = bands.first
228
236
  assert_equal(BAND_ID, band.band_id)
@@ -231,7 +239,8 @@ class APITest < Test::Unit::TestCase
231
239
 
232
240
  def test_get_bands_with_band_id
233
241
  bands = @api.get_bands(:band_id => BAND_ID)
234
- assert(bands.length > 0)
242
+ assert_kind_of(Array, bands)
243
+ assert_equal(1, bands.length)
235
244
  band = bands.first
236
245
  assert_equal(BAND_ID, band.band_id)
237
246
  assert_equal(USER_ID, band.leader.id)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: me2api-ruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 0
10
- version: 0.2.0
9
+ - 1
10
+ version: 0.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Heungseok Do