contributors_stats 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/.travis.yml +11 -0
- data/Gemfile +5 -0
- data/LICENSE.md +14 -0
- data/README.md +43 -0
- data/Rakefile +28 -0
- data/contributors_stats.gemspec +24 -0
- data/lib/contributors_stats.rb +28 -0
- data/lib/contributors_stats/base.rb +29 -0
- data/lib/contributors_stats/calculator.rb +50 -0
- data/lib/contributors_stats/formatter.rb +57 -0
- data/lib/contributors_stats/json_helper.rb +49 -0
- data/lib/contributors_stats/reader.rb +52 -0
- data/lib/contributors_stats/version.rb +4 -0
- data/lib/example_data.rb +58 -0
- data/lib/plugins/contributors_stats/formatter/html.rb +26 -0
- data/lib/plugins/contributors_stats/reader/gh_org.rb +21 -0
- data/lib/plugins/contributors_stats/reader/gh_repo.rb +19 -0
- data/lib/plugins/contributors_stats/updater/html.rb +36 -0
- data/lib/plugins/contributors_stats/user_data/fetch.rb +16 -0
- data/lib/plugins/contributors_stats/user_data/simple.rb +23 -0
- data/test/contributors_stats/base_test.rb +36 -0
- data/test/contributors_stats/calculator_test.rb +70 -0
- data/test/contributors_stats/formatter_test.rb +77 -0
- data/test/contributors_stats/json_helper_test.rb +76 -0
- data/test/contributors_stats/reader_test.rb +59 -0
- data/test/contributors_stats_test.rb +13 -0
- data/test/fixtures-gh/orgs/railsinstaller/repos.json +269 -0
- data/test/fixtures-gh/repos/mpapis/rubygems-bundler/contributors.json +173 -0
- data/test/fixtures-gh/repos/railsinstaller/railsinstaller-nix/contributors.json +40 -0
- data/test/fixtures-gh/repos/railsinstaller/railsinstaller-windows/contributors.json +116 -0
- data/test/fixtures-gh/repos/railsinstaller/website/contributors.json +192 -0
- data/test/fixtures-gh/repos/rvm/pluginator/contributors.json +40 -0
- data/test/fixtures-gh/users/acco.json +31 -0
- data/test/fixtures-gh/users/alexch.json +31 -0
- data/test/fixtures-gh/users/biow0lf.json +31 -0
- data/test/fixtures-gh/users/drnic.json +31 -0
- data/test/fixtures-gh/users/ebertech.json +31 -0
- data/test/fixtures-gh/users/edwardchiu38.json +31 -0
- data/test/fixtures-gh/users/emachnic.json +31 -0
- data/test/fixtures-gh/users/envygeeks.json +31 -0
- data/test/fixtures-gh/users/gpxl.json +31 -0
- data/test/fixtures-gh/users/jc00ke.json +31 -0
- data/test/fixtures-gh/users/joshbuddy.json +31 -0
- data/test/fixtures-gh/users/luigidr.json +31 -0
- data/test/fixtures-gh/users/luislavena.json +31 -0
- data/test/fixtures-gh/users/metaskills.json +31 -0
- data/test/fixtures-gh/users/mpapis.json +31 -0
- data/test/fixtures-gh/users/parndt.json +31 -0
- data/test/fixtures-gh/users/pw.json +31 -0
- data/test/fixtures-gh/users/tjouan.json +31 -0
- data/test/fixtures-gh/users/veganstraightedge.json +31 -0
- data/test/fixtures-gh/users/wayneeseguin.json +31 -0
- data/test/fixtures-gh/users/whitequark.json +31 -0
- data/test/plugins/formatter/html_test.rb +28 -0
- data/test/plugins/reader/gh_org_test.rb +32 -0
- data/test/plugins/reader/gh_repo_test.rb +31 -0
- data/test/plugins/updater/html_test.rb +55 -0
- data/test/plugins/user_data/fetch_test.rb +16 -0
- data/test/plugins/user_data/simple_test.rb +18 -0
- data/test/test_helper.rb +27 -0
- metadata +229 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"login": "pw",
|
3
|
+
"id": 89371,
|
4
|
+
"avatar_url": "https://secure.gravatar.com/avatar/362640695ed8e256d4b45d2a40519326?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
|
5
|
+
"gravatar_id": "362640695ed8e256d4b45d2a40519326",
|
6
|
+
"url": "users/pw.json",
|
7
|
+
"html_url": "https://github.com/pw",
|
8
|
+
"followers_url": "users/pw/followers.json",
|
9
|
+
"following_url": "users/pw/following{/other_user}.json",
|
10
|
+
"gists_url": "users/pw/gists{/gist_id}.json",
|
11
|
+
"starred_url": "users/pw/starred{/owner}{/repo}.json",
|
12
|
+
"subscriptions_url": "users/pw/subscriptions.json",
|
13
|
+
"organizations_url": "users/pw/orgs.json",
|
14
|
+
"repos_url": "users/pw/repos.json",
|
15
|
+
"events_url": "users/pw/events{/privacy}.json",
|
16
|
+
"received_events_url": "users/pw/received_events.json",
|
17
|
+
"type": "User",
|
18
|
+
"name": "Patrick White",
|
19
|
+
"company": null,
|
20
|
+
"blog": "http://pwhite.org",
|
21
|
+
"location": "Sheridan, WY/Pocatello, ID",
|
22
|
+
"email": "p@pwhite.org",
|
23
|
+
"hireable": false,
|
24
|
+
"bio": null,
|
25
|
+
"public_repos": 8,
|
26
|
+
"followers": 3,
|
27
|
+
"following": 14,
|
28
|
+
"created_at": "2009-05-28T00:05:00Z",
|
29
|
+
"updated_at": "2013-05-15T21:25:43Z",
|
30
|
+
"public_gists": 0
|
31
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"login": "tjouan",
|
3
|
+
"id": 61271,
|
4
|
+
"avatar_url": "https://secure.gravatar.com/avatar/a0b419452eceda9515088289b3a66e14?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
|
5
|
+
"gravatar_id": "a0b419452eceda9515088289b3a66e14",
|
6
|
+
"url": "users/tjouan.json",
|
7
|
+
"html_url": "https://github.com/tjouan",
|
8
|
+
"followers_url": "users/tjouan/followers.json",
|
9
|
+
"following_url": "users/tjouan/following{/other_user}.json",
|
10
|
+
"gists_url": "users/tjouan/gists{/gist_id}.json",
|
11
|
+
"starred_url": "users/tjouan/starred{/owner}{/repo}.json",
|
12
|
+
"subscriptions_url": "users/tjouan/subscriptions.json",
|
13
|
+
"organizations_url": "users/tjouan/orgs.json",
|
14
|
+
"repos_url": "users/tjouan/repos.json",
|
15
|
+
"events_url": "users/tjouan/events{/privacy}.json",
|
16
|
+
"received_events_url": "users/tjouan/received_events.json",
|
17
|
+
"type": "User",
|
18
|
+
"name": "Thibault Jouan",
|
19
|
+
"company": null,
|
20
|
+
"blog": "http://a13.fr/",
|
21
|
+
"location": "Caen, France",
|
22
|
+
"email": null,
|
23
|
+
"hireable": false,
|
24
|
+
"bio": null,
|
25
|
+
"public_repos": 12,
|
26
|
+
"followers": 0,
|
27
|
+
"following": 0,
|
28
|
+
"created_at": "2009-03-08T13:33:05Z",
|
29
|
+
"updated_at": "2013-05-05T16:32:16Z",
|
30
|
+
"public_gists": 0
|
31
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"login": "veganstraightedge",
|
3
|
+
"id": 4361,
|
4
|
+
"avatar_url": "https://secure.gravatar.com/avatar/317259b800623d76bba3e7a4fbbbf70a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
|
5
|
+
"gravatar_id": "317259b800623d76bba3e7a4fbbbf70a",
|
6
|
+
"url": "users/veganstraightedge.json",
|
7
|
+
"html_url": "https://github.com/veganstraightedge",
|
8
|
+
"followers_url": "users/veganstraightedge/followers.json",
|
9
|
+
"following_url": "users/veganstraightedge/following{/other_user}.json",
|
10
|
+
"gists_url": "users/veganstraightedge/gists{/gist_id}.json",
|
11
|
+
"starred_url": "users/veganstraightedge/starred{/owner}{/repo}.json",
|
12
|
+
"subscriptions_url": "users/veganstraightedge/subscriptions.json",
|
13
|
+
"organizations_url": "users/veganstraightedge/orgs.json",
|
14
|
+
"repos_url": "users/veganstraightedge/repos.json",
|
15
|
+
"events_url": "users/veganstraightedge/events{/privacy}.json",
|
16
|
+
"received_events_url": "users/veganstraightedge/received_events.json",
|
17
|
+
"type": "User",
|
18
|
+
"name": "Shane Becker",
|
19
|
+
"company": "Less Than Three",
|
20
|
+
"blog": "http://iamshane.com",
|
21
|
+
"location": "Los Angeles, CA",
|
22
|
+
"email": "veganstraightedge@gmail.com",
|
23
|
+
"hireable": false,
|
24
|
+
"bio": null,
|
25
|
+
"public_repos": 27,
|
26
|
+
"followers": 56,
|
27
|
+
"following": 0,
|
28
|
+
"created_at": "2008-04-02T21:39:03Z",
|
29
|
+
"updated_at": "2013-05-15T17:51:06Z",
|
30
|
+
"public_gists": 44
|
31
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"login": "wayneeseguin",
|
3
|
+
"id": 18,
|
4
|
+
"avatar_url": "https://secure.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
|
5
|
+
"gravatar_id": "b9b5ff40232c1dfd61238c2a90467f84",
|
6
|
+
"url": "users/wayneeseguin.json",
|
7
|
+
"html_url": "https://github.com/wayneeseguin",
|
8
|
+
"followers_url": "users/wayneeseguin/followers.json",
|
9
|
+
"following_url": "users/wayneeseguin/following{/other_user}.json",
|
10
|
+
"gists_url": "users/wayneeseguin/gists{/gist_id}.json",
|
11
|
+
"starred_url": "users/wayneeseguin/starred{/owner}{/repo}.json",
|
12
|
+
"subscriptions_url": "users/wayneeseguin/subscriptions.json",
|
13
|
+
"organizations_url": "users/wayneeseguin/orgs.json",
|
14
|
+
"repos_url": "users/wayneeseguin/repos.json",
|
15
|
+
"events_url": "users/wayneeseguin/events{/privacy}.json",
|
16
|
+
"received_events_url": "users/wayneeseguin/received_events.json",
|
17
|
+
"type": "User",
|
18
|
+
"name": "Wayne E. Seguin",
|
19
|
+
"company": "http://engineyard.com/",
|
20
|
+
"blog": "http://beginrescueend.com/",
|
21
|
+
"location": "Buffalo, NY",
|
22
|
+
"email": "wayneeseguin@gmail.com",
|
23
|
+
"hireable": false,
|
24
|
+
"bio": "Wayne E. Seguin has been [Working With Ruby and Rails](http://workingwithrails.com/person/7192-wayne-e-seguin) for over six years now and [comes well recommended](http://workingwithrails.com/recommendation/for/person/7192-wayne-e-seguin) . Wayne has a Masters degree in Mathematics and a Bachelors degree in Computer Science. Wayne's hobbies include spending time with his children, hacking, Magic the Gathering and Disc Golf. Wayne loves to contribute to Open Source projects and also has several of his own which can be found on github. Wayne is also a co-founder of the [Western New York Ruby Users Group (WNYRUG)](http://www.meetup.com/Western-New-York-Ruby/). \r\n\r\nWayne is an active member of the Ruby community with such projects as [Ruby enVironment Manager](http://rvm.beginrescueend.com/), [RailsInstaller](http://railsinstaller.org/) and [BDSM](http://bdsm.beginrescuend.com/).\r\n",
|
25
|
+
"public_repos": 67,
|
26
|
+
"followers": 445,
|
27
|
+
"following": 15,
|
28
|
+
"created_at": "2008-01-13T06:02:21Z",
|
29
|
+
"updated_at": "2013-05-15T21:09:18Z",
|
30
|
+
"public_gists": 90
|
31
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"login": "whitequark",
|
3
|
+
"id": 54771,
|
4
|
+
"avatar_url": "https://secure.gravatar.com/avatar/89d887b50262bbe10225d36d974fdb0c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
|
5
|
+
"gravatar_id": "89d887b50262bbe10225d36d974fdb0c",
|
6
|
+
"url": "users/whitequark.json",
|
7
|
+
"html_url": "https://github.com/whitequark",
|
8
|
+
"followers_url": "users/whitequark/followers.json",
|
9
|
+
"following_url": "users/whitequark/following{/other_user}.json",
|
10
|
+
"gists_url": "users/whitequark/gists{/gist_id}.json",
|
11
|
+
"starred_url": "users/whitequark/starred{/owner}{/repo}.json",
|
12
|
+
"subscriptions_url": "users/whitequark/subscriptions.json",
|
13
|
+
"organizations_url": "users/whitequark/orgs.json",
|
14
|
+
"repos_url": "users/whitequark/repos.json",
|
15
|
+
"events_url": "users/whitequark/events{/privacy}.json",
|
16
|
+
"received_events_url": "users/whitequark/received_events.json",
|
17
|
+
"type": "User",
|
18
|
+
"name": "Peter Zotov",
|
19
|
+
"company": "Evil Martians",
|
20
|
+
"blog": "http://whitequark.org",
|
21
|
+
"location": "Moscow, Russia",
|
22
|
+
"email": "whitequark@whitequark.org",
|
23
|
+
"hireable": false,
|
24
|
+
"bio": "",
|
25
|
+
"public_repos": 46,
|
26
|
+
"followers": 83,
|
27
|
+
"following": 0,
|
28
|
+
"created_at": "2009-02-15T18:56:56Z",
|
29
|
+
"updated_at": "2013-05-15T22:03:00Z",
|
30
|
+
"public_gists": 28
|
31
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'plugins/contributors_stats/formatter/html'
|
3
|
+
|
4
|
+
describe ContributorsStats::Formatter::Html do
|
5
|
+
before do
|
6
|
+
@user1_data = {
|
7
|
+
'avatar_url' => 'avatar_url1',
|
8
|
+
'name' => 'name1',
|
9
|
+
'url' => 'url1',
|
10
|
+
'html_url' => 'html_url1',
|
11
|
+
'contributions' => 'contributions1',
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
it "formats output - default template" do
|
16
|
+
expected = %Q{<a href="html_url1" title="user1 - contributions1"><img src="avatar_url1" alt="user1 - contributions1"/></a>}
|
17
|
+
html = ContributorsStats::Formatter::Html.new
|
18
|
+
html.format("user1", @user1_data).must_equal(expected)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "formats output - custom template" do
|
22
|
+
login = "user1"
|
23
|
+
template = %q{%Q{<span>login: #{login}, avatar_url: #{data['avatar_url']}, name: #{data['name']}, url: #{data['url']}, html_url: #{data['html_url']}, contributors: #{data['contributors']}</spam>}}
|
24
|
+
expected = %Q{<span>login: #{login}, avatar_url: #{@user1_data['avatar_url']}, name: #{@user1_data['name']}, url: #{@user1_data['url']}, html_url: #{@user1_data['html_url']}, contributors: #{@user1_data['contributors']}</spam>}
|
25
|
+
html = ContributorsStats::Formatter::Html.new(template: template)
|
26
|
+
html.format(login, @user1_data).must_equal(expected)
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'plugins/contributors_stats/reader/gh_org'
|
3
|
+
|
4
|
+
describe ContributorsStats::Reader::GhOrg do
|
5
|
+
before do
|
6
|
+
@tester = ContributorsStats::Reader::GhOrg
|
7
|
+
@tester.send(:configure_path, File.expand_path("../../../fixtures-gh", __FILE__), ".json")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "loads organisation" do
|
11
|
+
railsinstaller_user_names = %w{
|
12
|
+
acco alexch drnic edwardchiu38 emachnic gpxl jc00ke luigidr
|
13
|
+
luislavena metaskills mpapis veganstraightedge wayneeseguin
|
14
|
+
}
|
15
|
+
result = @tester.load("railsinstaller")
|
16
|
+
result.size.must_equal(18)
|
17
|
+
result.map(&:class).uniq.must_equal([Hash])
|
18
|
+
result.map{|user| user["login"]}.uniq.sort.must_equal(railsinstaller_user_names)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "loads organisation with block" do
|
22
|
+
railsinstaller_repo_names = %w{
|
23
|
+
railsinstaller/railsinstaller-nix railsinstaller/railsinstaller-windows railsinstaller/website
|
24
|
+
}
|
25
|
+
counter = []
|
26
|
+
@tester.load("railsinstaller") do |data, name|
|
27
|
+
counter << name
|
28
|
+
end
|
29
|
+
counter.sort.must_equal(railsinstaller_repo_names)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'plugins/contributors_stats/reader/gh_repo'
|
3
|
+
|
4
|
+
describe ContributorsStats::Reader::GhRepo do
|
5
|
+
before do
|
6
|
+
@tester = ContributorsStats::Reader::GhRepo
|
7
|
+
@tester.send(:configure_path, File.expand_path("../../../fixtures-gh", __FILE__), ".json")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "loads repository" do
|
11
|
+
railsinstaller_user_names = %w{
|
12
|
+
acco alexch drnic edwardchiu38 emachnic gpxl jc00ke mpapis veganstraightedge wayneeseguin
|
13
|
+
}
|
14
|
+
result = @tester.load("railsinstaller/website")
|
15
|
+
result.size.must_equal(10)
|
16
|
+
result.map(&:class).uniq.must_equal([Hash])
|
17
|
+
result.map{|user| user["login"]}.uniq.sort.must_equal(railsinstaller_user_names)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "loads repository with block" do
|
21
|
+
railsinstaller_repo_names = %w{
|
22
|
+
railsinstaller/website
|
23
|
+
}
|
24
|
+
counter = []
|
25
|
+
@tester.load("railsinstaller/website") do |data, name|
|
26
|
+
counter << name
|
27
|
+
end
|
28
|
+
counter.sort.must_equal(railsinstaller_repo_names)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'plugins/contributors_stats/updater/html'
|
3
|
+
|
4
|
+
def response(text)
|
5
|
+
%Q{<body><span class="contributors">
|
6
|
+
#{text}
|
7
|
+
</span></body>}
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ContributorsStats::Updater::Html do
|
11
|
+
before do
|
12
|
+
@tester = ContributorsStats::Updater::Html
|
13
|
+
@simple_content = %q{<body><span class="contributors"></span></body>}
|
14
|
+
end
|
15
|
+
|
16
|
+
it "responds to html files" do
|
17
|
+
@tester.handles?("/path/to/a/file.html").must_equal(true)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "responds to html.erb files" do
|
21
|
+
@tester.handles?("/path/to/a/file.html.erb").must_equal(true)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "does not respond to java files" do
|
25
|
+
@tester.handles?("/path/to/a/file.java").must_equal(false)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "uses default options" do
|
29
|
+
tester = @tester.new("", [])
|
30
|
+
tester.search.must_equal(@tester::DEFAULT_SEARCH)
|
31
|
+
tester.replace.must_equal(@tester::DEFAULT_REPLACE)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "uses given search option" do
|
35
|
+
tester = @tester.new("", [], search: "search_me1")
|
36
|
+
tester.search.must_equal("search_me1")
|
37
|
+
end
|
38
|
+
|
39
|
+
it "uses given replace option" do
|
40
|
+
tester = @tester.new("", [], replace: "replace_me1")
|
41
|
+
tester.replace.must_equal("replace_me1")
|
42
|
+
end
|
43
|
+
|
44
|
+
it "returns empty template for empty data" do
|
45
|
+
result = @tester.update(@simple_content, [])
|
46
|
+
result.must_equal(response(""))
|
47
|
+
end
|
48
|
+
|
49
|
+
it "returns new content for some data" do
|
50
|
+
example_data = %q{<img url="far far away"/>}
|
51
|
+
result = @tester.update(@simple_content, [example_data])
|
52
|
+
result.must_equal(response(example_data))
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'plugins/contributors_stats/user_data/fetch'
|
3
|
+
|
4
|
+
describe ContributorsStats::UserData::Fetch do
|
5
|
+
before do
|
6
|
+
@tester = ContributorsStats::UserData::Fetch
|
7
|
+
@tester.send(:configure_path, File.expand_path("../../../fixtures-gh", __FILE__), ".json")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "loads user data" do
|
11
|
+
result = @tester.load("mpapis", {"url" => "users/mpapis.json"}, 20)
|
12
|
+
result.keys.size.must_equal(30)
|
13
|
+
result["name"].must_equal("Michal Papis")
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'plugins/contributors_stats/user_data/simple'
|
3
|
+
|
4
|
+
describe ContributorsStats::UserData::Simple do
|
5
|
+
before do
|
6
|
+
@tester = ContributorsStats::UserData::Simple
|
7
|
+
end
|
8
|
+
|
9
|
+
it "loads user data" do
|
10
|
+
result = @tester.load("mpapis", {
|
11
|
+
"url" => "users/mpapis.json",
|
12
|
+
"avatar_url" => "https://secure.gravatar.com/avatar/3ec52ed58eb92026d86e62c39bdb7589?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"
|
13
|
+
}, 20)
|
14
|
+
result.keys.size.must_equal(5)
|
15
|
+
result["name"].must_equal("mpapis")
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require "coveralls"
|
2
|
+
require "simplecov"
|
3
|
+
|
4
|
+
SimpleCov.start do
|
5
|
+
formatter SimpleCov::Formatter::MultiFormatter[
|
6
|
+
SimpleCov::Formatter::HTMLFormatter,
|
7
|
+
Coveralls::SimpleCov::Formatter,
|
8
|
+
]
|
9
|
+
command_name "Unit Tests"
|
10
|
+
add_filter "/test/"
|
11
|
+
add_filter "/lib/example_data.rb"
|
12
|
+
end
|
13
|
+
|
14
|
+
Coveralls.noisy = true
|
15
|
+
|
16
|
+
require 'minitest/autorun'
|
17
|
+
|
18
|
+
# Autoload all lib/**/*.rb files so simplecov does not misses anything
|
19
|
+
Dir[File.expand_path("../../lib/**/*.rb", __FILE__)].each{|f| require f }
|
20
|
+
|
21
|
+
class ContributorsStats::ArrayLoggerExample
|
22
|
+
attr_reader :data
|
23
|
+
def info(msg)
|
24
|
+
@data ||= []
|
25
|
+
@data << msg
|
26
|
+
end
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: contributors_stats
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michal Papis
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-05-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: pluginator
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: simplecov
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: coveralls
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: yard
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: redcarpet
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description:
|
98
|
+
email: mpapis@gmail.com
|
99
|
+
executables: []
|
100
|
+
extensions: []
|
101
|
+
extra_rdoc_files: []
|
102
|
+
files:
|
103
|
+
- .gitignore
|
104
|
+
- .travis.yml
|
105
|
+
- Gemfile
|
106
|
+
- LICENSE.md
|
107
|
+
- README.md
|
108
|
+
- Rakefile
|
109
|
+
- contributors_stats.gemspec
|
110
|
+
- lib/contributors_stats.rb
|
111
|
+
- lib/contributors_stats/base.rb
|
112
|
+
- lib/contributors_stats/calculator.rb
|
113
|
+
- lib/contributors_stats/formatter.rb
|
114
|
+
- lib/contributors_stats/json_helper.rb
|
115
|
+
- lib/contributors_stats/reader.rb
|
116
|
+
- lib/contributors_stats/version.rb
|
117
|
+
- lib/example_data.rb
|
118
|
+
- lib/plugins/contributors_stats/formatter/html.rb
|
119
|
+
- lib/plugins/contributors_stats/reader/gh_org.rb
|
120
|
+
- lib/plugins/contributors_stats/reader/gh_repo.rb
|
121
|
+
- lib/plugins/contributors_stats/updater/html.rb
|
122
|
+
- lib/plugins/contributors_stats/user_data/fetch.rb
|
123
|
+
- lib/plugins/contributors_stats/user_data/simple.rb
|
124
|
+
- test/contributors_stats/base_test.rb
|
125
|
+
- test/contributors_stats/calculator_test.rb
|
126
|
+
- test/contributors_stats/formatter_test.rb
|
127
|
+
- test/contributors_stats/json_helper_test.rb
|
128
|
+
- test/contributors_stats/reader_test.rb
|
129
|
+
- test/contributors_stats_test.rb
|
130
|
+
- test/fixtures-gh/orgs/railsinstaller/repos.json
|
131
|
+
- test/fixtures-gh/repos/mpapis/rubygems-bundler/contributors.json
|
132
|
+
- test/fixtures-gh/repos/railsinstaller/railsinstaller-nix/contributors.json
|
133
|
+
- test/fixtures-gh/repos/railsinstaller/railsinstaller-windows/contributors.json
|
134
|
+
- test/fixtures-gh/repos/railsinstaller/website/contributors.json
|
135
|
+
- test/fixtures-gh/repos/rvm/pluginator/contributors.json
|
136
|
+
- test/fixtures-gh/users/acco.json
|
137
|
+
- test/fixtures-gh/users/alexch.json
|
138
|
+
- test/fixtures-gh/users/biow0lf.json
|
139
|
+
- test/fixtures-gh/users/drnic.json
|
140
|
+
- test/fixtures-gh/users/ebertech.json
|
141
|
+
- test/fixtures-gh/users/edwardchiu38.json
|
142
|
+
- test/fixtures-gh/users/emachnic.json
|
143
|
+
- test/fixtures-gh/users/envygeeks.json
|
144
|
+
- test/fixtures-gh/users/gpxl.json
|
145
|
+
- test/fixtures-gh/users/jc00ke.json
|
146
|
+
- test/fixtures-gh/users/joshbuddy.json
|
147
|
+
- test/fixtures-gh/users/luigidr.json
|
148
|
+
- test/fixtures-gh/users/luislavena.json
|
149
|
+
- test/fixtures-gh/users/metaskills.json
|
150
|
+
- test/fixtures-gh/users/mpapis.json
|
151
|
+
- test/fixtures-gh/users/parndt.json
|
152
|
+
- test/fixtures-gh/users/pw.json
|
153
|
+
- test/fixtures-gh/users/tjouan.json
|
154
|
+
- test/fixtures-gh/users/veganstraightedge.json
|
155
|
+
- test/fixtures-gh/users/wayneeseguin.json
|
156
|
+
- test/fixtures-gh/users/whitequark.json
|
157
|
+
- test/plugins/formatter/html_test.rb
|
158
|
+
- test/plugins/reader/gh_org_test.rb
|
159
|
+
- test/plugins/reader/gh_repo_test.rb
|
160
|
+
- test/plugins/updater/html_test.rb
|
161
|
+
- test/plugins/user_data/fetch_test.rb
|
162
|
+
- test/plugins/user_data/simple_test.rb
|
163
|
+
- test/test_helper.rb
|
164
|
+
homepage: https://github.com/mpapis/contributors_stats
|
165
|
+
licenses:
|
166
|
+
- Apache
|
167
|
+
metadata: {}
|
168
|
+
post_install_message:
|
169
|
+
rdoc_options: []
|
170
|
+
require_paths:
|
171
|
+
- lib
|
172
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - '>='
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 2.0.0
|
177
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
requirements: []
|
183
|
+
rubyforge_project:
|
184
|
+
rubygems_version: 2.0.3
|
185
|
+
signing_key:
|
186
|
+
specification_version: 4
|
187
|
+
summary: Calculate statics for multiple project contributoions.
|
188
|
+
test_files:
|
189
|
+
- test/contributors_stats/base_test.rb
|
190
|
+
- test/contributors_stats/calculator_test.rb
|
191
|
+
- test/contributors_stats/formatter_test.rb
|
192
|
+
- test/contributors_stats/json_helper_test.rb
|
193
|
+
- test/contributors_stats/reader_test.rb
|
194
|
+
- test/contributors_stats_test.rb
|
195
|
+
- test/fixtures-gh/orgs/railsinstaller/repos.json
|
196
|
+
- test/fixtures-gh/repos/mpapis/rubygems-bundler/contributors.json
|
197
|
+
- test/fixtures-gh/repos/railsinstaller/railsinstaller-nix/contributors.json
|
198
|
+
- test/fixtures-gh/repos/railsinstaller/railsinstaller-windows/contributors.json
|
199
|
+
- test/fixtures-gh/repos/railsinstaller/website/contributors.json
|
200
|
+
- test/fixtures-gh/repos/rvm/pluginator/contributors.json
|
201
|
+
- test/fixtures-gh/users/acco.json
|
202
|
+
- test/fixtures-gh/users/alexch.json
|
203
|
+
- test/fixtures-gh/users/biow0lf.json
|
204
|
+
- test/fixtures-gh/users/drnic.json
|
205
|
+
- test/fixtures-gh/users/ebertech.json
|
206
|
+
- test/fixtures-gh/users/edwardchiu38.json
|
207
|
+
- test/fixtures-gh/users/emachnic.json
|
208
|
+
- test/fixtures-gh/users/envygeeks.json
|
209
|
+
- test/fixtures-gh/users/gpxl.json
|
210
|
+
- test/fixtures-gh/users/jc00ke.json
|
211
|
+
- test/fixtures-gh/users/joshbuddy.json
|
212
|
+
- test/fixtures-gh/users/luigidr.json
|
213
|
+
- test/fixtures-gh/users/luislavena.json
|
214
|
+
- test/fixtures-gh/users/metaskills.json
|
215
|
+
- test/fixtures-gh/users/mpapis.json
|
216
|
+
- test/fixtures-gh/users/parndt.json
|
217
|
+
- test/fixtures-gh/users/pw.json
|
218
|
+
- test/fixtures-gh/users/tjouan.json
|
219
|
+
- test/fixtures-gh/users/veganstraightedge.json
|
220
|
+
- test/fixtures-gh/users/wayneeseguin.json
|
221
|
+
- test/fixtures-gh/users/whitequark.json
|
222
|
+
- test/plugins/formatter/html_test.rb
|
223
|
+
- test/plugins/reader/gh_org_test.rb
|
224
|
+
- test/plugins/reader/gh_repo_test.rb
|
225
|
+
- test/plugins/updater/html_test.rb
|
226
|
+
- test/plugins/user_data/fetch_test.rb
|
227
|
+
- test/plugins/user_data/simple_test.rb
|
228
|
+
- test/test_helper.rb
|
229
|
+
has_rdoc:
|