pilha 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe StackExchange::StackOverflow::Statistics do
4
+
5
+ before do
6
+ StackExchange::StackOverflow::Client.config
7
+ end
8
+
9
+ describe 'when querying for statistics' do
10
+ it "should return the stack overflow's statistics" do
11
+ response = StackOverflow::Statistics.all
12
+ response.total_questions.should == 692539
13
+ response.total_unanswered.should == 107245
14
+ response.total_answers.should == 1938135
15
+ response.total_comments.should == 2724322
16
+ response.total_votes.should == 6817279
17
+ response.total_badges.should == 699700
18
+ response.total_users.should == 247683
19
+ response.questions_per_minute.should == 1.78
20
+ response.answers_per_minute.should == 3.71
21
+ response.badges_per_minute.should == 1.58
22
+ response.api_version['version'].should == "0.8"
23
+ response.api_version['revision'].should == "1.0.1234.5678"
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe StackExchange::StackOverflow::User do
4
+
5
+ it "should the users that have been awarded the badge identified by 'id'" do
6
+ response = StackOverflow::User.find_by_badge_id 9
7
+ response.total.should == 28080
8
+ response.page.should == 1
9
+ response.pagesize.should == 30
10
+
11
+ first_user = response.users.first
12
+ first_user.should be_instance_of StackOverflow::User
13
+ first_user.user_id.should == 349130
14
+ first_user.user_type.should == "registered"
15
+ first_user.creation_date.should == 1274719205
16
+ first_user.display_name.should == "matias.valdenegro"
17
+ first_user.reputation.should == 16
18
+ first_user.email_hash.should == "2e4efeebbf6994bb904738c4fb8922bf"
19
+ first_user.age.should == 25
20
+ first_user.last_access_date.should == 1274894693
21
+ first_user.website_url.should == "http://None"
22
+ first_user.location.should == "Santiago, Chile."
23
+ first_user.about_me.should == "Computer Engineer, interested in Robotics, Computer Graphics, and GPGPU."
24
+ first_user.question_count.should be_zero
25
+ first_user.answer_count.should == 2
26
+ first_user.view_count.should be_zero
27
+ first_user.up_vote_count.should be_zero
28
+ first_user.down_vote_count.should be_zero
29
+ first_user.user_questions_url.should == "/users/349130/questions"
30
+ first_user.user_answers_url.should == "/users/349130/answers"
31
+ first_user.user_tags_url.should == "/users/349130/tags"
32
+ first_user.user_badges_url.should == "/users/349130/badges"
33
+ first_user.user_timeline_url.should == "/users/349130/timeline"
34
+ first_user.user_mentioned_url.should == "/users/349130/mentioned"
35
+ first_user.user_comments_url.should == "/users/349130/comments"
36
+ first_user.user_reputation_url.should == "/users/349130/reputation"
37
+ first_user.badge_counts['gold'].should be_zero
38
+ first_user.badge_counts['silver'].should be_zero
39
+ first_user.badge_counts['bronze'].should == 1
40
+ end
41
+
42
+ it 'should return the right number of items when pagesize is passed in the query parameters' do
43
+ response = StackOverflow::User.find_by_badge_id(9, :pagesize => 50)
44
+ response.pagesize.should == 50
45
+ response.users.size.should == 50
46
+ end
47
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format profile
@@ -0,0 +1,33 @@
1
+ path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(path) unless $LOAD_PATH.include?(path)
3
+
4
+ require 'rubygems'
5
+ require 'fakeweb'
6
+ require 'pilha'
7
+ require 'spec'
8
+ require 'pp'
9
+
10
+ include StackExchange
11
+ FIXTURES_PATH = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures'))
12
+ ROOT_URL = [StackOverflow::Client::URL.chomp('/'), StackOverflow::Client::API_VERSION].join '/'
13
+ FakeWeb.allow_net_connect = false
14
+
15
+ def register(options)
16
+ url = api_method_url(options[:url])
17
+ FakeWeb.register_uri(:get, url, :body => read_fixture(options[:body] + '.json'))
18
+ end
19
+
20
+ def read_fixture(fixture)
21
+ File.read(File.join(FIXTURES_PATH, fixture))
22
+ end
23
+
24
+ def api_method_url(method)
25
+ ROOT_URL + '/' + method
26
+ end
27
+
28
+ ['stats', 'badges' ].each do |method|
29
+ register :url => method + '/', :body => method
30
+ end
31
+
32
+ register(:url => 'badges/9/', :body => 'badges_by_id')
33
+ register(:url => 'badges/9/?pagesize=50', :body => 'badges_by_id_page2')
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pilha
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 1
9
+ version: 0.1.1
10
+ platform: ruby
11
+ authors:
12
+ - Dalto Curvelano Junior
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-05-27 00:00:00 -03:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: A ruby wrapper to the StackExchange (StackOverflow and friends) API.
22
+ email:
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - pilha.gemspec
31
+ - lib/pilha/stack_overflow/badge.rb
32
+ - lib/pilha/stack_overflow/statistics.rb
33
+ - lib/pilha/stack_overflow/user.rb
34
+ - lib/pilha.rb
35
+ - spec/fixtures/badges.json
36
+ - spec/fixtures/badges_by_id.json
37
+ - spec/fixtures/badges_by_id_page2.json
38
+ - spec/fixtures/badges_name.json
39
+ - spec/fixtures/stats.json
40
+ - spec/pilha/stack_overflow/badge_spec.rb
41
+ - spec/pilha/stack_overflow/stack_overflow_spec.rb
42
+ - spec/pilha/stack_overflow/statistics_spec.rb
43
+ - spec/pilha/stack_overflow/user_spec.rb
44
+ - spec/spec.opts
45
+ - spec/spec_helper.rb
46
+ has_rdoc: true
47
+ homepage: http://github.com/dlt/stack_exchange
48
+ licenses: []
49
+
50
+ post_install_message:
51
+ rdoc_options: []
52
+
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ segments:
67
+ - 0
68
+ version: "0"
69
+ requirements: []
70
+
71
+ rubyforge_project:
72
+ rubygems_version: 1.3.6
73
+ signing_key:
74
+ specification_version: 3
75
+ summary: A ruby wrapper to the StackExchange (StackOverflow and friends) API.
76
+ test_files: []
77
+