rubyoverflow 0.5 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +22 -11
- data/RELEASENOTES +97 -1
- data/Rakefile +49 -7
- data/VERSION +1 -1
- data/lib/rubyoverflow.rb +92 -18
- data/lib/rubyoverflow/answer.rb +61 -0
- data/lib/rubyoverflow/answers.rb +60 -0
- data/lib/rubyoverflow/apiSite.rb +32 -0
- data/lib/rubyoverflow/apiSites.rb +25 -0
- data/lib/rubyoverflow/apiVersion.rb +6 -0
- data/lib/rubyoverflow/badge.rb +44 -0
- data/lib/rubyoverflow/badgeCounts.rb +22 -0
- data/lib/rubyoverflow/badges.rb +59 -0
- data/lib/rubyoverflow/base.rb +76 -0
- data/lib/rubyoverflow/comment.rb +41 -0
- data/lib/rubyoverflow/comments.rb +115 -0
- data/lib/rubyoverflow/errors.rb +17 -0
- data/lib/rubyoverflow/pagedBase.rb +27 -0
- data/lib/rubyoverflow/pagedDash.rb +7 -0
- data/lib/rubyoverflow/postTimelineEvent.rb +93 -0
- data/lib/rubyoverflow/postTimelineEvents.rb +39 -0
- data/lib/rubyoverflow/question.rb +110 -0
- data/lib/rubyoverflow/questions.rb +104 -0
- data/lib/rubyoverflow/repChange.rb +34 -0
- data/lib/rubyoverflow/repChanges.rb +41 -0
- data/lib/rubyoverflow/revision.rb +62 -0
- data/lib/rubyoverflow/revisions.rb +52 -0
- data/lib/rubyoverflow/statistics.rb +57 -0
- data/lib/rubyoverflow/styling.rb +19 -0
- data/lib/rubyoverflow/tag.rb +27 -0
- data/lib/rubyoverflow/tags.rb +46 -0
- data/lib/rubyoverflow/user.rb +181 -0
- data/lib/rubyoverflow/userTimelineEvent.rb +43 -0
- data/lib/rubyoverflow/userTimelineEvents.rb +35 -0
- data/lib/rubyoverflow/users.rb +67 -18
- data/test/apiKey.rb +5 -0
- data/test/helper.rb +159 -0
- data/test/test_answer.rb +20 -0
- data/test/test_answers.rb +32 -0
- data/test/test_badge.rb +18 -0
- data/test/test_badges.rb +30 -0
- data/test/test_base.rb +63 -0
- data/test/test_statistics.rb +26 -0
- data/test/test_user.rb +56 -0
- data/test/test_users.rb +37 -0
- metadata +122 -87
- data/.gitignore +0 -4
- data/.rvmrc +0 -47
- data/.travis.yml +0 -5
- data/Gemfile +0 -3
- data/lib/rubyoverflow/sites.rb +0 -20
- data/lib/rubyoverflow/version.rb +0 -3
- data/rubyoverflow.gemspec +0 -26
- data/spec/sites_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -3
- data/spec/users_spec.rb +0 -23
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestStatistics < Test::Unit::TestCase
|
4
|
+
describe "Statistics" do
|
5
|
+
before(:all) do
|
6
|
+
set_api_key
|
7
|
+
end
|
8
|
+
it "retrieve stats" do
|
9
|
+
stats = Statistics.retrieve
|
10
|
+
stats.should respond_to(:total_badges)
|
11
|
+
stats.should respond_to(:total_unanswered)
|
12
|
+
stats.should respond_to(:total_votes)
|
13
|
+
stats.should respond_to(:total_comments)
|
14
|
+
stats.should respond_to(:total_answers)
|
15
|
+
stats.should respond_to(:site)
|
16
|
+
stats.should respond_to(:total_users)
|
17
|
+
stats.should respond_to(:questions_per_minute)
|
18
|
+
stats.should respond_to(:answers_per_minute)
|
19
|
+
stats.should respond_to(:badges_per_minute)
|
20
|
+
stats.should respond_to(:views_per_day)
|
21
|
+
stats.should respond_to(:api_version)
|
22
|
+
stats.should respond_to(:total_accepted)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
data/test/test_user.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestUser < Test::Unit::TestCase
|
4
|
+
describe User do
|
5
|
+
before(:all) do
|
6
|
+
@user = Users.retrieve_by_id(53587, single_item_set).users.first
|
7
|
+
set_api_key
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'check user' do
|
11
|
+
check_user @user
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'get_questions' do
|
15
|
+
check_question_set @user.get_questions(single_item_set)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'get_answers' do
|
19
|
+
check_answer_set @user.get_answers(single_item_set)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'get_favorites' do
|
23
|
+
check_question_set @user.get_favorites(single_item_set)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'get_tags' do
|
27
|
+
check_tag_set @user.get_tags(single_item_set)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'get_badges' do
|
31
|
+
check_badge_set @user.get_badges
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'get_timeline' do
|
35
|
+
check_user_timeline_event_set @user.get_timeline(single_item_set)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'get_mentioned' do
|
39
|
+
check_comment_set @user.get_mentioned(single_item_set)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'get_comments' do
|
43
|
+
check_comment_set @user.get_comments(single_item_set)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'get_reputation' do
|
47
|
+
check_rep_change_set @user.get_reputation(single_item_set)
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'retrieve_associated_accounts' do
|
51
|
+
#users = @user.retrieve_associated_accounts
|
52
|
+
#users.should respond_to(:users)
|
53
|
+
#check_user users.users.first
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/test/test_users.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestUsers < Test::Unit::TestCase
|
4
|
+
describe Users do
|
5
|
+
before(:all) do
|
6
|
+
@badges = Badges.retrieve_all
|
7
|
+
set_api_key
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'retrieves_all_users' do
|
11
|
+
users = Users.retrieve_all single_item_set
|
12
|
+
check_user_set users
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'get_next_set' do
|
16
|
+
users = Users.retrieve_all single_item_set
|
17
|
+
users = users.get_next_set
|
18
|
+
check_user_set users
|
19
|
+
users.page.should == 2
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'retrieves by id' do
|
23
|
+
users = Users.retrieve_by_id 53587, single_item_set
|
24
|
+
check_user_set users
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'retrieve_by_badge' do
|
28
|
+
users = Users.retrieve_by_badge @badges.badges.first.badge_id, single_item_set
|
29
|
+
check_user_set users
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'retrieve_moderators' do
|
33
|
+
users = Users.retrieve_moderators single_item_set
|
34
|
+
check_user_set users
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
metadata
CHANGED
@@ -1,122 +1,157 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyoverflow
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
version: 1.0.2
|
6
10
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
-
|
11
|
+
authors:
|
12
|
+
- phsr
|
9
13
|
autorequire:
|
10
14
|
bindir: bin
|
11
15
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
|
17
|
+
date: 2011-04-19 00:00:00 -04:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: httparty
|
16
|
-
requirement: &2156604660 !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: hashie
|
27
|
-
requirement: &2156603920 !ruby/object:Gem::Requirement
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
28
24
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
33
31
|
type: :runtime
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: hashie
|
34
35
|
prerelease: false
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: json
|
38
|
-
requirement: &2156602940 !ruby/object:Gem::Requirement
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
37
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
44
|
type: :runtime
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
45
|
+
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
48
47
|
name: rspec
|
49
|
-
requirement: &2156602240 !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - ! '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
type: :development
|
56
48
|
prerelease: false
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: rake
|
60
|
-
requirement: &2156570520 !ruby/object:Gem::Requirement
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
61
50
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
version: "0"
|
66
57
|
type: :development
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
email:
|
71
|
-
- git@danseaver.com
|
58
|
+
version_requirements: *id003
|
59
|
+
description: rubyoverflow is a library for querying the Stack Overflow API
|
60
|
+
email: phasor@phsr.org
|
72
61
|
executables: []
|
62
|
+
|
73
63
|
extensions: []
|
74
|
-
|
75
|
-
|
64
|
+
|
65
|
+
extra_rdoc_files:
|
66
|
+
- LICENSE
|
67
|
+
- README.rdoc
|
68
|
+
files:
|
76
69
|
- .document
|
77
|
-
- .gitignore
|
78
|
-
- .rvmrc
|
79
|
-
- .travis.yml
|
80
|
-
- Gemfile
|
81
|
-
- Gemfile.lock
|
82
70
|
- LICENSE
|
83
71
|
- README.rdoc
|
84
72
|
- RELEASENOTES
|
85
73
|
- Rakefile
|
86
74
|
- VERSION
|
87
75
|
- lib/rubyoverflow.rb
|
88
|
-
- lib/rubyoverflow/
|
76
|
+
- lib/rubyoverflow/answer.rb
|
77
|
+
- lib/rubyoverflow/answers.rb
|
78
|
+
- lib/rubyoverflow/apiSite.rb
|
79
|
+
- lib/rubyoverflow/apiSites.rb
|
80
|
+
- lib/rubyoverflow/apiVersion.rb
|
81
|
+
- lib/rubyoverflow/badge.rb
|
82
|
+
- lib/rubyoverflow/badgeCounts.rb
|
83
|
+
- lib/rubyoverflow/badges.rb
|
84
|
+
- lib/rubyoverflow/base.rb
|
85
|
+
- lib/rubyoverflow/comment.rb
|
86
|
+
- lib/rubyoverflow/comments.rb
|
87
|
+
- lib/rubyoverflow/errors.rb
|
88
|
+
- lib/rubyoverflow/pagedBase.rb
|
89
|
+
- lib/rubyoverflow/pagedDash.rb
|
90
|
+
- lib/rubyoverflow/postTimelineEvent.rb
|
91
|
+
- lib/rubyoverflow/postTimelineEvents.rb
|
92
|
+
- lib/rubyoverflow/question.rb
|
93
|
+
- lib/rubyoverflow/questions.rb
|
94
|
+
- lib/rubyoverflow/repChange.rb
|
95
|
+
- lib/rubyoverflow/repChanges.rb
|
96
|
+
- lib/rubyoverflow/revision.rb
|
97
|
+
- lib/rubyoverflow/revisions.rb
|
98
|
+
- lib/rubyoverflow/statistics.rb
|
99
|
+
- lib/rubyoverflow/styling.rb
|
100
|
+
- lib/rubyoverflow/tag.rb
|
101
|
+
- lib/rubyoverflow/tags.rb
|
102
|
+
- lib/rubyoverflow/user.rb
|
103
|
+
- lib/rubyoverflow/userTimelineEvent.rb
|
104
|
+
- lib/rubyoverflow/userTimelineEvents.rb
|
89
105
|
- lib/rubyoverflow/users.rb
|
90
|
-
-
|
91
|
-
-
|
92
|
-
-
|
93
|
-
-
|
94
|
-
-
|
95
|
-
|
106
|
+
- test/apiKey.rb
|
107
|
+
- test/helper.rb
|
108
|
+
- test/test_answer.rb
|
109
|
+
- test/test_answers.rb
|
110
|
+
- test/test_badge.rb
|
111
|
+
- test/test_badges.rb
|
112
|
+
- test/test_base.rb
|
113
|
+
- test/test_statistics.rb
|
114
|
+
- test/test_user.rb
|
115
|
+
- test/test_users.rb
|
116
|
+
has_rdoc: true
|
117
|
+
homepage: http://github.com/phsr/rubyoverflow
|
96
118
|
licenses: []
|
119
|
+
|
97
120
|
post_install_message:
|
98
121
|
rdoc_options: []
|
99
|
-
|
122
|
+
|
123
|
+
require_paths:
|
100
124
|
- lib
|
101
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
102
126
|
none: false
|
103
|
-
requirements:
|
104
|
-
- -
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
|
107
|
-
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
segments:
|
131
|
+
- 0
|
132
|
+
version: "0"
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
134
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
segments:
|
139
|
+
- 0
|
140
|
+
version: "0"
|
113
141
|
requirements: []
|
114
|
-
|
115
|
-
|
142
|
+
|
143
|
+
rubyforge_project:
|
144
|
+
rubygems_version: 1.3.7
|
116
145
|
signing_key:
|
117
146
|
specification_version: 3
|
118
|
-
summary:
|
119
|
-
test_files:
|
120
|
-
-
|
121
|
-
-
|
122
|
-
-
|
147
|
+
summary: rubyoverflow is a library for querying the Stack Overflow API
|
148
|
+
test_files:
|
149
|
+
- test/helper.rb
|
150
|
+
- test/test_answer.rb
|
151
|
+
- test/test_answers.rb
|
152
|
+
- test/test_badge.rb
|
153
|
+
- test/test_badges.rb
|
154
|
+
- test/test_base.rb
|
155
|
+
- test/test_statistics.rb
|
156
|
+
- test/test_user.rb
|
157
|
+
- test/test_users.rb
|
data/.gitignore
DELETED
data/.rvmrc
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
# This is an RVM Project .rvmrc file, used to automatically load the ruby
|
4
|
-
# development environment upon cd'ing into the directory
|
5
|
-
|
6
|
-
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
|
7
|
-
environment_id="ruby-1.9.2-p290@rubyoverflow"
|
8
|
-
|
9
|
-
#
|
10
|
-
# Uncomment following line if you want options to be set only for given project.
|
11
|
-
#
|
12
|
-
# PROJECT_JRUBY_OPTS=( --1.9 )
|
13
|
-
|
14
|
-
#
|
15
|
-
# First we attempt to load the desired environment directly from the environment
|
16
|
-
# file. This is very fast and efficient compared to running through the entire
|
17
|
-
# CLI and selector. If you want feedback on which environment was used then
|
18
|
-
# insert the word 'use' after --create as this triggers verbose mode.
|
19
|
-
#
|
20
|
-
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
|
21
|
-
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
|
22
|
-
then
|
23
|
-
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
|
24
|
-
|
25
|
-
if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]
|
26
|
-
then
|
27
|
-
. "${rvm_path:-$HOME/.rvm}/hooks/after_use"
|
28
|
-
fi
|
29
|
-
else
|
30
|
-
# If the environment file has not yet been created, use the RVM CLI to select.
|
31
|
-
if ! rvm --create use "$environment_id"
|
32
|
-
then
|
33
|
-
echo "Failed to create RVM environment '${environment_id}'."
|
34
|
-
exit 1
|
35
|
-
fi
|
36
|
-
fi
|
37
|
-
|
38
|
-
#
|
39
|
-
# If you use an RVM gemset file to install a list of gems (*.gems), you can have
|
40
|
-
# it be automatically loaded. Uncomment the following and adjust the filename if
|
41
|
-
# necessary.
|
42
|
-
#
|
43
|
-
# filename=".gems"
|
44
|
-
# if [[ -s "$filename" ]] ; then
|
45
|
-
# rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
|
46
|
-
# fi
|
47
|
-
|
data/Gemfile
DELETED
data/lib/rubyoverflow/sites.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
module Rubyoverflow
|
2
|
-
class Sites
|
3
|
-
@client = nil
|
4
|
-
def fetch(params = {})
|
5
|
-
@client ||= Client.stackauth_client
|
6
|
-
|
7
|
-
hash,url = @client.request 'sites', params
|
8
|
-
|
9
|
-
Hashie::Mash.new hash
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class Client
|
14
|
-
@sites = nil
|
15
|
-
|
16
|
-
def sites
|
17
|
-
@sites ||= Sites.new
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|