disqussion 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- disqussion (0.0.1)
4
+ disqussion (0.0.2)
5
5
  faraday (~> 0.6.1)
6
6
  faraday_middleware (~> 0.6.3)
7
7
  hashie (~> 1.0.0)
@@ -29,8 +29,8 @@ GEM
29
29
  ruby_core_source (>= 0.1.4)
30
30
  maruku (0.6.0)
31
31
  syntax (>= 1.0.0)
32
- multi_json (1.0.1)
33
- multipart-post (1.1.0)
32
+ multi_json (1.0.2)
33
+ multipart-post (1.1.1)
34
34
  nokogiri (1.4.4)
35
35
  rack (1.2.2)
36
36
  rake (0.8.7)
data/HISTORY.mkd CHANGED
@@ -1,5 +1,14 @@
1
1
  HISTORY
2
2
  =======
3
+
4
+ 0.0.3 - May 18, 2011
5
+ ----------------------
6
+ * Added following missing features: Users#listActiveForums, Users#listForums, Users#listPosts, Users#unfollow, Forums#listMostLikedUsers, Forums#listUsers
7
+
8
+ 0.0.2 - May 18, 2011
9
+ ----------------------
10
+ * Fixed bug with EventMachine detection in configuration
11
+
3
12
  0.0.1 - May 10, 2011
4
13
  ----------------------
5
14
  * First release
data/README.mkd CHANGED
@@ -22,8 +22,10 @@ Continuous Integration
22
22
  ----------------------
