fire_watch 0.2.6 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 225913cf4665a410cb89192be4f69707a5d442d8
4
- data.tar.gz: ed894e110430aa644a25948e0678b4f8e717197b
3
+ metadata.gz: e69d5bd0206c3b3a44a41068f627b4bd13829eac
4
+ data.tar.gz: 2489f588654a612f250375ba71a92f32aed3dc2d
5
5
  SHA512:
6
- metadata.gz: bd8f45ccf545a2fdee89d8b54f91fc8a5dbc3fc3e623009738b69fe57288ed47fdb1606c913f48dc46d18d93b3865de2a50af403767c4b0f78d76cbdb0e5d1d4
7
- data.tar.gz: b0a920214522f5ea34c6949b29f58ba82872fe18a6e14bc65cfd40f891ebe1fa78aa858b5b714167a148e6db127e90f5bf801892df3327adccc5c7535fc46c0b
6
+ metadata.gz: 9e3f4d2b5bc3e387fd9960533d398e3d64aede979a7cef03d2327e530bfe057a4ed034efa6c78274e388bc72b3298e1d959f2542f3482268ac1be46c9dfbdf94
7
+ data.tar.gz: 76b98a17b6f8afea8c34aa9935ffc6169cb300cd5cb1c31ab410e3e042306727f5486d43efac4a57a1fdcf1582ae4fdafb7b04b379e9bfd4295ad15a21278eff
@@ -4,6 +4,7 @@ require 'github_api'
4
4
 
5
5
  module FireWatch
6
6
  class Runner
7
+ ISSUE_REGEX = /.?#(\d+)/
7
8
  def self.invoke
8
9
 
9
10
  cli = HighLine.new
@@ -34,6 +35,7 @@ module FireWatch
34
35
  loop do
35
36
  cli.choose do |menu|
36
37
  menu.prompt = "Add/Remove Milestones (#{selected_milestones.map{|p| p.title}.join(', ')}): "
38
+ menu.choice("Done Adding Milestones") { done = true } if selected_milestones.count > 0
37
39
  milestones.each do |m|
38
40
  menu.choice(m.title) do
39
41
  if selected_milestones.include? m
@@ -43,7 +45,6 @@ module FireWatch
43
45
  end
44
46
  end
45
47
  end
46
- menu.choice("Done Adding Milestones") { done = true } if selected_milestones.count > 0
47
48
  end
48
49
  break if done
49
50
  end
@@ -56,11 +57,14 @@ module FireWatch
56
57
  projects = @harvest_client.projects.all
57
58
  selected_projects = []
58
59
  done = false
60
+ show_all = false
59
61
  loop do
60
62
  cli.choose do |menu|
61
63
  menu.prompt = "Add/Remove Project (#{selected_projects.map{|p| p.name}.join(', ')}): "
64
+ menu.choice("Done Adding Projects") { done = true } if selected_projects.count > 0
62
65
  clients.sort_by(&:name).each do |client|
63
66
  projects.select{|p| p.client_id == client.id}.sort_by(&:name).each do |p|
67
+ next unless show_all || p.active
64
68
  menu.choice("#{client.name} - #{p.name}") do
65
69
  if selected_projects.include? p
66
70
  selected_projects.delete(p)
@@ -70,7 +74,11 @@ module FireWatch
70
74
  end
71
75
  end
72
76
  end
73
- menu.choice("Done Adding Projects") { done = true } if selected_projects.count > 0
77
+ if show_all
78
+ menu.choice("Only Show Active Projects") { show_all = false }
79
+ else
80
+ menu.choice("Include Inactive Projects") { show_all = true }
81
+ end
74
82
  end
75
83
  break if done
76
84
  end
@@ -118,12 +126,7 @@ module FireWatch
118
126
 
119
127
  issues.each do |issue|
120
128
  relevant_time_entries, time_entries = time_entries.partition do |entry|
121
- match_data = /.?#(?<issue_number>\d+)/.match(entry.notes)
122
- if match_data.nil?
123
- false
124
- else
125
- match_data["issue_number"].eql? issue.number.to_s
126
- end
129
+ entry.notes.scan(ISSUE_REGEX).flatten.any?{|m| m.eql? issue.number.to_s }
127
130
  end
128
131
 
129
132
  if relevant_time_entries.empty?
@@ -151,7 +154,7 @@ module FireWatch
151
154
  projects.select{|p| user_time_entries.map(&:project_id).uniq.include? p.id}.map(&:name).join(', '),
152
155
  "#{user.first_name} #{user.last_name}", # Who
153
156
  !issue.labels.nil? && !issue.labels.find{|l| l.name.include?"size:"}.nil? ? issue.labels.find{|l| l.name.include?"size:"}.name : "",
154
- user_time_entries.inject(0){|sum, e| sum + e.hours },
157
+ user_time_entries.inject(0){|sum, e| sum + (e.hours / e.notes.scan(ISSUE_REGEX).flatten.count) },
155
158
  issue.state,
156
159
  "",
157
160
  issue.labels.nil? ? "" : issue.labels.map{|l| l.name}.join(', ')
@@ -162,12 +165,7 @@ module FireWatch
162
165
 
163
166
  pull_requests.each do |pr|
164
167
  relevant_time_entries, time_entries = time_entries.partition do |entry|
165
- match_data = /.?#(?<issue_number>\d+)/.match(entry.notes)
166
- if match_data.nil?
167
- false
168
- else
169
- match_data["issue_number"].eql? pr.number.to_s
170
- end
168
+ entry.notes.scan(ISSUE_REGEX).flatten.any?{|m| m.eql? issue.number.to_s }
171
169
  end
172
170
  if relevant_time_entries.empty?
173
171
  csv << [
@@ -194,7 +192,7 @@ module FireWatch
194
192
  projects.select{|p| user_time_entries.map(&:project_id).uniq.include? p.id}.map(&:name).join(', '),
195
193
  "#{user.first_name} #{user.last_name}", # Who
196
194
  !pr.labels.nil? && !pr.labels.find{|l| l.name.include?"size:"}.nil? ? pr.labels.find{|l| l.name.include?"size:"}.name : "",
197
- user_time_entries.inject(0){|sum, e| sum + e.hours },
195
+ user_time_entries.inject(0){|sum, e| sum + (e.hours / e.notes.scan(ISSUE_REGEX).flatten.count) },
198
196
  pr.state,
199
197
  pr.merged ? "Y" : "N",
200
198
  pr.labels.nil? ? "" : issue.labels.map{|l| l.name}.join(', ')
@@ -1,3 +1,3 @@
1
1
  module FireWatch
2
- VERSION = "0.2.6"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fire_watch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Weakley
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-11 00:00:00.000000000 Z
11
+ date: 2017-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: harvested