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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stack_overflow (0.0.1)
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
Binary file
@@ -1,3 +1,3 @@
1
1
  module StackOverflow
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -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
@@ -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
@@ -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
- - 6
9
- version: 0.0.6
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-03-29 00:00:00 -05:00
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