23
23
  [![Build Status](http://travis-ci.org/jeremyvdw/disqussion.png)](http://travis-ci.org/jeremyvdw/disqussion)
24
24
 
25
- What's in 0.1?
26
- ------------------
25
+ What's in 0.0.3?
26
+ ----------------
27
+
28
+ Disqussion currently covers *only* stable Disqus API for: applications, forums, posts, reactions, threads and users features.
27
29
 
28
30
  The error classes are consistent with [Disqus's documented response codes](http://disqus.com/api/docs/errors/).
29
31
  Error details from Disqus API are encapsulated in HTTP response.
@@ -62,10 +62,26 @@ module Disqussion
62
62
  response = get('forums/listCategories', options)
63
63
  end
64
64
 
65
- # NOTE: to be implemented
66
65
  # Returns a list of users active within a forum ordered by most likes received.
66
+ # @accessibility: public key, secret key
67
+ # @methods: GET
68
+ # @format: json, jsonp
69
+ # @authenticated: false
70
+ # @limited: false
71
+ # @param forum [String] Forum ID (aka short name).
72
+ # @return [Hashie::Rash] Details on the list of posts.
73
+ # @param options [Hash] A customizable set of options.
74
+ # @option options [Datetime, Timestamp] :since. Unix timestamp (or ISO datetime standard). Defaults to null
75
+ # @option options [Integer] :cursor. Defaults to null
76
+ # @option options [Integer] :limit. Defaults to 25. Maximum length of 100
77
+ # @option options [String] :order. Defaults to "desc". Choices: asc, desc
78
+ # @example Return list of most liked users for forum 'myforum'
79
+ # Disqussion::Client.forums.listMostLikedUsers("myforum")
67
80
  # @see: http://disqus.com/api/3.0/forums/listMostLikedUsers.json
68
81
  def listMostLikedUsers(*args)
82
+ options = args.last.is_a?(Hash) ? args.pop : {}
83
+ options[:forum] = args.first
84
+ response = get('forums/listMostLikedUsers', options)
69
85
  end
70
86
 
71
87
  # Returns a list of posts within a forum.
@@ -118,5 +134,26 @@ module Disqussion
118
134
  response = get('forums/listThreads', options)
119
135
  end
120
136
 
137
+ # Returns a list of users active within a forum.
138
+ # @accessibility: public key, secret key
139
+ # @methods: GET
140
+ # @format: json, jsonp
141
+ # @authenticated: false
142
+ # @limited: false
143
+ # @param forum [String] Forum ID (aka short name).
144
+ # @return [Hashie::Rash] Details on the list of posts.
145
+ # @param options [Hash] A customizable set of options.
146
+ # @option options [Datetime, Timestamp] :since. Unix timestamp (or ISO datetime standard). Defaults to null
147
+ # @option options [Integer] :cursor. Defaults to null
148
+ # @option options [Integer] :limit. Defaults to 25. Maximum length of 100
149
+ # @option options [String] :order. Defaults to "desc". Choices: asc, desc
150
+ # @example Return list of active users for forum 'myforum'
151
+ # Disqussion::Client.forums.listUsers("myforum")
152
+ # @see: http://disqus.com/api/3.0/forums/listUsers.json
153
+ def listUsers(*args)
154
+ options = args.last.is_a?(Hash) ? args.pop : {}
155
+ options[:forum] = args.first
156
+ response = get('forums/listUsers', options)
157
+ end
121
158
  end
122
159
  end
@@ -10,7 +10,7 @@ module Disqussion
10
10
  # @return [Hashie::Rash] Details on the requested user.
11
11
  # @example Return extended information for 'the88'
12
12
  # Disqussion::Client.user("the88")
13
- # Disqussion::Client.user(6138058) # Same as above
13
+ # Disqussion::Client.user(1234) # Same as above
14
14
  # @see: http://disqus.com/api/3.0/users/details.json
15
15
  def details(*args)
16
16
  options = args.last.is_a?(Hash) ? args.pop : {}
@@ -29,7 +29,7 @@ module Disqussion
29
29
  # @return [Hashie::Rash] Details on the requested user.
30
30
  # @example Return extended information for 'the88'
31
31
  # Disqussion::Client.follow("the88")
32
- # Disqussion::Client.follow(6138058) # Same as above
32
+ # Disqussion::Client.follow(1234) # Same as above
33
33
  # @see: http://disqus.com/api/3.0/users/details.json
34
34
  def follow(*args)
35
35
  options = args.last.is_a?(Hash) ? args.pop : {}
@@ -39,48 +39,98 @@ module Disqussion
39
39
  end
40
40
 
41
41
  # Returns a list of forums a user has been active on.
42
- def listActiveForums
43
-
42
+ # @accessibility: public key, secret key
43
+ # @methods: GET
44
+ # @format: json, jsonp
45
+ # @authenticated: false
46
+ # @limited: false
47
+ # @return [Hashie::Rash] Details on the list of posts.
48
+ # @param options [Hash] A customizable set of options.
49
+ # @option options [Datetime, Timestamp] :since. Unix timestamp (or ISO datetime standard). Defaults to null
50
+ # @option options [Integer] :cursor. Defaults to null
51
+ # @option options [Integer] :limit. Defaults to 25. Maximum length of 100
52
+ # @option options [Integer] :user. Defaults to null. Looks up a user by ID. You may look up a user by username using the 'username' query type.
53
+ # @option options [String] :order. Defaults to "desc". Choices: asc, desc
54
+ # @example Return a list of forums user 1234 has been active on
55
+ # Disqussion::Client.users.listActiveForums(:user => 1234)
56
+ # @see: http://disqus.com/api/3.0/users/listActiveForums.json
57
+ def listActiveForums(*args)
58
+ options = args.last.is_a?(Hash) ? args.pop : {}
59
+ response = get('users/listActiveForums', options)
44
60
  end
45
61
 
46
62
  # BETA
47
63
  # Returns a list of threads a user has participated in sorted by last activity.
48
- def listActiveThreads
64
+ def listActiveThreads(*args)
49
65
 
50
66
  end
51
67
 
52
68
  # BETA
53
69
  # Returns a list of various activity types made by the user.
54
- def listActivity
70
+ def listActivity(*args)
55
71
 
56
72
  end
57
73
 
58
74
  # BETA
59
75
  # Returns a list of users a user is being followed by.
60
- def listFollowers
76
+ def listFollowers(*args)
61
77
 
62
78
  end
63
79
 
64
80
  # BETA
65
81
  # Returns a list of users a user is following.
66
- def listFollowing
82
+ def listFollowing(*args)
67
83
 
68
84
  end
69
-
85
+
70
86
  # Returns a list of forums a user owns.
71
- def listForums
72
-
87
+ # @accessibility: public key, secret key
88
+ # @methods: GET
89
+ # @format: json, jsonp
90
+ # @authenticated: false
91
+ # @limited: false
92
+ # @return [Hashie::Rash] Details on the list of forums.
93
+ # @param options [Hash] A customizable set of options.
94
+ # @option options [Datetime, Timestamp] :since. Unix timestamp (or ISO datetime standard). Defaults to null
95
+ # @option options [Integer] :cursor. Defaults to null
96
+ # @option options [Integer] :limit. Defaults to 25. Maximum length of 100
97
+ # @option options [Integer] :user. Defaults to null. Looks up a user by ID. You may look up a user by username using the 'username' query type.
98
+ # @option options [String] :order. Defaults to "desc". Choices: asc, desc
99
+ # @example Return a list of forums owned by user 1234
100
+ # Disqussion::Client.users.listForums(:user => 1234)
101
+ # @see: http://disqus.com/api/3.0/users/listForums.json
102
+ def listForums(*args)
103
+ options = args.last.is_a?(Hash) ? args.pop : {}
104
+ response = get('users/listForums', options)
73
105
  end
74
106
 
75
107
  # BETA
76
108
  # Returns a list of forums a user has been active on recenty, sorted by the user's activity.
77
- def listMostActiveForums
109
+ def listMostActiveForums(*args)
78
110
 
79
111
  end
80
112
 
81
113
  # Returns a list of posts made by the user.
82
- def listPosts
83
-
114
+ # @accessibility: public key, secret key
115
+ # @methods: GET
116
+ # @format: json, jsonp
117
+ # @authenticated: false
118
+ # @limited: false
119
+ # @return [Hashie::Rash] Details on the list of forums.
120
+ # @param options [Hash] A customizable set of options.
121
+ # @option options [Datetime, Timestamp] :since. Unix timestamp (or ISO datetime standard). Defaults to null
122
+ # @option options [Integer, String] :related. Allows multiple. Defaults to []. You may specify relations to include with your response. Choices: forum, thread.
123
+ # @option options [Integer] :cursor. Defaults to null
124
+ # @option options [Integer] :limit. Defaults to 25. Maximum length of 100
125
+ # @option options [Integer] :user. Defaults to null. Looks up a user by ID. You may look up a user by username using the 'username' query type.
126
+ # @option options [String, Array] :include. Allows multiple. Defaults to ["approved"]. Choices: unapproved, approved, spam, deleted, flagged, highlighted
127
+ # @option options [String] :order. Defaults to "desc". Choices: asc, desc
128
+ # @example Return a list of user 1234s posts
129
+ # Disqussion::Client.users.listPosts(:user => 1234)
130
+ # @see: http://disqus.com/api/3.0/users/listPosts.json
131
+ def listPosts(*args)
132
+ options = args.last.is_a?(Hash) ? args.pop : {}
133
+ response = get('users/listPosts', options)
84
134
  end
85
135
 
86
136
  # Unfollow a user
@@ -93,10 +143,12 @@ module Disqussion
93
143
  # @return [Hashie::Rash] Details on the requested user.
94
144
  # @example Return extended information for 'the88'
95
145
  # Disqussion::Client.unfollow("the88")
96
- # Disqussion::Client.unfollow(6138058) # Same as above
146
+ # Disqussion::Client.unfollow(1234) # Same as above
97
147
  # @see: http://disqus.com/api/3.0/users/details.json
98
- def unfollow
99
- merge_user_into_options!(user, options)
148
+ def unfollow(*args)
149
+ options = args.last.is_a?(Hash) ? args.pop : {}
150
+ target = args.first
151
+ merge_target_into_options!(target, options)
100
152
  response = post('users/unfollow', options)
101
153
  end
102
154
  end
@@ -1,3 +1,3 @@
1
1
  module Disqussion
2
- VERSION = '0.0.2'.freeze unless defined?(::Disqussion::VERSION)
2
+ VERSION = '0.0.3'.freeze unless defined?(::Disqussion::VERSION)
3
3
  end
@@ -33,15 +33,15 @@ describe Disqussion::Forums do
33
33
  end
34
34
  end
35
35
 
36
- describe ".listPosts" do
36
+ describe ".listMostLikedUsers" do
37
37
  before do
38
- stub_get("forums/listPosts.json", :query => { :forum => "the88" }).
39
- to_return(:body => fixture("forums/listPosts.json"), :headers => {:content_type => "application/json; charset=utf-8"})
38
+ stub_get("forums/listMostLikedUsers.json", :query => { :forum => "the88" }).
39
+ to_return(:body => fixture("forums/listMostLikedUsers.json"), :headers => {:content_type => "application/json; charset=utf-8"})
40
40
  end
41
41
 
42
- it "returns details on the requested list of posts." do
43
- @client.listPosts("the88")
44
- a_get("forums/listPosts.json", :query => { :forum => "the88" }).
42
+ it "returns details on the requested list of users." do
43
+ @client.listMostLikedUsers("the88")
44
+ a_get("forums/listMostLikedUsers.json", :query => { :forum => "the88" }).
45
45
  should have_been_made
46
46
  end
47
47
  end
@@ -59,8 +59,17 @@ describe Disqussion::Forums do
59
59
  end
60
60
  end
61
61
 
62
- describe ".listMostLikedUsers" do
63
- pending
62
+ describe ".listPosts" do
63
+ before do
64
+ stub_get("forums/listPosts.json", :query => { :forum => "the88" }).
65
+ to_return(:body => fixture("forums/listPosts.json"), :headers => {:content_type => "application/json; charset=utf-8"})
66
+ end
67
+
68
+ it "returns details on the requested list of posts." do
69
+ @client.listPosts("the88")
70
+ a_get("forums/listPosts.json", :query => { :forum => "the88" }).
71
+ should have_been_made
72
+ end
64
73
  end
65
74
 
66
75
  describe ".listThreads" do
@@ -75,6 +84,19 @@ describe Disqussion::Forums do
75
84
  should have_been_made
76
85
  end
77
86
  end
87
+
88
+ describe ".listUsers" do
89
+ before do
90
+ stub_get("forums/listUsers.json", :query => { :forum => "the88" }).
91
+ to_return(:body => fixture("forums/listUsers.json"), :headers => {:content_type => "application/json; charset=utf-8"})
92
+ end
93
+
94
+ it "returns details on the requested list of users." do
95
+ @client.listUsers("the88")
96
+ a_get("forums/listUsers.json", :query => { :forum => "the88" }).
97
+ should have_been_made
98
+ end
99
+ end
78
100
  end
79
101
  end
80
102
  end
@@ -46,6 +46,10 @@ describe Disqussion::Posts do
46
46
  end
47
47
  end
48
48
 
49
+ describe ".getContext" do
50
+ pending
51
+ end
52
+
49
53
  describe ".highlight" do
50
54
  before do
51
55
  stub_post("posts/highlight.json", :body => { :post => "199088808" }).
@@ -72,6 +76,10 @@ describe Disqussion::Posts do
72
76
  end
73
77
  end
74
78
 
79
+ describe ".listPopular" do
80
+ pending
81
+ end
82
+
75
83
  describe ".remove" do
76
84
  before do
77
85
  stub_post("posts/remove.json", :body => { :post => "199088808" }).
@@ -46,6 +46,14 @@ describe Disqussion::Threads do
46
46
  end
47
47
  end
48
48
 
49
+ describe ".listBydate" do
50
+ pending
51
+ end
52
+
53
+ describe ".listHot" do
54
+ pending
55
+ end
56
+
49
57
  describe ".listMostLiked" do
50
58
  before do
51
59
  stub_get("threads/listMostLiked.json", :query => { :forum => "the88" }).
@@ -59,6 +67,10 @@ describe Disqussion::Threads do
59
67
  end
60
68
  end
61
69
 
70
+ describe ".listPopular" do
71
+ pending
72
+ end
73
+
62
74
  describe ".listPosts" do
63
75
  before do
64
76
  stub_get("threads/listPosts.json", :query => { :thread => "mythread" }).
@@ -72,6 +84,10 @@ describe Disqussion::Threads do
72
84
  end
73
85
  end
74
86
 
87
+ describe ".listSimilar" do
88
+ pending
89
+ end
90
+
75
91
  describe ".open" do
76
92
  before do
77
93
  stub_post("threads/open.json", :body => { :thread => "12345678" }).
@@ -111,6 +127,10 @@ describe Disqussion::Threads do
111
127
  end
112
128
  end
113
129
 
130
+ describe ".update" do
131
+ pending
132
+ end
133
+
114
134
  describe ".vote" do
115
135
  before do
116
136
  stub_post("threads/vote.json", :body => { :vote => "1", :thread => "12345678" }).
@@ -20,14 +20,79 @@ describe Disqussion::Users do
20
20
 
21
21
  describe ".follow" do
22
22
  it "get the correct resource" do
23
- stub_post("users/follow.json", :body => { :target => "12345678" }).
23
+ stub_post("users/follow.json", :body => { :target => "1234" }).
24
24
  to_return(:body => fixture("users/follow.json"), :headers => {:content_type => "application/json; charset=utf-8"})
25
25
 
26
- @client.follow(12345678)
26
+ @client.follow(1234)
27
27
 
28
- a_post("users/follow.json", :body => { :target => "12345678"}).should have_been_made
28
+ a_post("users/follow.json", :body => { :target => "1234"}).should have_been_made
29
29
  end
30
30
  end
31
+
32
+ describe ".listActiveForums" do
33
+ it "get list of forums users has been active on." do
34
+ stub_get("users/listActiveForums.json", :query => { :user => "1234" }).
35
+ to_return(:body => fixture("users/listActiveForums.json"), :headers => {:content_type => "application/json; charset=utf-8"})
36
+
37
+ @client.listActiveForums(:user => 1234)
38
+
39
+ a_get("users/listActiveForums.json", :query => { :user => "1234"}).should have_been_made
40
+ end
41
+ end
42
+
43
+ describe ".listActiveThreads" do
44
+ pending
45
+ end
46
+
47
+ describe ".listActivity" do
48
+ pending
49
+ end
50
+
51
+ describe ".listFollowers" do
52
+ pending
53
+ end
54
+
55
+ describe ".listFollowing" do
56
+ pending
57
+ end
58
+
59
+ describe ".listForums" do
60
+ it "get list of users forums." do
61
+ stub_get("users/listForums.json", :query => { :user => "1234" }).
62
+ to_return(:body => fixture("users/listForums.json"), :headers => {:content_type => "application/json; charset=utf-8"})
63
+
64
+ @client.listForums(:user => 1234)
65
+
66
+ a_get("users/listForums.json", :query => { :user => "1234"}).should have_been_made
67
+ end
68
+ end
69
+
70
+ describe "listMostActiveForums" do
71
+ pending
72
+ end
73
+
74
+ describe ".listPosts" do
75
+ it "get list of users posts." do
76
+ stub_get("users/listPosts.json", :query => { :user => "191921097" }).
77
+ to_return(:body => fixture("users/listPosts.json"), :headers => {:content_type => "application/json; charset=utf-8"})
78
+
79
+ @client.listPosts(:user => 191921097)
80
+
81
+ a_get("users/listPosts.json", :query => { :user => "191921097"}).should have_been_made
82
+ end
83
+ end
84
+
85
+ describe "unfollow" do
86
+ it "get the correct resource" do
87
+ stub_post("users/unfollow.json", :body => { :target => "12345678" }).
88
+ to_return(:body => fixture("users/unfollow.json"), :headers => {:content_type => "application/json; charset=utf-8"})
89
+
90
+ @client.unfollow(12345678)
91
+
92
+ a_post("users/unfollow.json", :body => { :target => "12345678"}).should have_been_made
93
+ end
94
+ end
95
+
31
96
  end
32
97
  end
33
98
  end