gigest 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db8c6a8d6daff2bc8fdd35efaa81436e568bdc73
4
- data.tar.gz: bdc5b7264799f4efa8372b17a2c2ff4b19d51cfe
3
+ metadata.gz: e00cf1001d5b9af1e2fe56e39d261bcc1b7117a9
4
+ data.tar.gz: 7d67bd6e64cad21c32e6214e6353123d998d6b43
5
5
  SHA512:
6
- metadata.gz: 38a16f077161661c138a926f04a66e812cb7bd2b13ab718aaf2ed2371f01a3e73f6210d3878685f45a8ebbb5173d73be93b7c60268e0ef3259ad2423dc40097d
7
- data.tar.gz: e58121b3ea6aefe861da0d89b074c022cf59cfc74a89cea99900db364ea79106eecaa46759143ff6ddee1202dfb459aaee13b859aeb2ab2b780f79890a8c733e
6
+ metadata.gz: 64b8ef5cd243265cef0b4c00812cc3750f6e75290c52eb70f04b18e9e9e6e22f8862db396173bf4fa99c78eb8b8bdb85e5a71f47098eebf129f4e866602bf760
7
+ data.tar.gz: 690b0aa4aa6de2b6896e9615eb1f868f8d2dfa279cc33d92b316ae28051c1cd6698e3acbd7f3f9d454ec75b7b4be39f015db2482ce5697150faa4a4efee0d563
@@ -5,7 +5,15 @@ module Gigest
5
5
  end
6
6
 
7
7
  def details_for(account=nil, type=:user)
8
- @connection.send(account_method(type), account)
8
+ details = @connection.send(account_method(type), account)
9
+
10
+ {
11
+ name: details[:name],
12
+ avatar_url: details._rels[:avatar].href,
13
+ company: details[:company],
14
+ location: details[:location],
15
+ html_url: details._rels[:html].href
16
+ }
9
17
  end
10
18
 
11
19
  def repositories_for(account=nil, type=:user)
@@ -1,3 +1,3 @@
1
1
  module Gigest
