gitget 0.1.1 → 0.2

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: 2c987c97594d07547ce417060fe7666cf1a45905
4
- data.tar.gz: 788b7e4b8b7558c9e61749273c907170c04e4cd6
3
+ metadata.gz: 4b1d41249e213ab65365f67b9a7f6764873119e3
4
+ data.tar.gz: 67a5033f962e6e3f62f063d81356318c0165ab0c
5
5
  SHA512:
6
- metadata.gz: f8a514248f8d76f6f542a618e1f80afe2d079b6404dbc59f7761e101d5a26e2104d752d19dc9a78355d203c3459355a46d3088e42868d610a2dd7380ab69bec8
7
- data.tar.gz: 5e7b89d587ca47b4f14f7a5e4df4a4cc4c7436ca1369cef83ac94e52182207112c7cbdee3abb659d0c22d1b6a80c9504a4787d7ab2ea0dc070f1058839a78f5f
6
+ metadata.gz: f2bedfa2d9cd29a6f764aab5bb9da2d7dc98aba5a9f1ddcdae786759a9c2f2032ebae1529c6d793137d59110568ba8ec1bcc87d003accddb169547da2e7ca69f
7
+ data.tar.gz: 7f5e92affa05444f7eb55ef3c4062d22c5f1de60157d21fc4eab279c6ac8d469911b7a47fdc154a759d6d44a708f29565048703082f2fc56bb642f946dba2258
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ results.yml
5
5
  github_response.yml
6
6
  coverage/
7
7
  *.gem
8
+ Gemfile.lock
data/Rakefile CHANGED
@@ -3,6 +3,11 @@ require 'rake/testtask'
3
3
 
4
4
  task default: :spec
5
5
 
6
+ Rake::TestTask.new(:spec) do |t|
7
+ t.pattern = 'spec/*_spec.rb'
8
+ t.warning = false
9
+ end
10
+
6
11
  namespace :credentials do
7
12
  require 'yaml'
8
13
 
@@ -15,11 +20,6 @@ namespace :credentials do
15
20
  end
16
21
  end
17
22
 
18
- desc 'run tests'
19
- task :spec do
20
- sh 'ruby spec/github_spec.rb'
21
- end
22
-
23
23
  desc 'delete cassette fixtures'
24
24
  task :wipe do
25
25
  sh 'rm spec/fixtures/cassettes/*.yml' do |ok, _|
data/bin/gitget CHANGED
@@ -12,10 +12,10 @@ end
12
12
 
13
13
  developer = Github::Developer.find(username: developer_name)
14
14
 
15
- puts developer.name
15
+ puts developer.username
16
16
  developer.repos.first(3).each.with_index do |repo, index|
17
17
  print "#{index + 1}: "
18
- puts 'Repo name: ' + repo.name.to_s
18
+ puts 'Repo name: ' + repo.full.to_s
19
19
  puts 'Repo ID: ' + repo.id.to_s
20
20
  puts 'Number of watchers: ' + repo.watchers_count.to_s
21
21
  puts 'Number of Issues: ' + repo.open_issues_count.to_s
@@ -25,6 +25,11 @@ module Github
25
25
  github_api_get(route)
26
26
  end
27
27
 
28
+ def self.repo_info(owner, repo)
29
+ route = '/repos/' + owner + '/' + repo
30
+ github_api_get(route)
31
+ end
32
+
28
33
  def self.user_followers(username)
29
34
  route = '/users/' + username + '/followers'
30
35
  github_api_get(route)
@@ -3,18 +3,17 @@
3
3
  module Github
4
4
  # Main class to set up a Github User
5
5
  class Developer
6
- attr_reader :name, :id, :public_repos, :followers, :following
6
+ attr_reader :username, :id, :public_repos, :avatar_url, :name, :company,
7
+ :blog, :location, :email, :bio, :followers, :following
7
8
 
8
- def initialize(data:)
9
- @name = data['login']
10
- @id = data['id']
11
- @public_repos = data['public_repos']
9
+ def initialize(data: nil)
10
+ load_data(data)
12
11
  end
13
12
 
14
13
  def repos
15
14
  return @repos if @repos
16
15
 
17
- @repos = Github::API.user_repos(@name).map do |repo_data|
16
+ @repos = Github::API.user_repos(@username).map do |repo_data|
18
17
  Github::Repository.new(data: repo_data)
19
18
  end
20
19
  end
@@ -31,13 +30,23 @@ module Github
31
30
  @following = Github::API.user_following @name
32
31
  end
33
32
 
33
+ def load_data(repo_data)
34
+ @username = repo_data['login']
35
+ @id = repo_data['id']
36
+ @public_repos = repo_data['public_repos']
37
+ @avatar_url = repo_data['avatar_url']
38
+ @name = repo_data['name']
39
+ @company = repo_data['company']
40
+ @blog = repo_data['blog']
41
+ @location = repo_data['location']
42
+ @email = repo_data['email']
43
+ @bio = repo_data['bio']
44
+ end
45
+
34
46
  def self.find(username:)
