gitfinger 0.0.4 → 0.0.5

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.
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: []