gish 0.9.1 → 0.9.2
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/CHANGELOG.md +13 -0
- data/CONTRIBUTING.md +1 -1
- data/README.md +5 -5
- data/lib/gish/helpers/date_helpers.rb +61 -0
- data/lib/gish/presentation/comment.rb +4 -3
- data/lib/gish/presentation/issue.rb +6 -5
- data/lib/gish/version.rb +1 -1
- data/lib/gish.rb +1 -0
- data/test/gish/helpers/date_helpers_test.rb +53 -0
- data/test/test_helper.rb +3 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e283a3ac502b0f0efd93450c90296764f0e9f01a
|
4
|
+
data.tar.gz: 20d202eaa7eabab441e4defa1db8d38df8930362
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c3bcbb5d692c97acbb1109c88417a8c92026def1112c636325068cded81c41e8ab141e68964fb2471de272f2cb4aef8b016e6f2534fc686f5fade89f74cfdd1
|
7
|
+
data.tar.gz: 0a7527664a089df782d2465b52ff63fe4840855159056ab5cd06e7fc7c06e076fee20818e36f5d5dbe2cc4cee967833f6979bcd4a8eeef7ca1cd4b4b9229117f
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## 0.9.2
|
4
|
+
|
5
|
+
* Express issue/comment creation times in time passed rather than as a date. Thanks to [despo](https://github.com/despo).
|
6
|
+
|
7
|
+
## 0.9.1
|
8
|
+
|
9
|
+
* Added a [PR] tag for issues in the list screen.
|
10
|
+
|
11
|
+
## 0.9.0
|
12
|
+
|
13
|
+
* Initial release.
|
data/CONTRIBUTING.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Contributions are very welcome, whether it's refactoring or taking care of the [issues](http://github.com/gish/issues).
|
1
|
+
Contributions are very welcome, whether it's refactoring or taking care of the [issues](http://github.com/barisbalic/gish/issues).
|
2
2
|
|
3
3
|
Quick guide to contributing:
|
4
4
|
|
data/README.md
CHANGED
@@ -37,7 +37,7 @@ Here are some examples to get you started.
|
|
37
37
|
|
38
38
|
|command|outcome|
|
39
39
|
|-------|-------|
|
40
|
-
|gish list | List 20 issues|
|
40
|
+
|gish list | List 20 issues (default count) |
|
41
41
|
|gish show 1 | Show issue #1|
|
42
42
|
|gish show 1 -i| Show issue #1 and include comments|
|
43
43
|
|gish comment 1 -m ":+1"| Comment on issue #1|
|
@@ -45,10 +45,10 @@ Here are some examples to get you started.
|
|
45
45
|
|gish close 1| Close issue #1|
|
46
46
|
|gish label 1 such-feature| Add the label such-feature to issue #1|
|
47
47
|
|
48
|
-
When listing issues, the number of comments on an issue will be displayed at the end of a line.
|
48
|
+
When listing issues, the number of comments on an issue will be displayed at the end of a line, along with a tag indicating if the issue is a pull request.
|
49
49
|
|
50
50
|
```
|
51
|
-
#9 barisbalic Emoji!
|
51
|
+
#9 barisbalic Emoji! [PR] [2]
|
52
52
|
#8 barisbalic Fix editor input for open command [0]
|
53
53
|
#7 barisbalic Support API paging [0]
|
54
54
|
#6 barisbalic Current repository check is lame [1]
|
@@ -62,10 +62,10 @@ When listing issues, the number of comments on an issue will be displayed at the
|
|
62
62
|
|
63
63
|
## Contributing
|
64
64
|
|
65
|
-
Contributions are very welcome, whether it's refactoring or taking care of the [issues](http://github.com/gish/issues).
|
65
|
+
Contributions are very welcome, whether it's refactoring or taking care of the [issues](http://github.com/barisbalic/gish/issues).
|
66
66
|
|
67
67
|
1. Fork the repo.
|
68
|
-
2.
|
68
|
+
2. Create your branch `git checkout -b branch-name` **bonus for feature branches**
|
69
69
|
3. Make your changes
|
70
70
|
4. Test to make sure you have not broken any existing functionality
|
71
71
|
4. Commit your changes
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Gish
|
2
|
+
module DateHelpers
|
3
|
+
|
4
|
+
A_DAY = 1440
|
5
|
+
A_MONTH = A_DAY*30
|
6
|
+
A_YEAR = A_MONTH*12
|
7
|
+
|
8
|
+
def time_in_words(now=Time.now, time)
|
9
|
+
minutes = ((now - time)/60).round
|
10
|
+
|
11
|
+
return format_year_string(minutes) if minutes >= A_YEAR
|
12
|
+
|
13
|
+
case minutes
|
14
|
+
when 0
|
15
|
+
"less than one minute ago"
|
16
|
+
when 1...50
|
17
|
+
"#{minutes} minutes ago"
|
18
|
+
when 51...90
|
19
|
+
"about 1 hour ago"
|
20
|
+
when 91...A_DAY
|
21
|
+
"about #{hours_ago(minutes)} hours ago"
|
22
|
+
when A_DAY...2520
|
23
|
+
"one day ago"
|
24
|
+
when 2521...A_MONTH
|
25
|
+
"#{days_ago(minutes)} days ago"
|
26
|
+
when A_MONTH...A_YEAR
|
27
|
+
"#{months_ago(minutes)} months ago"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def format_year_string(minutes)
|
34
|
+
remaining_minutes = minutes % A_YEAR
|
35
|
+
|
36
|
+
if remaining_minutes < A_YEAR*0.25
|
37
|
+
"about #{years_ago(minutes)} years ago"
|
38
|
+
elsif remaining_minutes < A_YEAR*0.75
|
39
|
+
"more than #{years_ago(minutes)} years ago"
|
40
|
+
else
|
41
|
+
"almost #{years_ago(minutes)+1} years ago"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def hours_ago(minutes)
|
46
|
+
minutes/60
|
47
|
+
end
|
48
|
+
|
49
|
+
def days_ago(minutes)
|
50
|
+
hours_ago(minutes)/24
|
51
|
+
end
|
52
|
+
|
53
|
+
def months_ago(minutes)
|
54
|
+
days_ago(minutes)/30
|
55
|
+
end
|
56
|
+
|
57
|
+
def years_ago(minutes)
|
58
|
+
months_ago(minutes)/12
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -1,18 +1,19 @@
|
|
1
1
|
module Gish
|
2
2
|
class Comment
|
3
3
|
include TerminalHelpers
|
4
|
+
include DateHelpers
|
4
5
|
|
5
6
|
def initialize(github_comment)
|
6
7
|
@body = github_comment.body.gsub("\r\n", "\n")
|
7
8
|
@user = github_comment.user.login
|
8
9
|
@id = github_comment.id
|
9
|
-
@created_at = github_comment.created_at
|
10
|
+
@created_at = time_in_words(github_comment.created_at)
|
10
11
|
end
|
11
12
|
|
12
13
|
def to_s
|
13
|
-
output = "\n#{@id} #{bold(@user)} commented
|
14
|
+
output = "\n#{@id} #{bold(@user)} commented #{@created_at}"
|
14
15
|
output << "\n\"#{@body}\"\n"
|
15
16
|
output
|
16
17
|
end
|
17
18
|
end
|
18
|
-
end
|
19
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
module Gish
|
2
2
|
class Issue
|
3
3
|
include TerminalHelpers
|
4
|
-
|
4
|
+
include DateHelpers
|
5
|
+
|
5
6
|
def initialize(github_issue)
|
6
7
|
@url = github_issue.html_url
|
7
8
|
@number = github_issue.number.to_s
|
@@ -12,13 +13,13 @@ module Gish
|
|
12
13
|
@user = github_issue.user.login
|
13
14
|
@comment_count = github_issue.comments
|
14
15
|
@assignee = github_issue.assignee.login rescue nil
|
15
|
-
@created_at = github_issue.created_at
|
16
|
+
@created_at = time_in_words(github_issue.created_at)
|
16
17
|
@pull_request = !github_issue.pull_request.rels.keys.empty?
|
17
18
|
end
|
18
19
|
|
19
20
|
def headline
|
20
21
|
user = @user.ljust(20, ' ')
|
21
|
-
title = short_title.ljust(70, ' ')
|
22
|
+
title = short_title.ljust(70, ' ')
|
22
23
|
number = @number.ljust(5, ' ')
|
23
24
|
type = @pull_request ? '[PR]' : ' '
|
24
25
|
"##{number} #{bold(user)} #{title} #{bold(type)} [#{@comment_count}]"
|
@@ -27,7 +28,7 @@ module Gish
|
|
27
28
|
def to_s
|
28
29
|
output = underline("##{@number} #{@title}")
|
29
30
|
output << " [#{@state}]"
|
30
|
-
output << "\nOpened by #{bold(@user)}
|
31
|
+
output << "\nOpened by #{bold(@user)} #{@created_at}"
|
31
32
|
output << "\nAssigned to #{bold(@assignee)}" unless @assignee.nil?
|
32
33
|
output << "\n\n#{@body}\n\n"
|
33
34
|
output << "#{label_names.join(' ')}" unless @labels.empty?
|
@@ -45,4 +46,4 @@ module Gish
|
|
45
46
|
@labels.map{ |l| format_label(l.name) }
|
46
47
|
end
|
47
48
|
end
|
48
|
-
end
|
49
|
+
end
|
data/lib/gish/version.rb
CHANGED
data/lib/gish.rb
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
class DateTestClass
|
4
|
+
include Gish::DateHelpers
|
5
|
+
end
|
6
|
+
|
7
|
+
class TestDateHelpers < MiniTest::Test
|
8
|
+
def setup
|
9
|
+
@date_helper = DateTestClass.new
|
10
|
+
@now = Time.new(2013,12,27)
|
11
|
+
end
|
12
|
+
|
13
|
+
def time_in_words time
|
14
|
+
@date_helper.time_in_words(@now, time)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_seconds_ago
|
18
|
+
assert_equal(time_in_words(Time.new(2013,12,27)), "less than one minute ago")
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_minutes_ago
|
22
|
+
assert_equal(time_in_words(Time.new(2013,12,26,23,58)), "2 minutes ago")
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_about_an_hour_ago
|
26
|
+
assert_equal(time_in_words(Time.new(2013,12,26,23,8)), "about 1 hour ago")
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_x_hours_ago
|
30
|
+
assert_equal(time_in_words(Time.new(2013,12,26,19)), "about 5 hours ago")
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_x_days_ago
|
34
|
+
assert_equal(time_in_words(Time.new(2013,12,23)), "4 days ago")
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_x_months_ago
|
38
|
+
assert_equal(time_in_words(Time.new(2013,9,23)), "3 months ago")
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_about_x_years_ago
|
42
|
+
assert_equal(time_in_words(Time.new(2011,12,27)), "about 2 years ago")
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_about_x_years_ago
|
46
|
+
assert_equal(time_in_words(Time.new(2011,9,27)), "more than 2 years ago")
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_almost_x_years_ago
|
50
|
+
assert_equal(time_in_words(Time.new(2011,2,27)), "almost 3 years ago")
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gish
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Baris Balic
|
@@ -75,6 +75,7 @@ extensions: []
|
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
77
|
- .gitignore
|
78
|
+
- CHANGELOG.md
|
78
79
|
- CONTRIBUTING.md
|
79
80
|
- Gemfile
|
80
81
|
- LICENSE.txt
|
@@ -90,6 +91,7 @@ files:
|
|
90
91
|
- lib/gish/commands/issue.rb
|
91
92
|
- lib/gish/commands/label.rb
|
92
93
|
- lib/gish/configuration.rb
|
94
|
+
- lib/gish/helpers/date_helpers.rb
|
93
95
|
- lib/gish/helpers/input_helpers.rb
|
94
96
|
- lib/gish/helpers/terminal_helpers.rb
|
95
97
|
- lib/gish/presentation/comment.rb
|
@@ -97,6 +99,8 @@ files:
|
|
97
99
|
- lib/gish/presentation/label.rb
|
98
100
|
- lib/gish/runner.rb
|
99
101
|
- lib/gish/version.rb
|
102
|
+
- test/gish/helpers/date_helpers_test.rb
|
103
|
+
- test/test_helper.rb
|
100
104
|
homepage: http://github.com/barisbalic/gish
|
101
105
|
licenses:
|
102
106
|
- MIT
|
@@ -121,4 +125,6 @@ rubygems_version: 2.0.3
|
|
121
125
|
signing_key:
|
122
126
|
specification_version: 4
|
123
127
|
summary: A fairly functional command-line interface for the most excellent Gitub Issues.
|
124
|
-
test_files:
|
128
|
+
test_files:
|
129
|
+
- test/gish/helpers/date_helpers_test.rb
|
130
|
+
- test/test_helper.rb
|