2
- VERSION = "2.0.2"
2
+ VERSION = "2.1.0"
3
3
  end
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "Winston",
3
+ "avatar_url": "https://2.gravatar.com/avatar/15ad10eecd3bc28166b7e627cca2edeb?d=https%3A%2F%2Fidenticons.github.com%2Fa29d1598024f9e87beab4b98411d48ce.png",
4
+ "company": "Neo",
5
+ "location": "Singapore",
6
+ "html_url": "https://github.com/winston"
7
+ }
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"https://api.github.com/users/winston","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/vnd.github.beta+json"],"User-Agent":["Octokit Ruby Gem 2.0.0"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["GitHub.com"],"Date":["Thu, 29 Aug 2013 08:29:02 GMT"],"Content-Type":["application/json; charset=utf-8"],"Transfer-Encoding":["chunked"],"Status":["200 OK"],"X-Ratelimit-Limit":["60"],"X-Ratelimit-Remaining":["34"],"X-Ratelimit-Reset":["1377766479"],"Cache-Control":["public, max-age=60, s-maxage=60"],"Last-Modified":["Thu, 29 Aug 2013 06:54:51 GMT"],"Etag":["\"4db51d577b726b3ba981242ef001dc55\""],"Vary":["Accept","Accept-Encoding"],"X-Github-Media-Type":["github.beta; format=json"],"X-Content-Type-Options":["nosniff"],"Access-Control-Allow-Credentials":["true"],"Access-Control-Expose-Headers":["ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes"],"Access-Control-Allow-Origin":["*"],"X-Github-Request-Id":["ed681e10-d8a2-47bb-9b02-c086b7b91e0e"]},"body":{"encoding":"UTF-8","base64_string":"eyJsb2dpbiI6IndpbnN0b24iLCJpZCI6MjExMiwiYXZhdGFyX3VybCI6Imh0\ndHBzOi8vMi5ncmF2YXRhci5jb20vYXZhdGFyLzE1YWQxMGVlY2QzYmMyODE2\nNmI3ZTYyN2NjYTJlZGViP2Q9aHR0cHMlM0ElMkYlMkZpZGVudGljb25zLmdp\ndGh1Yi5jb20lMkZhMjlkMTU5ODAyNGY5ZTg3YmVhYjRiOTg0MTFkNDhjZS5w\nbmciLCJncmF2YXRhcl9pZCI6IjE1YWQxMGVlY2QzYmMyODE2NmI3ZTYyN2Nj\nYTJlZGViIiwidXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93\naW5zdG9uIiwiaHRtbF91cmwiOiJodHRwczovL2dpdGh1Yi5jb20vd2luc3Rv\nbiIsImZvbGxvd2Vyc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29tL3Vz\nZXJzL3dpbnN0b24vZm9sbG93ZXJzIiwiZm9sbG93aW5nX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2luc3Rvbi9mb2xsb3dpbmd7L290\naGVyX3VzZXJ9IiwiZ2lzdHNfdXJsIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv\nbS91c2Vycy93aW5zdG9uL2dpc3Rzey9naXN0X2lkfSIsInN0YXJyZWRfdXJs\nIjoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93aW5zdG9uL3N0YXJy\nZWR7L293bmVyfXsvcmVwb30iLCJzdWJzY3JpcHRpb25zX3VybCI6Imh0dHBz\nOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2luc3Rvbi9zdWJzY3JpcHRpb25z\nIiwib3JnYW5pemF0aW9uc191cmwiOiJodHRwczovL2FwaS5naXRodWIuY29t\nL3VzZXJzL3dpbnN0b24vb3JncyIsInJlcG9zX3VybCI6Imh0dHBzOi8vYXBp\nLmdpdGh1Yi5jb20vdXNlcnMvd2luc3Rvbi9yZXBvcyIsImV2ZW50c191cmwi\nOiJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dpbnN0b24vZXZlbnRz\ney9wcml2YWN5fSIsInJlY2VpdmVkX2V2ZW50c191cmwiOiJodHRwczovL2Fw\naS5naXRodWIuY29tL3VzZXJzL3dpbnN0b24vcmVjZWl2ZWRfZXZlbnRzIiwi\ndHlwZSI6IlVzZXIiLCJuYW1lIjoiV2luc3RvbiIsImNvbXBhbnkiOiJOZW8i\nLCJibG9nIjoiaHR0cDovL3d3dy53aW5zdG9ueXcuY29tIiwibG9jYXRpb24i\nOiJTaW5nYXBvcmUiLCJlbWFpbCI6IndpbnN0b24ueW9uZ3dlaUBnbWFpbC5j\nb20iLCJoaXJlYWJsZSI6ZmFsc2UsImJpbyI6bnVsbCwicHVibGljX3JlcG9z\nIjoyNSwiZm9sbG93ZXJzIjozMywiZm9sbG93aW5nIjoyMiwiY3JlYXRlZF9h\ndCI6IjIwMDgtMDMtMDRUMDc6MTQ6NDBaIiwidXBkYXRlZF9hdCI6IjIwMTMt\nMDgtMjlUMDY6NTQ6NTFaIiwicHVibGljX2dpc3RzIjo1MH0=\n"},"http_version":null},"recorded_at":"Thu, 29 Aug 2013 08:29:03 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -17,7 +17,6 @@ describe Gigest::Analytics do
17
17
  let(:account_details) { {name: "naruto", company: "konoha"} }
18
18
  let(:repositories) { [repo1, repo2] }
19
19
  let(:repositories_with_gemfile) { [repo1] }
20
-
21
20
  let(:repo1) { double(:repo1, has_gemfile?: true) }
22
21
  let(:repo2) { double(:repo2, has_gemfile?: false) }
23
22
 
@@ -41,7 +40,7 @@ describe Gigest::Analytics do
41
40
  end
42
41
 
43
42
  describe "#summary", :vcr do
44
- let(:expected) { JSON.parse File.read(File.join(Dir.pwd, "spec", "fixtures", "summary.json")) }
43
+ let(:expected) { JSON.parse(File.read(File.join(Dir.pwd, "spec", "fixtures", "summary.json"))) }
45
44
 
46
45
  context "when repositories exist" do
47
46
  before { analytics.process_for("winston") }
@@ -61,9 +60,8 @@ describe Gigest::Analytics do
61
60
  describe "#statistics", :vcr do
62
61
  let(:expected) do
63
62
  contents = JSON.parse(File.read(File.join(Dir.pwd, "spec", "fixtures", "statistics.json")))
64
- contents.map do |row|
65
- row.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
66
- end
63
+ # stringify keys
64
+ contents.map { |row| row.inject({}) { |memo,(k,v)| memo[k.to_sym] = v; memo } }
67
65
  end
