reponaut 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+
3
+ module Reponaut
4
+ module GitHub
5
+ describe Client do
6
+ let(:username) { 'mdippery' }
7
+ let(:github) { Client.new(username) }
8
+
9
+ describe '#repos' do
10
+ it "returns the user's repos" do
11
+ VCR.use_cassette(username) do
12
+ expect(github.repos.count).to eq(24)
13
+ end
14
+ end
15
+
16
+ it 'returns a valid repo name for a repo' do
17
+ VCR.use_cassette(username) do
18
+ expect(github.repos[0].full_name).to eq('mdippery/3ddv')
19
+ end
20
+ end
21
+
22
+ it 'returns a valid language for a repo' do
23
+ VCR.use_cassette(username) do
24
+ expect(github.repos[0].language).to eq('Java')
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ describe Repository do
31
+ let (:username) { 'mdippery' }
32
+ let (:github) { Client.new(username) }
33
+
34
+ describe '#fork?' do
35
+ it 'returns true if the repository is a fork' do
36
+ VCR.use_cassette(username) do
37
+ repo = github.repos.find { |r| r.full_name == 'mdippery/dnsimple-python' }
38
+ expect(repo.fork?).to be true
39
+ end
40
+ end
41
+
42
+ it 'returns false if the repository is not a fork' do
43
+ VCR.use_cassette(username) do
44
+ repo = github.repos.find { |r| r.full_name == 'mdippery/chameleon' }
45
+ expect(repo.fork?).to be false
46
+ end
47
+ end
48
+ end
49
+
50
+ describe '#source?' do
51
+ it 'returns true if the repository is a source' do
52
+ VCR.use_cassette(username) do
53
+ repo = github.repos.find { |r| r.full_name == 'mdippery/chameleon' }
54
+ expect(repo.source?).to be true
55
+ end
56
+ end
57
+
58
+ it 'returns false if the repository is not a source' do
59
+ VCR.use_cassette(username) do
60
+ repo = github.repos.find { |r| r.full_name == 'mdippery/dnsimple-python' }
61
+ expect(repo.source?).to be false
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+ require 'reponaut/ext/hash'
3
+
4
+ module Reponaut
5
+ module Ext
6
+ describe Hash do
7
+ describe '#pairs' do
8
+ it 'returns a list of key-value pairs' do
9
+ h = {:one => 1, :two => 2, :three => 3}
10
+ expected = [[:one, 1], [:two, 2], [:three, 3]]
11
+ expect(h.pairs).to eq(expected)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ module Reponaut
4
+ describe StatisticsCalculator do
5
+ describe '#language_counts' do
6
+ let (:username) { 'mdippery' }
7
+
8
+ it 'returns correct language counts' do
9
+ VCR.use_cassette(username) do
10
+ gh = Reponaut::GitHub::Client.new(username)
11
+ stats = StatisticsCalculator.new(gh.repos)
12
+ expect(stats.language_counts['Java']).to eq(2)
13
+ expect(stats.language_counts['Objective-C']).to eq(5)
14
+ expect(stats.language_counts['Clojure']).to eq(3)
15
+ expect(stats.language_counts['Python']).to eq(4)
16
+ expect(stats.language_counts['Perl']).to eq(1)
17
+ expect(stats.language_counts['Ruby']).to eq(3)
18
+ expect(stats.language_counts['C']).to eq(1)
19
+ expect(stats.language_counts['VimL']).to eq(3)
20
+ expect(stats.language_counts['JavaScript']).to eq(1)
21
+ expect(stats.language_counts['Erlang']).to eq(1)
22
+ expect(stats.language_counts['C++']).to eq(0)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,7 @@
1
+ require 'reponaut'
2
+ require 'vcr'
3
+
4
+ VCR.configure do |vcr|
5
+ vcr.cassette_library_dir = 'spec/fixtures/cassettes'
6
+ vcr.hook_into :webmock
7
+ end
metadata ADDED
@@ -0,0 +1,191 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reponaut
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Michael Dippery
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-08-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.13.5
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.13.5
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: slop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: aruba
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.8.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.8.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: cucumber
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: vcr
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.9'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.9'
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.21'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.21'
125
+ description: Analysis tool for GitHub users
126
+ email:
127
+ - michael@monkey-robot.com
128
+ executables:
129
+ - reponaut
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - ".gitignore"
134
+ - Gemfile
135
+ - LICENSE.txt
136
+ - Rakefile
137
+ - bin/reponaut
138
+ - features/count.feature
139
+ - features/help.feature
140
+ - features/step_definitions/github_steps.rb
141
+ - features/support/aruba.rb
142
+ - features/support/vcr.rb
143
+ - lib/reponaut.rb
144
+ - lib/reponaut/application.rb
145
+ - lib/reponaut/ext/hash.rb
146
+ - lib/reponaut/github.rb
147
+ - lib/reponaut/statistics.rb
148
+ - lib/reponaut/version.rb
149
+ - reponaut.gemspec
150
+ - spec/fixtures/cassettes/mdippery.yml
151
+ - spec/fixtures/cassettes/testuser1.yml
152
+ - spec/reponaut/github_spec.rb
153
+ - spec/reponaut/hash_spec.rb
154
+ - spec/reponaut/statistics_spec.rb
155
+ - spec/spec_helper.rb
156
+ homepage: https://github.com/mdippery/reponaut
157
+ licenses:
158
+ - MIT
159
+ metadata: {}
160
+ post_install_message:
161
+ rdoc_options: []
162
+ require_paths:
163
+ - lib
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ requirements: []
175
+ rubyforge_project:
176
+ rubygems_version: 2.4.5
177
+ signing_key:
178
+ specification_version: 4
179
+ summary: Analyzes GitHub users' profiles
180
+ test_files:
181
+ - features/count.feature
182
+ - features/help.feature
183
+ - features/step_definitions/github_steps.rb
184
+ - features/support/aruba.rb
185
+ - features/support/vcr.rb
186
+ - spec/fixtures/cassettes/mdippery.yml
187
+ - spec/fixtures/cassettes/testuser1.yml
188
+ - spec/reponaut/github_spec.rb
189
+ - spec/reponaut/hash_spec.rb
190
+ - spec/reponaut/statistics_spec.rb
191
+ - spec/spec_helper.rb