rubygems-code_finder 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +3 -7
- data/lib/rubygems/code_finder/version.rb +1 -1
- data/lib/rubygems-code_finder.rb +4 -0
- data/rubygems-code_finder.gemspec +1 -0
- data/spec/fixtures/repositories?q=fluentd +2645 -0
- data/spec/fixtures/repositories?q=reposnotfound +6 -0
- data/spec/rubygems/code_finder/url_spec.rb +11 -0
- metadata +19 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c80b17529159ac4b3866452626e67c50999a0cab
|
4
|
+
data.tar.gz: e377fb2b2c500b9677d183afd79af4413694321d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 565b98f0d4af096091da776348bdab88049df184c94d2ebc2c0772c8961af9ccd4cbc7002a1073d5f908e5ce981c37f62e466431e7a098fa4a9db6d2be71af05
|
7
|
+
data.tar.gz: 5ee6b72f9492a8762c5d68bfba7b11bd4d87e48c502484ca56c4274b844569ffde6afbd9808c08d73d47b76451a720948fc0b5fb14736ffb49f81f22a0332320
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -25,20 +25,16 @@ Or install it yourself as:
|
|
25
25
|
irb(main):001:0> require 'rubygems-code_finder'
|
26
26
|
=> true
|
27
27
|
irb(main):002:0> Rubygems::CodeFinder.url 'tachikoma'
|
28
|
-
=> "https://github.com/sanemat/tachikoma"
|
28
|
+
=> "https://github.com/sanemat/tachikoma" # Fetch from api.rubygems.org response source_code_uri
|
29
29
|
irb(main):003:0> Rubygems::CodeFinder.url 'invalid'
|
30
30
|
Rubygems::CodeFinder::RubygemsNotFound: Rubygems::CodeFinder::RubygemsNotFound
|
31
31
|
from /Users/sane/.anyenv/envs/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/bundler/gems/rubygems-code_finder-9fdb9327350d/lib/rubygems-code_finder.rb:15:in `url'
|
32
32
|
from (irb):3
|
33
33
|
from /Users/sane/.anyenv/envs/rbenv/versions/2.1.0/bin/irb:11:in `<main>'
|
34
34
|
irb(main):004:0> Rubygems::CodeFinder.url 'mm-devise'
|
35
|
-
=> "http://github.com/kristianmandrup/mm-devise"
|
35
|
+
=> "http://github.com/kristianmandrup/mm-devise" # Fetch from api.rubygems.org response homepage_url
|
36
36
|
irb(main):005:0> Rubygems::CodeFinder.url 'fluentd'
|
37
|
-
|
38
|
-
from /Users/sane/.anyenv/envs/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/bundler/gems/rubygems-code_finder-9fdb9327350d/lib/rubygems-code_finder.rb:23:in `parse_response_body'
|
39
|
-
from /Users/sane/.anyenv/envs/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/bundler/gems/rubygems-code_finder-9fdb9327350d/lib/rubygems-code_finder.rb:16:in `url'
|
40
|
-
from (irb):5
|
41
|
-
from /Users/sane/.anyenv/envs/rbenv/versions/2.1.0/bin/irb:11:in `<main>'
|
37
|
+
=> "https://github.com/fluent/fluentd" # Search github
|
42
38
|
```
|
43
39
|
|
44
40
|
## Contributing
|
data/lib/rubygems-code_finder.rb
CHANGED
@@ -2,6 +2,7 @@ require 'rubygems/code_finder/version'
|
|
2
2
|
require 'faraday'
|
3
3
|
require 'multi_json'
|
4
4
|
require 'uri'
|
5
|
+
require 'octokit'
|
5
6
|
|
6
7
|
module Rubygems
|
7
8
|
module CodeFinder
|
@@ -20,6 +21,9 @@ module Rubygems
|
|
20
21
|
data = MultiJson.load(body)
|
21
22
|
return data['source_code_uri'] if data['source_code_uri'] && URI.parse(data['source_code_uri']).host == 'github.com'
|
22
23
|
return data['homepage_uri'] if data['homepage_uri'] && URI.parse(data['homepage_uri']).host == 'github.com'
|
24
|
+
|
25
|
+
res = Octokit.search_repositories data['name']
|
26
|
+
return 'https://github.com/' + res.items.first.full_name if res.items.count >= 1
|
23
27
|
fail RepositoryNotFound
|
24
28
|
end
|
25
29
|
end
|