68
66
 
69
67
  context "when repositories exist" do
@@ -34,22 +34,30 @@ describe Gigest::GithubConnection do
34
34
  end
35
35
  end
36
36
 
37
- describe "#details_for" do
38
- let(:octokit_client) { double(:octokit_client) }
37
+ describe "#details_for", :vcr do
38
+ let(:expected) do
39
+ contents = JSON.parse(File.read(File.join(Dir.pwd, "spec", "fixtures", "account.json")))
40
+ # stringify keys
41
+ contents.inject({}) { |memo,(k,v)| memo[k.to_sym] = v; memo }
42
+ end
43
+
44
+ it "returns account details" do
45
+ expect(connection.details_for("winston")).to eq(expected)
46
+ end
47
+
48
+ context "when account type is specified" do
49
+ let(:octokit_client) { double(:octokit_client) }
39
50
 
40
- before { Octokit::Client.stub(:new) { octokit_client } }
51
+ before { Octokit::Client.stub(:new) { octokit_client } }
41
52
 
42
- context "when account type is user" do
43
53
  it "retrieves user details" do
44
- octokit_client.stub(:user)
54
+ octokit_client.stub(:user) { double(:account).as_null_object }
45
55
  connection.details_for("winston", :user)
46
56
  expect(octokit_client).to have_received(:user).with("winston")
47
57
  end
48
- end
49
58
 
50
- context "when account type is org" do
51
59
  it "retrieves org details" do
52
- octokit_client.stub(:organization)
60
+ octokit_client.stub(:organization) { double(:account).as_null_object }
53
61
  connection.details_for("neo" , :org)
54
62
  expect(octokit_client).to have_received(:organization).with("neo")
55
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gigest
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Winston Teo
@@ -103,10 +103,12 @@ files:
103
103
  - lib/gigest/github/github_repo.rb
104
104
  - lib/gigest/version.rb
105
105
  - spec/fixtures/Gemfile
106
+ - spec/fixtures/account.json
106
107
  - spec/fixtures/statistics.json
107
108
  - spec/fixtures/summary.json
108
109
  - spec/fixtures/vcr_cassettes/Gigest_Analytics/_statistics/when_repositories_exist/generates_a_summary_report.json
109
110
  - spec/fixtures/vcr_cassettes/Gigest_Analytics/_summary/when_repositories_exist/generates_a_summary_report.json
111
+ - spec/fixtures/vcr_cassettes/Gigest_GithubConnection/_details_for/returns_account_details.json
110
112
  - spec/fixtures/vcr_cassettes/Gigest_GithubConnection/_gemfile_for/when_Gemfile_does_not_exist/returns_nil.json
111
113
  - spec/fixtures/vcr_cassettes/Gigest_GithubConnection/_gemfile_for/when_Gemfile_exists/returns_the_Gemfile_contents.json
112
114
  - spec/fixtures/vcr_cassettes/Gigest_GithubConnection/_repositories_for/default/returns_an_array_of_Gigest_GithubRepo.json
@@ -140,10 +142,12 @@ specification_version: 4
140
142
  summary: GIthubGEmSTats. Discover Gems usage for a GitHub user or org.
141
143
  test_files:
142
144
  - spec/fixtures/Gemfile
145
+ - spec/fixtures/account.json
143
146
  - spec/fixtures/statistics.json
144
147
  - spec/fixtures/summary.json
145
148
  - spec/fixtures/vcr_cassettes/Gigest_Analytics/_statistics/when_repositories_exist/generates_a_summary_report.json
146
149
  - spec/fixtures/vcr_cassettes/Gigest_Analytics/_summary/when_repositories_exist/generates_a_summary_report.json
150
+ - spec/fixtures/vcr_cassettes/Gigest_GithubConnection/_details_for/returns_account_details.json
147
151
  - spec/fixtures/vcr_cassettes/Gigest_GithubConnection/_gemfile_for/when_Gemfile_does_not_exist/returns_nil.json
148
152
  - spec/fixtures/vcr_cassettes/Gigest_GithubConnection/_gemfile_for/when_Gemfile_exists/returns_the_Gemfile_contents.json
149
153
  - spec/fixtures/vcr_cassettes/Gigest_GithubConnection/_repositories_for/default/returns_an_array_of_Gigest_GithubRepo.json