project_monitor_stat 0.0.6 → 0.0.7
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9ef3f44c9a7b97f66cbe1418ea316431af361c1
|
4
|
+
data.tar.gz: 2b4ee8859d568cc37c03e3cb047a5e07411cd668
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1403642cdb4c77c26bad5ba55830411bab9108035fb6dba32e9a75726ca9692fe7784aaeb8b0e8951e0bc13864553954d25325d94389d2deb79347e24ecae5a6
|
7
|
+
data.tar.gz: d450706ae7cc5d6086d0cc6bfcf856d1fe46c409e36149c56c6da5272dd72c35f3c6b9cc39d5d0d51e94dcc038e3d15a57d0260432d7d55499711997261cfee4
|
data/lib/project_monitor_stat.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module ProjectMonitorStat
|
2
|
-
VERSION = '0.0.
|
2
|
+
VERSION = '0.0.7'
|
3
3
|
|
4
4
|
autoload :Config, 'project_monitor_stat/config'
|
5
|
+
autoload :GitEmailParser, 'project_monitor_stat/git_email_parser'
|
5
6
|
autoload :Fetcher, 'project_monitor_stat/fetcher'
|
6
7
|
autoload :Reporter, 'project_monitor_stat/reporter'
|
7
8
|
autoload :Util, 'project_monitor_stat/util'
|
@@ -4,14 +4,30 @@ require 'optparse'
|
|
4
4
|
module ProjectMonitorStat
|
5
5
|
class Config
|
6
6
|
def self.parse_options(argv: raise)
|
7
|
-
tag = argv[0] || raise(ArgumentError.new('You must provide a tag'))
|
8
7
|
instance = new
|
9
|
-
instance.tag = tag
|
10
8
|
instance.base_url = 'http://pulse.pivotallabs.com/projects.json'
|
11
9
|
instance.idle_seconds = 600
|
12
10
|
|
13
11
|
opt_parser = OptionParser.new do |opts|
|
14
|
-
opts.banner =
|
12
|
+
opts.banner = 'Usage: project_monitor_stat [options]'
|
13
|
+
|
14
|
+
opts.on('-t tag1,tag2', '--tags tag1,tag2,tag3', Array,
|
15
|
+
'Project Monitor tags') do |t|
|
16
|
+
instance.tags = t
|
17
|
+
end
|
18
|
+
|
19
|
+
opts.on('-g', '--git-author-tags',
|
20
|
+
'Use current git author username@ or pair+usernames@ for tags') do
|
21
|
+
git_email_parser = GitEmailParser.new
|
22
|
+
|
23
|
+
if git_email_parser.username_tags.empty?
|
24
|
+
Util.puts "Error: Invalid git email: '#{git_email_parser.git_email}'"
|
25
|
+
Util.puts opts
|
26
|
+
exit(1)
|
27
|
+
end
|
28
|
+
|
29
|
+
instance.tags = git_email_parser.username_tags
|
30
|
+
end
|
15
31
|
|
16
32
|
opts.on('-sCOMMAND', '--success COMMAND',
|
17
33
|
'Command after success') do |s|
|
@@ -52,12 +68,12 @@ module ProjectMonitorStat
|
|
52
68
|
end
|
53
69
|
|
54
70
|
opts.on_tail('-h', '--help', 'Show this message') do
|
55
|
-
puts opts
|
71
|
+
Util.puts opts
|
56
72
|
exit
|
57
73
|
end
|
58
74
|
|
59
75
|
opts.on_tail('--version', 'Show version') do
|
60
|
-
puts VERSION
|
76
|
+
Util.puts VERSION
|
61
77
|
exit
|
62
78
|
end
|
63
79
|
end
|
@@ -67,11 +83,11 @@ module ProjectMonitorStat
|
|
67
83
|
instance
|
68
84
|
end
|
69
85
|
|
70
|
-
attr_accessor :
|
86
|
+
attr_accessor :tags, :base_url, :success_cmd, :building_cmd, :fail_cmd, :idle_cmd, :idle_seconds, :cookie
|
71
87
|
|
72
88
|
def url
|
73
89
|
uri = URI(base_url)
|
74
|
-
uri.query = "tags=#{
|
90
|
+
uri.query = "tags=#{tags.join(',')}"
|
75
91
|
uri
|
76
92
|
end
|
77
93
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module ProjectMonitorStat
|
2
|
+
class GitEmailParser
|
3
|
+
SOLO_USERNAME_REGEX = /\A[^+]+(?=@)/
|
4
|
+
PAIR_USERNAME_REGEX = /(?<=[\+^])\w+(?=[\+@])/
|
5
|
+
|
6
|
+
attr_reader :git_email
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@git_email = Util.x('git config --get user.email')
|
10
|
+
end
|
11
|
+
|
12
|
+
def username_tags
|
13
|
+
solo_usernames | pair_usernames
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def solo_usernames
|
19
|
+
git_email.scan(SOLO_USERNAME_REGEX)
|
20
|
+
end
|
21
|
+
|
22
|
+
def pair_usernames
|
23
|
+
git_email.scan(PAIR_USERNAME_REGEX)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: project_monitor_stat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Micah Young
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- lib/project_monitor_stat.rb
|
67
67
|
- lib/project_monitor_stat/config.rb
|
68
68
|
- lib/project_monitor_stat/fetcher.rb
|
69
|
+
- lib/project_monitor_stat/git_email_parser.rb
|
69
70
|
- lib/project_monitor_stat/reporter.rb
|
70
71
|
- lib/project_monitor_stat/util.rb
|
71
72
|
homepage: http://rubygems.org/gems/project_monitor_stat
|