35
47
  user_data = Github::API.user_info(username)
36
- if user_data["message"] == "Not Found"
37
- return nil
38
- else
39
- new(data: user_data)
40
- end
48
+ return nil if user_data['message'] == 'Not Found'
49
+ new(data: user_data)
41
50
  end
42
51
  end
43
52
  end
@@ -24,6 +24,7 @@ module Github
24
24
  end
25
25
 
26
26
  def load_data(repo_data)
27
+ @id = repo_data['id']
27
28
  @full_name = repo_data['full_name']
28
29
  @is_private = repo_data['is_private']
29
30
  @is_fork = repo_data['is_fork']
@@ -35,5 +36,11 @@ module Github
35
36
  @forks_count = repo_data['forks_count']
36
37
  @open_issues_count = repo_data['open_issues_count']
37
38
  end
39
+
40
+ def self.find(owner:, repo:)
41
+ repo_data = Github::API.repo_info(owner, repo)
42
+ return nil if repo_data['message'] == 'Not Found'
43
+ new(data: repo_data)\
44
+ end
38
45
  end
39
46
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Github
4
- VERSION = '0.1.1'
4
+ VERSION = '0.2'
5
5
  end
@@ -3,15 +3,9 @@
3
3
  require_relative 'spec_helper'
4
4
 
5
5
  describe 'Github specifications' do
6
- VCR.configure do |c|
7
- c.cassette_library_dir = CASSETTES_FOLDER
8
- c.hook_into :webmock
9
-
10
- c.filter_sensitive_data('<AUTH>') { ENV['GH_AUTH'] }
11
- end
12
6
 
13
7
  before do
14
- VCR.insert_cassette CASSETTE_FILE, record: :new_episodes
8
+ VCR.insert_cassette DEVELOPER, record: :new_episodes
15
9
  @developer = Github::Developer.find(username: USERNAME)
16
10
  @sad_developer = Github::Developer.find(username: SAD_USERNAME)
17
11
  end
@@ -25,7 +19,7 @@ describe 'Github specifications' do
25
19
  end
26
20
 
27
21
  it 'should be able to open a new Github Developer' do
28
- @developer.name.length.must_be :>, 0
22
+ @developer.username.length.must_be :>, 0
29
23
  end
30
24
 
31
25
  it 'should get the user id' do
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'spec_helper'
4
+
5
+ describe 'Github specifications' do
6
+
7
+ before do
8
+ VCR.insert_cassette REPOSITORY, record: :new_episodes
9
+ @repository = Github::Repository.find(owner: HAPPY_OWNER, repo: HAPPY_REPO)
10
+ @sad_repository = Github::Repository.find(owner: SAD_USERNAME, repo: SAD_REPO)
11
+ end
12
+
13
+ after do
14
+ VCR.eject_cassette
15
+ end
16
+
17
+ it 'should return nil for no repository found' do
18
+ @sad_repository.must_be_nil
19
+ end
20
+
21
+ it 'should be able to open a new Github Repository' do
22
+ @repository.full_name.must_be_instance_of String
23
+ end
24
+
25
+ it 'should get the repository id' do
26
+ @repository.id.must_be :>, 0
27
+ end
28
+
29
+ it 'should get the repo should have stats' do
30
+ @repository.stats.wont_be_nil
31
+ end
32
+ end
@@ -13,14 +13,28 @@ require_relative '../lib/gitget'
13
13
 
14
14
  FIXTURES_FOLDER = 'spec/fixtures'
15
15
  CASSETTES_FOLDER = "#{FIXTURES_FOLDER}/cassettes"
16
- CASSETTE_FILE = 'github_api'
16
+ DEVELOPER = 'developer'
17
+ REPOSITORY = 'repository'
17
18
 
18
19
  USERNAME = 'rjollet'
19
20
  SAD_USERNAME = '12547'
20
21
 
22
+ HAPPY_OWNER = 'rjollet'
23
+ HAPPY_REPO = 'DeepViz'
24
+
25
+ SAD_OWNER = '12547'
26
+ SAD_REPO = '12547'
27
+
21
28
  if File.file?('config/github_credential.yml')
22
29
  credentials = YAML.load(File.read('config/github_credential.yml'))
23
30
  ENV['GH_USERNAME'] = credentials[:username]
24
31
  ENV['GH_TOKEN'] = credentials[:token]
25
32
  ENV['GH_AUTH'] = credentials[:auth]
26
33
  end
