ghn 2.0.0.pre4 → 2.0.0.pre5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94e945b6b2fbd6ef4b6fe02f0bd0d8e896e58d21
4
- data.tar.gz: 63a952e82cac9bca5789a03c4d607c5e4d6fdbcc
3
+ metadata.gz: a6530b32dbc20799ac48e639138fe9581eb76b1b
4
+ data.tar.gz: 1e75ba2866a8a1bbfc9696892642bf8bff2108ad
5
5
  SHA512:
6
- metadata.gz: cd5608d589b9cf25ff8d70306ea09947289c0118ec96078a69fdfe8a26e9373fe2868ba668ccef3eaceebe35f56e220be0ea59f8c20c96a97194c2ccc45bdb85
7
- data.tar.gz: 0866278f8a9f23040f01be99d1fb201b629fd61c50a158f1384e8e9ba2db82fd08cd5e27d890e4226ee28c4e00f7c2b2a9440439ed31d1212bd1ae895b8d7758
6
+ metadata.gz: 0c04b79a4ff9798adc6b1081164f26546c7de2fbd69546d8d5cfb62372dace75243434733d7f11d5256fa42ce3b5bcf0cb2769d26b664c2ebadf03450f13df3c
7
+ data.tar.gz: d251d40c9d795ef9cc4862f92cc9c0fb5be798c35b0aa9a65f6ac49b4eeb54de5075b068cb2fdac556afd06cef5dd5d665672846fd8128f43c1443a3a43f5db9
data/README.md CHANGED
@@ -50,6 +50,17 @@ Please set **ghn.token** to your `.gitconfig`.
50
50
 
51
51
  You can also set access token via `GHN_ACCESS_TOKEN` environment variable.
52
52
 
53
+ ## Follow issuecomment anchor
54
+
55
+ If you provide `--follow-issuecomment` option, or set git config `ghn.followissuecomment` to "yes", "on" or "true",
56
+ ghn follows #issuecomment- anchor URL as like GitHub's official notification link.
57
+
58
+ $ ghn open --follow-issuecomment
59
+
60
+ $ git config --global ghn.followissuecomment true
61
+
62
+ Commandline option overrides git config setting as well.
63
+
53
64
  ## Contributing
54
65
 
55
66
  1. Fork it
data/lib/ghn/collector.rb CHANGED
@@ -1,19 +1,22 @@
1
1
  class Ghn
2
2
  class Collector
3
- def initialize(client, repo_full_name = nil)
3
+ attr_reader :client, :repo_full_name, :follow_issuecomment
4
+
5
+ def initialize(client, repo_full_name = nil, follow_issuecomment = false)
4
6
  @client = client
5
7
  @repo_full_name = repo_full_name
8
+ @follow_issuecomment = follow_issuecomment
6
9
  end
7
10
 
8
11
  def collect(page = 1)
9
- notifications = if @repo_full_name
10
- @client.repo_notifications(@repo_full_name, page: page)
12
+ notifications = if repo_full_name
13
+ client.repo_notifications(repo_full_name, page: page)
11
14
  else
12
- @client.notifications(page: page)
15
+ client.notifications(page: page)
13
16
  end
14
17
  @count = notifications.count
15
18
  notifications.map { |notification|
16
- Notification.new(notification).type_class.new(notification).url
19
+ Notification.new(notification, follow_issuecomment).type_class.new(notification, follow_issuecomment).url
17
20
  }.compact
18
21
  end
19
22
 
data/lib/ghn/commands.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  class Ghn
2
2
  class Commands < Thor
3
3
  class_option :all, type: :boolean, aliases: '-a', desc: 'List/Open all unread notifications'
4
+ class_option :follow_issuecomment, type: :boolean, desc: 'Follow issuecomment anchor URL'
4
5
 
5
6
  desc 'list NAME', 'List unread notifications'
6
7
  def list(name = nil)
@@ -20,7 +21,7 @@ class Ghn
20
21
 
21
22
  def collect(repo_full_name = nil)
22
23
  threads = []
23
- collector = Collector.new(client, repo_full_name)
24
+ collector = Collector.new(client, repo_full_name, follow_issuecomment?)
24
25
  # Unfortunately, GitHub v3 Notifications API doesn't accept octokit's auto_paginate option
25
26
  # because this API doesn't return Link header so far.
26
27
  loop.with_index(1) do |_, page|
@@ -40,6 +41,17 @@ class Ghn
40
41
  @aliases ||= Aliases.new
41
42
  end
42
43
 
44
+ def follow_issuecomment?
45
+ val = (options['follow_issuecomment'] || `git config ghn.followissuecomment`.chomp).to_s
46
+ if val.empty?
47
+ false
48
+ elsif val.match(/off|no|false/i)
49
+ false
50
+ else
51
+ true
52
+ end
53
+ end
54
+
43
55
  def access_token
44
56
  @access_token ||=
45
57
  case
@@ -1,9 +1,10 @@
1
1
  class Ghn
2
2
  class Notification
3
- attr_reader :notification
3
+ attr_reader :notification, :follow_issuecomment
4
4
 
5
- def initialize(notification)
5
+ def initialize(notification, follow_issuecomment)
6
6
  @notification = notification
7
+ @follow_issuecomment = follow_issuecomment
7
8
  end
8
9
 
9
10
  def type_class
@@ -14,7 +15,7 @@ class Ghn
14
15
  end
15
16
 
16
17
  def url
17
- if comment?
18
+ if follow_issuecomment && comment?
18
19
  "https://github.com/#{repo_full_name}/#{type}/#{thread_number}#issuecomment-#{comment_number}"
19
20
  else
20
21
  "https://github.com/#{repo_full_name}/#{type}/#{thread_number}"
data/lib/ghn/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Ghn
2
- VERSION = "2.0.0.pre4"
2
+ VERSION = "2.0.0.pre5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ghn
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre4
4
+ version: 2.0.0.pre5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kensuke Nagae
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-24 00:00:00.000000000 Z
11
+ date: 2014-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor