gitfinger 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -6,12 +6,17 @@ A simple Ruby gem that lets you finger GitHub users.
6
6
 
7
7
  ## Usage
8
8
 
9
- gitfinger [GitHub username]
9
+ gitfinger [GitHub username] [options]
10
10
 
11
+ ## Options
12
+
13
+ -s, --sort [FIELD] Order on FIELD
14
+ -r, --reverse Reverse standard order
15
+ -h, --help Show this message
16
+ -v, --version Show version
17
+
11
18
 
12
19
  ## Install
13
20
 
14
21
  gem install gitfinger
15
22
 
16
-
17
-
data/bin/gitfinger CHANGED
@@ -1,15 +1,38 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'time'
4
+ require 'octokit'
5
+ require 'yaml'
6
+ require 'optparse'
7
+
8
+ opts = {}
9
+ op = OptionParser.new {|o|
10
+ o.banner = "Usage: gitfinger [GitHub username]"
11
+ o.separator ""
12
+ o.separator "Specific options:"
13
+ o.on("-s", "--sort [FIELD]", "Order on FIELD") { |field| opts[:sort] = field }
14
+ o.on("-r", "--reverse", "Reverse standard order") { opts[:reverse] = true }
15
+ o.on("-h", "--help", "Show this message") {
16
+ require 'gitfinger'
17
+ puts "gitfinger #{Gitfinger::VERSION}"
18
+ puts o
19
+ exit
20
+ }
21
+ o.on("-v", "--version", "Show version") {
22
+ require 'gitfinger'
23
+ puts "gitfinger #{Gitfinger::VERSION}"
24
+ exit
25
+ }
26
+ }
27
+ op.parse!
4
28
  user = ARGV.first
5
29
  if user.nil?
6
- $stderr.puts "Usage: #{File.basename(__FILE__)} [a GitHub username]"
30
+ $stderr.puts op
7
31
  exit 1
8
32
  end
9
33
 
10
- require 'octokit'
11
- require 'yaml'
12
34
  c = Octokit::Client.new
35
+
13
36
  begin
14
37
  repos = c.repositories(user, per_page: 300)
15
38
  rescue Octokit::NotFound
@@ -23,15 +46,29 @@ def truncate(s, len)
23
46
  end
24
47
 
25
48
  res = repos.map {|r|
26
- d = %w( repo name w watchers f forks i open_issues updated updated_at pushed pushed_at type fork desc description).each_slice(2).reduce({}) {|m, x|
27
- m[x[0]] = r[x[1]]
49
+ d = %w( repo name w watchers f forks i open_issues updated updated_at pushed pushed_at type fork desc description).each_slice(2).reduce({}) {|m, (display_key,api_key)|
50
+ m[display_key] = r[api_key]
28
51
  m
29
52
  }
30
53
  %w( updated pushed ).each {|x| d[x] = d[x] && DateTime.parse(d[x]) }
31
54
  d['type'] = d['type'] ? 'fork' : 'source'
32
55
  d
33
- }.sort_by {|x| x['updated']}.reverse
56
+ }
57
+
58
+ sort_field = opts[:sort] || 'updated'
59
+ res = res.sort_by {|x|
60
+ sort_value = x[sort_field]
61
+ if sort_value.nil?
62
+ sort_value = Time.at(0).to_date if sort_field =~ /updated|pushed/
63
+ sort_value = "" if sort_field =~ /desc/
64
+ end
65
+ sort_value.downcase! if sort_field == 'repo'
66
+ sort_value
67
+ }
34
68
 
69
+ # default order for date and counts is latest or greatest first
70
+ res.reverse! if %w(updated pushed w i f).member?(sort_field)
71
+ res.reverse! if opts[:reverse]
35
72
 
36
73
  def fmt_datetime(t)
37
74
  t.strftime("%b %d %Y")
data/gitfinger.gemspec CHANGED
@@ -1,9 +1,11 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
+ require 'gitfinger'
5
+
4
6
  Gem::Specification.new do |s|
5
7
  s.name = "gitfinger"
6
- s.version = '0.0.4'
8
+ s.version = Gitfinger::VERSION
7
9
  s.platform = Gem::Platform::RUBY
8
10
  s.required_ruby_version = '>= 1.9.0'
9
11
 
data/lib/gitfinger.rb ADDED
@@ -0,0 +1,3 @@
1
+ module Gitfinger
2
+ VERSION = '0.0.5'
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitfinger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-25 00:00:00.000000000Z
12
+ date: 2012-01-27 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: octokit
16
- requirement: &70110451396780 !ruby/object:Gem::Requirement
16
+ requirement: &4278520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0.6'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70110451396780
24
+ version_requirements: *4278520
25
25
  description: Finger GitHub users
26
26
  email:
27
27
  - dhchoi@gmail.com
@@ -37,6 +37,7 @@ files:
37
37
  - Rakefile
38
38
  - bin/gitfinger
39
39
  - gitfinger.gemspec
40
+ - lib/gitfinger.rb
40
41
  - screenshots/gitfinger.png
41
42
  homepage: http://github.com/danchoi/gitfinger
42
43
  licenses: []