stack_overflow 0.0.6 → 0.0.7
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 +3 -1
- data/README.rdoc +10 -0
- data/lib/.stack_overflow.rb.swp +0 -0
- data/lib/stack_overflow/version.rb +1 -1
- data/lib/stack_overflow.rb +11 -0
- data/spec/stack_overflow_spec.rb +23 -0
- data/stack_overflow.gemspec +1 -0
- metadata +16 -3
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
stack_overflow (0.0.
|
4
|
+
stack_overflow (0.0.6)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: http://rubygems.org/
|
@@ -10,6 +10,7 @@ GEM
|
|
10
10
|
diff-lcs (1.1.2)
|
11
11
|
httparty (0.6.1)
|
12
12
|
crack (= 0.1.8)
|
13
|
+
json (1.4.6)
|
13
14
|
rspec (2.4.0)
|
14
15
|
rspec-core (~> 2.4.0)
|
15
16
|
rspec-expectations (~> 2.4.0)
|
@@ -24,5 +25,6 @@ PLATFORMS
|
|
24
25
|
|
25
26
|
DEPENDENCIES
|
26
27
|
httparty
|
28
|
+
json
|
27
29
|
rspec
|
28
30
|
stack_overflow!
|
data/README.rdoc
CHANGED
@@ -14,6 +14,16 @@ Be sure to set the API Key.
|
|
14
14
|
|
15
15
|
You can get your key from StackOverflow by going here : http://stackapps.com/apps/register
|
16
16
|
|
17
|
+
== Get all Users
|
18
|
+
|
19
|
+
API documentation can be found at http://api.stackoverflow.com/1.1/usage/methods/users
|
20
|
+
|
21
|
+
StackOverflow.get_all_users
|
22
|
+
|
23
|
+
By default the api returns the first page of users with 30 per page. This information can be read from the results. To get additional pages or change the pagesize (0-100) you can make call like:
|
24
|
+
|
25
|
+
StackOverflow.get_all_users(:page => 2, :per_page => 50)
|
26
|
+
|
17
27
|
== Get User(s)
|
18
28
|
|
19
29
|
API documentation can be found at http://api.stackoverflow.com/1.1/usage/methods/users-by-ids
|
data/lib/.stack_overflow.rb.swp
CHANGED
Binary file
|
data/lib/stack_overflow.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'httparty'
|
2
|
+
require 'json'
|
2
3
|
|
3
4
|
class StackOverflow
|
4
5
|
include HTTParty
|
@@ -9,6 +10,16 @@ class StackOverflow
|
|
9
10
|
@@API_KEY = value
|
10
11
|
end
|
11
12
|
|
13
|
+
def self.get_all_users(options={})
|
14
|
+
key = @@API_KEY
|
15
|
+
page = options[:page] || 1
|
16
|
+
pagesize = options[:pagesize] || 30
|
17
|
+
url = URI.parse(@@URL + "users?key=#{key}&page=#{page}&pagesize=#{pagesize}")
|
18
|
+
response = Net::HTTP.get_response url
|
19
|
+
gz = Zlib::GzipReader.new(StringIO.new(response.body))
|
20
|
+
JSON.parse(gz.read)
|
21
|
+
end
|
22
|
+
|
12
23
|
def self.get_user(user_id)
|
13
24
|
result = get(@@URL + "users/#{user_id}?key=#{@@API_KEY}")
|
14
25
|
result["users"].first
|
data/spec/stack_overflow_spec.rb
CHANGED
@@ -4,6 +4,29 @@ describe StackOverflow do
|
|
4
4
|
before(:each) do
|
5
5
|
StackOverflow.API_KEY = ENV["SO_API_KEY"]
|
6
6
|
end
|
7
|
+
|
8
|
+
describe "get all users" do
|
9
|
+
context "all users" do
|
10
|
+
before(:each) do
|
11
|
+
@result = StackOverflow.get_all_users
|
12
|
+
end
|
13
|
+
it { @result.should_not be_nil }
|
14
|
+
end
|
15
|
+
|
16
|
+
context "second page" do
|
17
|
+
before(:each) do
|
18
|
+
@result = StackOverflow.get_all_users(:page => 2)
|
19
|
+
end
|
20
|
+
it { @result.should_not be_nil }
|
21
|
+
end
|
22
|
+
|
23
|
+
context "50 per page" do
|
24
|
+
before(:each) do
|
25
|
+
@result = StackOverflow.get_all_users(:pagesize => 50)
|
26
|
+
end
|
27
|
+
it { @result["users"].count.should == 50 }
|
28
|
+
end
|
29
|
+
end
|
7
30
|
|
8
31
|
describe "get user" do
|
9
32
|
before(:each) do
|
data/stack_overflow.gemspec
CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
|
17
17
|
s.add_development_dependency "rspec"
|
18
18
|
s.add_development_dependency "httparty"
|
19
|
+
s.add_development_dependency "json"
|
19
20
|
|
20
21
|
s.files = `git ls-files`.split("\n")
|
21
22
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 7
|
9
|
+
version: 0.0.7
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jonathan Birkholz
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-
|
17
|
+
date: 2011-06-02 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -43,6 +43,19 @@ dependencies:
|
|
43
43
|
version: "0"
|
44
44
|
type: :development
|
45
45
|
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: json
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
version_requirements: *id003
|
46
59
|
description: HTTParty over the StackOverflow API
|
47
60
|
email:
|
48
61
|
- rookieone@gmail.com
|