git-trend 0.0.5 → 0.0.6
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 +37 -0
- data/lib/git_trend/cli.rb +4 -4
- data/lib/git_trend/rendering.rb +9 -3
- data/lib/git_trend/version.rb +1 -1
- data/spec/git_trend/cli_spec.rb +97 -33
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f80f0833e1dc5f6f84b38ff16c6c693351b7c1b
|
4
|
+
data.tar.gz: 483f4cbd54c05c6d54bb1ad0c76572c4ca3040b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73f27a239bbd0b7f678d9e7afcb154409d89fe54fae33a5ba486852258e43b07f3649391bed8be4bf59911fc17ad1de9f50ddc2ba9d54744425d7a24a91ec774
|
7
|
+
data.tar.gz: 17bbf467e9e2165a7686135ab47445506c07bd546018ea3a0d2dd93611558a80392f41c3126643c2be7f3166d3ad760b9dbfc26c412411e87c22e019c03f1165
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -65,6 +65,43 @@ No. Name Lang Star Fork
|
|
65
65
|
25 twbs/bootstrap CSS 46 27
|
66
66
|
```
|
67
67
|
|
68
|
+
### daily trending with description
|
69
|
+
|
70
|
+
git trend -d
|
71
|
+
|
72
|
+
e.g.:
|
73
|
+
|
74
|
+
```
|
75
|
+
$ g trend -d
|
76
|
+
No. Name Lang Star Fork Description
|
77
|
+
--- -------------------------------------------------- ----------- ------ ----- ----------------------------------------------------------------------------
|
78
|
+
1 hummingbird-me/hummingbird JavaScript 535 21 Probably the coolest anime discovery platform around.
|
79
|
+
2 google/flatbuffers Shell 272 14 Memory Efficient Serialization Library
|
80
|
+
3 jakubroztocil/httpie Python 248 14 HTTPie is a command line HTTP client, a user-friendly cURL replacement.
|
81
|
+
4 mephux/komanda JavaScript 199 8 IRC for people who write code
|
82
|
+
5 burocratik/outdated-browser JavaScript 188 24 A simple tool to identify and upgrade old browsers.
|
83
|
+
6 numbbbbb/the-swift-programming-language-in-chinese Python 140 30 中文版 Apple 官方 Swift 教程《The Swift Programming Language》
|
84
|
+
7 pocketjoso/penthouse JavaScript 146 4 Critical Path CSS Generator
|
85
|
+
8 estiens/world_cup_json Ruby 126 9 Rails backend for a scraper that outputs World Cup data as JSON
|
86
|
+
9 medialab/artoo JavaScript 126 0 The client-side scraping companion.
|
87
|
+
10 justjavac/Google-IPs 97 36 Google 全球 IP 地址库
|
88
|
+
11 thusfresh/switchboard Erlang 114 0 Switchboard Server
|
89
|
+
12 greatfire/wiki 97 34
|
90
|
+
13 montagejs/collections JavaScript 96 2 This package contains JavaScript implementations of common data structure...
|
91
|
+
14 thumbtack/angular-smarty JavaScript 94 0 Autocomplete UI written with Angular JS.
|
92
|
+
15 Vestorly/torii JavaScript 91 0 A set of clean abstractions for authentication in Ember.js
|
93
|
+
16 angular/angular.js JavaScript 68 40 HTML enhanced for web apps
|
94
|
+
17 urish/angular-moment JavaScript 79 1 Angular.JS directives for Moment.JS (timeago alternative)
|
95
|
+
18 mattdonnelly/Swifter Swift 76 5 A Twitter framework for iOS & OS X written in Swift
|
96
|
+
19 nimbly/angular-formly JavaScript 72 6 AngularJS directive which takes JSON representing a form and renders to H...
|
97
|
+
20 julianshapiro/velocity JavaScript 71 4 Accelerated JavaScript animation.
|
98
|
+
21 GoogleCloudPlatform/kubernetes Go 64 7 Container Cluster Manager
|
99
|
+
22 twbs/bootstrap CSS 45 34 The most popular front-end framework for developing responsive, mobile fi...
|
100
|
+
23 google/cadvisor Go 58 4 Analyzes resource usage and performance characteristics of running contai...
|
101
|
+
24 CartoDB/odyssey.js JavaScript 57 6 Making it easy to merge map and narrative
|
102
|
+
25 ra1028/RACollectionViewReorderableTripletLayout Objective-C 55 3 The custom collectionView layout that can perform reordering of cells by ...
|
103
|
+
```
|
104
|
+
|
68
105
|
### daily trending by language
|
69
106
|
|
70
107
|
git trend -l
|
data/lib/git_trend/cli.rb
CHANGED
@@ -14,13 +14,13 @@ module GitTrend
|
|
14
14
|
say "git-trend version: #{VERSION}", :green
|
15
15
|
end
|
16
16
|
|
17
|
-
desc :list, '
|
18
|
-
option :
|
19
|
-
option :since,
|
17
|
+
desc :list, 'List Trending repository on github (default command)'
|
18
|
+
option :language, aliases:'-l', required: false
|
19
|
+
option :since, aliases:'-s', required: false
|
20
20
|
option :description, aliases:'-d', required: false
|
21
21
|
def list
|
22
22
|
scraper = Scraper.new
|
23
|
-
projects = scraper.get(options[:
|
23
|
+
projects = scraper.get(options[:language], options[:since])
|
24
24
|
render(projects, !!options[:description])
|
25
25
|
rescue => e
|
26
26
|
say "An unexpected #{e.class} has occurred.", :red
|
data/lib/git_trend/rendering.rb
CHANGED
@@ -8,6 +8,7 @@ module GitTrend
|
|
8
8
|
# header columns:
|
9
9
|
# 'No.', 'Name', 'Lang', 'Star', 'Fork', ['Description']
|
10
10
|
DEFAULT_RULED_LINE_SIZE = [3, 40, 10, 6, 5]
|
11
|
+
DESCRIPTION_MIN_SIZE = 20
|
11
12
|
|
12
13
|
def render(projects, describable=false)
|
13
14
|
@describable = describable
|
@@ -42,10 +43,15 @@ module GitTrend
|
|
42
43
|
@ruled_line_size[2] = max_lang_size
|
43
44
|
end
|
44
45
|
|
46
|
+
# setting description size
|
45
47
|
if @describable
|
46
48
|
terminal_width, _terminal_height = detect_terminal_size
|
47
49
|
description_width = terminal_width - @ruled_line_size.inject(&:+) - @ruled_line_size.size
|
48
|
-
|
50
|
+
if description_width >= DESCRIPTION_MIN_SIZE
|
51
|
+
@ruled_line_size << description_width
|
52
|
+
else
|
53
|
+
@describable = false
|
54
|
+
end
|
49
55
|
end
|
50
56
|
end
|
51
57
|
|
@@ -59,7 +65,7 @@ module GitTrend
|
|
59
65
|
header = ['No.', 'Name', 'Lang', 'Star', 'Fork']
|
60
66
|
header << 'Description' if @describable
|
61
67
|
puts fmt % header
|
62
|
-
puts fmt % @ruled_line_size.map{ |
|
68
|
+
puts fmt % @ruled_line_size.map{ |field| '-'*field }
|
63
69
|
end
|
64
70
|
|
65
71
|
def render_to_body(projects)
|
@@ -87,7 +93,7 @@ module GitTrend
|
|
87
93
|
else
|
88
94
|
nil
|
89
95
|
end
|
90
|
-
rescue
|
96
|
+
rescue
|
91
97
|
nil
|
92
98
|
end
|
93
99
|
end
|
data/lib/git_trend/version.rb
CHANGED
data/spec/git_trend/cli_spec.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
include GitTrend
|
@@ -14,36 +15,7 @@ RSpec.describe GitTrend::CLI do
|
|
14
15
|
end
|
15
16
|
|
16
17
|
it 'display daily ranking' do
|
17
|
-
|
18
|
-
|No. Name Lang Star Fork
|
19
|
-
|--- -------------------------------------------------- ------------ ------ -----
|
20
|
-
| 1 prat0318/json_resume Ruby 264 15
|
21
|
-
| 2 andlabs/ui Go 185 8
|
22
|
-
| 3 jessepollak/card CSS 174 9
|
23
|
-
| 4 fullstackio/FlappySwift Swift 148 44
|
24
|
-
| 5 grant/swift-cheat-sheet 153 13
|
25
|
-
| 6 Flolagale/mailin Python 155 3
|
26
|
-
| 7 numbbbbb/the-swift-programming-language-in-chinese JavaScript 120 31
|
27
|
-
| 8 hippyvm/hippyvm PHP 113 1
|
28
|
-
| 9 neovim/neovim C 83 8
|
29
|
-
| 10 hiphopapp/hiphop CoffeeScript 77 8
|
30
|
-
| 11 interagent/http-api-design 78 4
|
31
|
-
| 12 austinzheng/swift-2048 Swift 69 16
|
32
|
-
| 13 mdznr/What-s-New Objective-C 72 2
|
33
|
-
| 14 daneden/animate.css CSS 65 6
|
34
|
-
| 15 davidmerfield/randomColor JavaScript 66 3
|
35
|
-
| 16 dawn/dawn Ruby 62 2
|
36
|
-
| 17 greatfire/wiki 54 9
|
37
|
-
| 18 swift-jp/swift-guide CSS 45 9
|
38
|
-
| 19 addyosmani/psi JavaScript 49 0
|
39
|
-
| 20 mtford90/silk Python 47 0
|
40
|
-
| 21 agaue/agaue Go 47 0
|
41
|
-
| 22 mentionapp/mntpulltoreact Objective-C 46 1
|
42
|
-
| 23 mikepenz/AboutLibraries Java 45 0
|
43
|
-
| 24 PistonDevelopers/piston-workspace Shell 45 0
|
44
|
-
| 25 maxpow4h/swiftz Swift 43 1
|
45
|
-
EOS
|
46
|
-
expect { @cli.list }.to output(res).to_stdout
|
18
|
+
expect { @cli.list }.to output(dummy_result_no_options).to_stdout
|
47
19
|
end
|
48
20
|
end
|
49
21
|
|
@@ -84,7 +56,7 @@ RSpec.describe GitTrend::CLI do
|
|
84
56
|
| 24 sferik/twitter Ruby 0 1
|
85
57
|
| 25 rightscale/rightscale_cookbooks Ruby 0 1
|
86
58
|
EOS
|
87
|
-
expect { @cli.invoke(:list, [], {
|
59
|
+
expect { @cli.invoke(:list, [], {language: language}) }.to output(res).to_stdout
|
88
60
|
end
|
89
61
|
end
|
90
62
|
|
@@ -124,7 +96,7 @@ RSpec.describe GitTrend::CLI do
|
|
124
96
|
| 24 Yonsm/CeleWare Objective-C++ 0 0
|
125
97
|
| 25 ccrma/miniAudicle Objective-C++ 0 0
|
126
98
|
EOS
|
127
|
-
expect { @cli.invoke(:list, [], {
|
99
|
+
expect { @cli.invoke(:list, [], {language: language}) }.to output(res).to_stdout
|
128
100
|
end
|
129
101
|
end
|
130
102
|
end
|
@@ -211,6 +183,67 @@ RSpec.describe GitTrend::CLI do
|
|
211
183
|
end
|
212
184
|
end
|
213
185
|
|
186
|
+
describe 'with -d option' do
|
187
|
+
|
188
|
+
after do
|
189
|
+
ENV['COLUMNS'] = nil
|
190
|
+
ENV['LINES'] = nil
|
191
|
+
end
|
192
|
+
|
193
|
+
context 'terminal width is enough' do
|
194
|
+
before do
|
195
|
+
stub_request_get("trending")
|
196
|
+
ENV['COLUMNS'] = '140'
|
197
|
+
ENV['LINES'] = '40'
|
198
|
+
end
|
199
|
+
|
200
|
+
it 'display daily ranking with description' do
|
201
|
+
res = <<-'EOS'.unindent
|
202
|
+
|No. Name Lang Star Fork Description
|
203
|
+
|--- -------------------------------------------------- ------------ ------ ----- -----------------------------------------------------------
|
204
|
+
| 1 prat0318/json_resume Ruby 264 15 Generates pretty HTML, LaTeX, markdown, with biodata fee...
|
205
|
+
| 2 andlabs/ui Go 185 8 Platform-native GUI library for Go.
|
206
|
+
| 3 jessepollak/card CSS 174 9 make your credit card form better in one line of code
|
207
|
+
| 4 fullstackio/FlappySwift Swift 148 44 swift implementation of flappy bird. More at fullstacked...
|
208
|
+
| 5 grant/swift-cheat-sheet 153 13 A short guide to using Apple's new programming language,...
|
209
|
+
| 6 Flolagale/mailin Python 155 3 Artisanal inbound emails for every web app
|
210
|
+
| 7 numbbbbb/the-swift-programming-language-in-chinese JavaScript 120 31 中文版 Apple 官方 Swift 教程《The Swift Programming Lang...
|
211
|
+
| 8 hippyvm/hippyvm PHP 113 1 HippyVM - an implementation of the PHP language in RPyth...
|
212
|
+
| 9 neovim/neovim C 83 8 vim's rebirth for the 21st century
|
213
|
+
| 10 hiphopapp/hiphop CoffeeScript 77 8 Free music streaming app
|
214
|
+
| 11 interagent/http-api-design 78 4 HTTP API design guide extracted from work on the Heroku ...
|
215
|
+
| 12 austinzheng/swift-2048 Swift 69 16 2048 for Swift
|
216
|
+
| 13 mdznr/What-s-New Objective-C 72 2 Easily present the latest changes and features to your u...
|
217
|
+
| 14 daneden/animate.css CSS 65 6 A cross-browser library of CSS animations. As easy to us...
|
218
|
+
| 15 davidmerfield/randomColor JavaScript 66 3 A color generator for JavaScript.
|
219
|
+
| 16 dawn/dawn Ruby 62 2 Docker-based PaaS in Ruby
|
220
|
+
| 17 greatfire/wiki 54 9
|
221
|
+
| 18 swift-jp/swift-guide CSS 45 9 Appleが公表した新プログラミング言語「Swift」についての資...
|
222
|
+
| 19 addyosmani/psi JavaScript 49 0 PageSpeed Insights for Node - with reporting
|
223
|
+
| 20 mtford90/silk Python 47 0 Silky smooth profiling for Django
|
224
|
+
| 21 agaue/agaue Go 47 0 Golang blog framework
|
225
|
+
| 22 mentionapp/mntpulltoreact Objective-C 46 1 One gesture, many actions. An evolution of Pull to Refre...
|
226
|
+
| 23 mikepenz/AboutLibraries Java 45 0 AboutLibraries is a library to offer some information of...
|
227
|
+
| 24 PistonDevelopers/piston-workspace Shell 45 0 Git submodules of Piston projects
|
228
|
+
| 25 maxpow4h/swiftz Swift 43 1 Functional programming in Swift
|
229
|
+
EOS
|
230
|
+
expect { @cli.invoke(:list, [], {description: 'description'}) }.to output(res).to_stdout
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
context 'terminal width is tiny' do
|
235
|
+
before do
|
236
|
+
stub_request_get("trending")
|
237
|
+
ENV['COLUMNS'] = '100' # it is not enough for description.
|
238
|
+
ENV['LINES'] = '40'
|
239
|
+
end
|
240
|
+
|
241
|
+
it 'display daily ranking about the same as no option' do
|
242
|
+
expect { @cli.invoke(:list, [], {description: 'description'}) }.to output(dummy_result_no_options).to_stdout
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
214
247
|
describe 'with -l and -s option' do
|
215
248
|
context 'with ruby and weekly' do
|
216
249
|
before do
|
@@ -249,7 +282,7 @@ RSpec.describe GitTrend::CLI do
|
|
249
282
|
| 24 chloerei/campo Ruby 35 9
|
250
283
|
| 25 jordansissel/fpm Ruby 35 4
|
251
284
|
EOS
|
252
|
-
expect { @cli.invoke(:list, [], {
|
285
|
+
expect { @cli.invoke(:list, [], {language: language, since: since}) }.to output(res).to_stdout
|
253
286
|
end
|
254
287
|
end
|
255
288
|
end
|
@@ -471,4 +504,35 @@ RSpec.describe GitTrend::CLI do
|
|
471
504
|
:body => load_http_stub(stub_url))
|
472
505
|
end
|
473
506
|
|
507
|
+
def dummy_result_no_options
|
508
|
+
<<-'EOS'.unindent
|
509
|
+
|No. Name Lang Star Fork
|
510
|
+
|--- -------------------------------------------------- ------------ ------ -----
|
511
|
+
| 1 prat0318/json_resume Ruby 264 15
|
512
|
+
| 2 andlabs/ui Go 185 8
|
513
|
+
| 3 jessepollak/card CSS 174 9
|
514
|
+
| 4 fullstackio/FlappySwift Swift 148 44
|
515
|
+
| 5 grant/swift-cheat-sheet 153 13
|
516
|
+
| 6 Flolagale/mailin Python 155 3
|
517
|
+
| 7 numbbbbb/the-swift-programming-language-in-chinese JavaScript 120 31
|
518
|
+
| 8 hippyvm/hippyvm PHP 113 1
|
519
|
+
| 9 neovim/neovim C 83 8
|
520
|
+
| 10 hiphopapp/hiphop CoffeeScript 77 8
|
521
|
+
| 11 interagent/http-api-design 78 4
|
522
|
+
| 12 austinzheng/swift-2048 Swift 69 16
|
523
|
+
| 13 mdznr/What-s-New Objective-C 72 2
|
524
|
+
| 14 daneden/animate.css CSS 65 6
|
525
|
+
| 15 davidmerfield/randomColor JavaScript 66 3
|
526
|
+
| 16 dawn/dawn Ruby 62 2
|
527
|
+
| 17 greatfire/wiki 54 9
|
528
|
+
| 18 swift-jp/swift-guide CSS 45 9
|
529
|
+
| 19 addyosmani/psi JavaScript 49 0
|
530
|
+
| 20 mtford90/silk Python 47 0
|
531
|
+
| 21 agaue/agaue Go 47 0
|
532
|
+
| 22 mentionapp/mntpulltoreact Objective-C 46 1
|
533
|
+
| 23 mikepenz/AboutLibraries Java 45 0
|
534
|
+
| 24 PistonDevelopers/piston-workspace Shell 45 0
|
535
|
+
| 25 maxpow4h/swiftz Swift 43 1
|
536
|
+
EOS
|
537
|
+
end
|
474
538
|
end
|
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.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rochefort
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|