34
+
35
+ VCR.configure do |c|
36
+ c.cassette_library_dir = CASSETTES_FOLDER
37
+ c.hook_into :webmock
38
+
39
+ c.filter_sensitive_data('<AUTH>') { ENV['GH_AUTH'] }
40
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitget
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: '0.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Renaud Jollet
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-11-04 00:00:00.000000000 Z
13
+ date: 2016-11-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: http
@@ -166,7 +166,6 @@ files:
166
166
  - ".rubocop.yml"
167
167
  - ".travis.yml"
168
168
  - Gemfile
169
- - Gemfile.lock
170
169
  - LICENSE
171
170
  - README.md
172
171
  - Rakefile
@@ -178,8 +177,9 @@ files:
178
177
  - lib/gitget/github_developer.rb
179
178
  - lib/gitget/github_repository.rb
180
179
  - lib/gitget/version.rb
180
+ - spec/developer_spec.rb
181
181
  - spec/fixtures/README.md
182
- - spec/github_spec.rb
182
+ - spec/repository_spec.rb
183
183
  - spec/spec_helper.rb
184
184
  homepage: https://github.com/Rubeasts/gitget
185
185
  licenses:
@@ -201,11 +201,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
201
  version: '0'
202
202
  requirements: []
203
203
  rubyforge_project:
204
- rubygems_version: 2.4.8
204
+ rubygems_version: 2.5.1
205
205
  signing_key:
206
206
  specification_version: 4
207
207
  summary: Gets public information about Github developers
208
208
  test_files:
209
+ - spec/developer_spec.rb
209
210
  - spec/fixtures/README.md
210
- - spec/github_spec.rb
211
+ - spec/repository_spec.rb
211
212
  - spec/spec_helper.rb
@@ -1,89 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- gitget (0.1.0)
5
- http (~> 2.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- addressable (2.4.0)
11
- ast (2.3.0)
12
- crack (0.4.3)
13
- safe_yaml (~> 1.0.0)
14
- docile (1.1.5)
15
- domain_name (0.5.20161021)
16
- unf (>= 0.0.5, < 1.0.0)
17
- erubis (2.7.0)
18
- flay (2.8.1)
19
- erubis (~> 2.7.0)
20
- path_expander (~> 1.0)
21
- ruby_parser (~> 3.0)
22
- sexp_processor (~> 4.0)
23
- flog (4.4.0)
24
- path_expander (~> 1.0)
25
- ruby_parser (~> 3.1, > 3.1.0)
26
- sexp_processor (~> 4.4)
27
- hashdiff (0.3.0)
28
- http (2.0.3)
29
- addressable (~> 2.3)
30
- http-cookie (~> 1.0)
31
- http-form_data (~> 1.0.1)
32
- http_parser.rb (~> 0.6.0)
33
- http-cookie (1.0.3)
34
- domain_name (~> 0.5)
35
- http-form_data (1.0.1)
36
- http_parser.rb (0.6.0)
37
- json (2.0.2)
38
- minitest (5.9.1)
39
- minitest-rg (5.2.0)
40
- minitest (~> 5.0)
41
- parser (2.3.1.4)
42
- ast (~> 2.2)
43
- path_expander (1.0.0)
44
- powerpack (0.1.1)
45
- rainbow (2.1.0)
46
- rake (11.3.0)
47
- rubocop (0.43.0)
48
- parser (>= 2.3.1.1, < 3.0)
49
- powerpack (~> 0.1)
50
- rainbow (>= 1.99.1, < 3.0)
51
- ruby-progressbar (~> 1.7)
52
- unicode-display_width (~> 1.0, >= 1.0.1)
53
- ruby-progressbar (1.8.1)
54
- ruby_parser (3.8.3)
55
- sexp_processor (~> 4.1)
56
- safe_yaml (1.0.4)
57
- sexp_processor (4.7.0)
58
- simplecov (0.12.0)
59
- docile (~> 1.1.0)
60
- json (>= 1.8, < 3)
61
- simplecov-html (~> 0.10.0)
62
- simplecov-html (0.10.0)
63
- unf (0.1.4)
64
- unf_ext
65
- unf_ext (0.0.7.2)
66
- unicode-display_width (1.1.1)
67
- vcr (3.0.3)
68
- webmock (2.1.0)
69
- addressable (>= 2.3.6)
70
- crack (>= 0.3.2)
71
- hashdiff
72
-
73
- PLATFORMS
74
- ruby
75
-
76
- DEPENDENCIES
77
- flay (~> 2.8)
78
- flog (~> 4.4)
79
- gitget!
80
- minitest (~> 5.9)
81
- minitest-rg (~> 5.2)
82
- rake (~> 11.3)
83
- rubocop (~> 0.42)
84
- simplecov (~> 0.12)
85
- vcr (~> 3.0)
86
- webmock (~> 2.1)
87
-
88
- BUNDLED WITH
89
- 1.13.1