git-trend 0.2.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +6 -0
- data/README.md +68 -75
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/{bin/git-trend → exe/git_trend} +0 -0
- data/git-trend.gemspec +2 -1
- data/lib/git_trend.rb +30 -5
- data/lib/git_trend/cli.rb +3 -2
- data/lib/git_trend/scraper.rb +13 -6
- data/lib/git_trend/version.rb +1 -1
- data/spec/git_trend/cli_spec.rb +450 -424
- data/spec/git_trend/scraper_spec.rb +4 -8
- data/spec/git_trend_spec.rb +82 -0
- data/spec/spec_helper.rb +14 -0
- metadata +9 -5
@@ -1,14 +1,11 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
include GitTrend
|
4
1
|
RSpec.describe GitTrend::Scraper do
|
2
|
+
let(:scraper) { Scraper.new }
|
5
3
|
|
6
4
|
describe 'settings' do
|
7
5
|
before do
|
8
6
|
allow(ENV).to receive(:[]).with('http_proxy').and_return('http://proxy_user:proxy_pass@192.168.1.99:9999')
|
9
|
-
@scraper = Scraper.new
|
10
7
|
end
|
11
|
-
subject {
|
8
|
+
subject { scraper.instance_variable_get(:@agent) }
|
12
9
|
its(:user_agent) { should eq "git-trend #{VERSION}" }
|
13
10
|
its(:proxy_addr) { should eq '192.168.1.99' }
|
14
11
|
its(:proxy_user) { should eq 'proxy_user' }
|
@@ -17,13 +14,12 @@ RSpec.describe GitTrend::Scraper do
|
|
17
14
|
end
|
18
15
|
|
19
16
|
describe '#get' do
|
20
|
-
before { @scraper = Scraper.new }
|
21
17
|
context 'when a network error occurred' do
|
22
18
|
before do
|
23
19
|
stub_request(:get, Scraper::BASE_URL)
|
24
20
|
.to_return(status: 500, body: '[]')
|
25
21
|
end
|
26
|
-
it { expect {
|
22
|
+
it { expect { scraper.get }.to raise_error(Exception) }
|
27
23
|
end
|
28
24
|
|
29
25
|
context 'when a scraping error occurred' do
|
@@ -31,7 +27,7 @@ RSpec.describe GitTrend::Scraper do
|
|
31
27
|
stub_request(:get, Scraper::BASE_URL)
|
32
28
|
.to_return(status: 200, headers: { content_type: 'text/html' }, body: '')
|
33
29
|
end
|
34
|
-
it { expect {
|
30
|
+
it { expect { scraper.get }.to raise_error(ScrapeException) }
|
35
31
|
end
|
36
32
|
end
|
37
33
|
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
RSpec.describe GitTrend do
|
2
|
+
before do
|
3
|
+
stub_request(:get, /.*/)
|
4
|
+
.to_return(status: 200, headers: { content_type: 'text/html' }, body: load_http_stub('trending'))
|
5
|
+
end
|
6
|
+
|
7
|
+
describe '#get' do
|
8
|
+
context 'without options' do
|
9
|
+
it 'Scraper#get call without options' do
|
10
|
+
expect_any_instance_of(Scraper).to receive(:get).with(no_args)
|
11
|
+
GitTrend.get
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "parameter is 'ruby'" do
|
16
|
+
it "Scraper#get call with 'ruby'" do
|
17
|
+
expect_any_instance_of(Scraper).to receive(:get).with('ruby')
|
18
|
+
GitTrend.get('ruby')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'parameter is :ruby' do
|
23
|
+
it 'Scraper#get call with :ruby' do
|
24
|
+
expect_any_instance_of(Scraper).to receive(:get).with(:ruby)
|
25
|
+
GitTrend.get(:ruby)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'parameter is since: :weekly' do
|
30
|
+
it 'Scraper#get call with [nil, :weekly]' do
|
31
|
+
expect_any_instance_of(Scraper).to receive(:get).with(nil, :weekly)
|
32
|
+
GitTrend.get(since: :weekly)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'parameter is since: :week' do
|
37
|
+
it 'Scraper#get call with [nil, :week]' do
|
38
|
+
expect_any_instance_of(Scraper).to receive(:get).with(nil, :week)
|
39
|
+
GitTrend.get(since: :week)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'parameter is since: :w' do
|
44
|
+
it 'Scraper#get call with [nil, :w]' do
|
45
|
+
expect_any_instance_of(Scraper).to receive(:get).with(nil, :w)
|
46
|
+
GitTrend.get(since: :w)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context "parameters are 'ruby', 'weekly'" do
|
51
|
+
it "Scraper#get call with ['ruby', 'weekly']" do
|
52
|
+
expect_any_instance_of(Scraper).to receive(:get).with('ruby', 'weekly')
|
53
|
+
GitTrend.get('ruby', 'weekly')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'parameters are :ruby, :weekly' do
|
58
|
+
it 'Scraper#get call with [:ruby, :weekly]' do
|
59
|
+
expect_any_instance_of(Scraper).to receive(:get).with(:ruby, :weekly)
|
60
|
+
GitTrend.get(:ruby, :weekly)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'parameters are language: :ruby, since: :weekly' do
|
65
|
+
it 'Scraper#get call with [:ruby, :weekly]' do
|
66
|
+
expect_any_instance_of(Scraper).to receive(:get).with(:ruby, :weekly)
|
67
|
+
GitTrend.get(language: :ruby, since: :weekly)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context 'when too many parameters' do
|
72
|
+
it { expect { GitTrend.get('ruby', 'weekly', 'many_params') }.to raise_error(Exception) }
|
73
|
+
end
|
74
|
+
|
75
|
+
describe '#languages' do
|
76
|
+
it 'Scraper#languages call' do
|
77
|
+
expect_any_instance_of(Scraper).to receive(:languages).with(no_args)
|
78
|
+
GitTrend.languages
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -38,8 +38,22 @@ require 'git_trend'
|
|
38
38
|
SimpleCov.start
|
39
39
|
|
40
40
|
RSpec.configure do |config|
|
41
|
+
config.expect_with :rspec do |expectations|
|
42
|
+
expectations.syntax = :expect
|
43
|
+
end
|
44
|
+
|
45
|
+
config.mock_with :rspec do |mocks|
|
46
|
+
mocks.syntax = :expect
|
47
|
+
mocks.verify_partial_doubles = true
|
48
|
+
end
|
49
|
+
|
50
|
+
config.filter_run :focus
|
51
|
+
config.run_all_when_everything_filtered = true
|
41
52
|
config.expose_dsl_globally = false
|
53
|
+
|
54
|
+
config.example_status_persistence_file_path = 'spec/examples.txt'
|
42
55
|
config.order = :random
|
56
|
+
Kernel.srand config.seed
|
43
57
|
# The settings below are suggested to provide a good initial experience
|
44
58
|
# with RSpec, but feel free to customize to your heart's content.
|
45
59
|
=begin
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-trend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rochefort
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -210,7 +210,7 @@ description: CLI-Based tool that show Trending repository on github
|
|
210
210
|
email:
|
211
211
|
- terasawan@gmail.com
|
212
212
|
executables:
|
213
|
-
-
|
213
|
+
- git_trend
|
214
214
|
extensions: []
|
215
215
|
extra_rdoc_files: []
|
216
216
|
files:
|
@@ -223,7 +223,9 @@ files:
|
|
223
223
|
- LICENSE.txt
|
224
224
|
- README.md
|
225
225
|
- Rakefile
|
226
|
-
- bin/
|
226
|
+
- bin/console
|
227
|
+
- bin/setup
|
228
|
+
- exe/git_trend
|
227
229
|
- git-trend.gemspec
|
228
230
|
- lib/git_trend.rb
|
229
231
|
- lib/git_trend/cli.rb
|
@@ -243,6 +245,7 @@ files:
|
|
243
245
|
- spec/fixtures/trending_including_multibyte_characters
|
244
246
|
- spec/git_trend/cli_spec.rb
|
245
247
|
- spec/git_trend/scraper_spec.rb
|
248
|
+
- spec/git_trend_spec.rb
|
246
249
|
- spec/spec_helper.rb
|
247
250
|
homepage: https://github.com/rochefort/git-trend
|
248
251
|
licenses:
|
@@ -280,4 +283,5 @@ test_files:
|
|
280
283
|
- spec/fixtures/trending_including_multibyte_characters
|
281
284
|
- spec/git_trend/cli_spec.rb
|
282
285
|
- spec/git_trend/scraper_spec.rb
|
286
|
+
- spec/git_trend_spec.rb
|
283
287
|
- spec/spec_helper.rb
|