gitrob 0.0.4 → 0.0.5

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: 81f068944463add65ad8508310610cba768c41bd
4
- data.tar.gz: c5f00cff14c11e36f8a2335e471b897a8317a08e
3
+ metadata.gz: 90f04895ed250caafe2dd882ad64aa517647d92b
4
+ data.tar.gz: d47a5bf63fde5b24bb0735f6ba4b3d473bd3604c
5
5
  SHA512:
6
- metadata.gz: 7e2397c9c5d6a4ae6aa1f5f87ebb145202eb8549f3182baa8f3b3b1a4bc81d587d2d590b2b2d990cfd63d20dbee0d0291d979c52f06e0dbbade31b88696ff14d
7
- data.tar.gz: c171532f79547e5a9822123f96973a21b35c4e332ccbfcdbbe7041778853cbfbbe8540954f0048b1937dfb1a123f78362af4ba603f90fa2349f72f4db64cdae1
6
+ metadata.gz: c6d01493289fedd10935a1d1fc86b4ff34e4d8277049738a3f3a722a91946de3a6c5ab67d60039b04967a8eb38fe273490a6b35c47ce4907489c7e068f8bed5c
7
+ data.tar.gz: b411388a1d96baad65f1531c09bf2736946745e4cbffadac2c3b510b4f8d0a291cf6cfc49558f8f6a81db0691f19b7a30d06419d70e66a3486ee5d6353d8c341
@@ -36,18 +36,10 @@ module Gitrob
36
36
  end
37
37
 
38
38
  def repositories
39
- if !@repositories
40
- @repositories = []
41
- response = JSON.parse(http_client.do_get("/orgs/#{name}/repos").body)
42
- response.each do |repo|
43
- next if repo['fork']
44
- @repositories << Repository.new(name, repo['name'], http_client)
45
- end
46
- end
47
- @repositories
39
+ @repositories ||= recursive_repositories
48
40
  end
49
41
 
50
- def members()
42
+ def members
51
43
  @members ||= recursive_members
52
44
  end
53
45
 
@@ -82,6 +74,20 @@ module Gitrob
82
74
  members
83
75
  end
84
76
 
77
+ def recursive_repositories(page = 1)
78
+ repositories = Array.new
79
+ response = http_client.do_get("/orgs/#{name}/repos?page=#{page.to_i}")
80
+ JSON.parse(response.body).each do |repo|
81
+ next if repo['fork']
82
+ repositories << Repository.new(name, repo['name'], http_client)
83
+ end
84
+
85
+ if response.headers.include?('link') && response.headers['link'].include?('rel="next"')
86
+ repositories += recursive_repositories(page + 1)
87
+ end
88
+ repositories
89
+ end
90
+
85
91
  def info
86
92
  if !@info
87
93
  @info = JSON.parse(http_client.do_get("/orgs/#{name}").body)
@@ -37,15 +37,7 @@ module Gitrob
37
37
  end
38
38
 
39
39
  def repositories
40
- if !@repositories
41
- @repositories = []
42
- response = JSON.parse(http_client.do_get("/users/#{username}/repos").body)
43
- response.each do |repo|
44
- next if repo['fork']
45
- @repositories << Repository.new(username, repo['name'], http_client)
46
- end
47
- end
48
- @repositories
40
+ @repositories ||= recursive_repositories
49
41
  end
50
42
 
51
43
  def to_model(organization)
@@ -67,6 +59,20 @@ module Gitrob
67
59
 
68
60
  private
69
61
 
62
+ def recursive_repositories(page = 1)
63
+ repositories = Array.new
64
+ response = http_client.do_get("/users/#{username}/repos?page=#{page.to_i}")
65
+ JSON.parse(response.body).each do |repo|
66
+ next if repo['fork']
67
+ repositories << Repository.new(username, repo['name'], http_client)
68
+ end
69
+
70
+ if response.headers.include?('link') && response.headers['link'].include?('rel="next"')
71
+ repositories += recursive_repositories(page + 1)
72
+ end
73
+ repositories
74
+ end
75
+
70
76
  def info
71
77
  if !@info
72
78
  @info = JSON.parse(http_client.do_get("/users/#{username}").body)
@@ -1,3 +1,3 @@
1
1
  module Gitrob
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitrob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Henriksen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-17 00:00:00.000000000 Z
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty