whimsy-asf 0.0.73 → 0.0.74
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/asf.version +1 -1
- data/lib/whimsy/asf/committee.rb +10 -5
- data/lib/whimsy/asf/ldap.rb +6 -2
- data/lib/whimsy/asf/mail.rb +2 -2
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a3cda4938653e84801388a33933a5ff5753ccd8
|
4
|
+
data.tar.gz: cbd46d98523e091ae41001899b2b88c086a8bc73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e098ec455420ce5293b5457c9056c63ceb44f3187a0242f9d5e0798cd314b1ea8f4ea734f042359ec442e9e4e49578ff4bb948e29742b349db8c99a4e3d52620
|
7
|
+
data.tar.gz: fd7b79fddc1883e8a57248496867ecef4ddd7aaf918d927796df7cacd4c6a9f049906547d74e62420ac749ef90733f5e215248693b5a78673ee4309a1dd662b0
|
data/asf.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.74
|
data/lib/whimsy/asf/committee.rb
CHANGED
@@ -48,9 +48,13 @@ module ASF
|
|
48
48
|
board = ASF::SVN['private/committers/board']
|
49
49
|
file = "#{board}/committee-info.txt"
|
50
50
|
return unless File.exist? file
|
51
|
+
|
52
|
+
list = Hash.new {|hash, name| hash[name] = find(name)}
|
53
|
+
|
51
54
|
if @committee_info and File.mtime(file) == @committee_mtime
|
52
55
|
return @committee_info
|
53
56
|
end
|
57
|
+
|
54
58
|
@committee_mtime = File.mtime(file)
|
55
59
|
@@svn_change = Time.parse(
|
56
60
|
`svn info #{file}`[/Last Changed Date: (.*) \(/, 1]).gmtime
|
@@ -62,15 +66,16 @@ module ASF
|
|
62
66
|
# extract the committee chairs (e-mail address is required here)
|
63
67
|
head.scan(/^[ \t]+(\w.*?)[ \t][ \t]+(.*)[ \t]+<(.*?)@apache\.org>/).
|
64
68
|
each do |committee, name, id|
|
65
|
-
|
69
|
+
list[committee].chairs << {name: name, id: id}
|
66
70
|
end
|
71
|
+
|
67
72
|
# Extract the non-PMC committees (e-mail address may be absent)
|
68
73
|
@nonpmcs = head.sub(/.*?also has/m,'').
|
69
74
|
scan(/^[ \t]+(\w.*?)(?:[ \t][ \t]|[ \t]?$)/).flatten.uniq.
|
70
|
-
map {|name|
|
75
|
+
map {|name| list[name]}
|
71
76
|
|
72
77
|
info.each do |roster|
|
73
|
-
committee =
|
78
|
+
committee = list[@@namemap.call(roster[/(\w.*?)\s+\(/,1])]
|
74
79
|
committee.established = roster[/\(est\. (.*?)\)/, 1]
|
75
80
|
roster.gsub! /^.*\(\s*emeritus\s*\).*/i do |line|
|
76
81
|
committee.emeritus += line.scan(/<(.*?)@apache\.org>/).flatten
|
@@ -85,7 +90,7 @@ module ASF
|
|
85
90
|
report.scan(/^([^\n]+)\n---+\n(.*?)\n\n/m).each do |period, committees|
|
86
91
|
committees.scan(/^ \s*(.*)/).each do |committee|
|
87
92
|
committee, comment = committee.first.split(/\s+#\s+/,2)
|
88
|
-
committee =
|
93
|
+
committee = list[committee]
|
89
94
|
if comment
|
90
95
|
committee.report = "#{period}: #{comment}"
|
91
96
|
elsif period == 'Next month'
|
@@ -96,7 +101,7 @@ module ASF
|
|
96
101
|
end
|
97
102
|
end
|
98
103
|
|
99
|
-
@committee_info =
|
104
|
+
@committee_info = list.values
|
100
105
|
end
|
101
106
|
|
102
107
|
def self.nonpmcs
|
data/lib/whimsy/asf/ldap.rb
CHANGED
@@ -172,6 +172,8 @@ module ASF
|
|
172
172
|
|
173
173
|
# pre-fetch a given attribute, for a given list of people
|
174
174
|
def self.preload(attributes, people={})
|
175
|
+
list = Hash.new {|hash, name| hash[name] = find(name)}
|
176
|
+
|
175
177
|
attributes = [attributes].flatten
|
176
178
|
|
177
179
|
if people.empty?
|
@@ -183,14 +185,16 @@ module ASF
|
|
183
185
|
zero = Hash[attributes.map {|attribute| [attribute,nil]}]
|
184
186
|
|
185
187
|
data = ASF.search_one(base, filter, attributes + ['uid'])
|
186
|
-
data = Hash[data.map! {|hash| [
|
188
|
+
data = Hash[data.map! {|hash| [list[hash['uid'].first], hash]}]
|
187
189
|
data.each {|person, hash| person.attrs.merge!(zero.merge(hash))}
|
188
190
|
|
189
191
|
if people.empty?
|
190
|
-
(
|
192
|
+
(list.values - data.keys).each do |person|
|
191
193
|
person.attrs.merge! zero
|
192
194
|
end
|
193
195
|
end
|
196
|
+
|
197
|
+
list.values
|
194
198
|
end
|
195
199
|
|
196
200
|
def attrs
|
data/lib/whimsy/asf/mail.rb
CHANGED
@@ -8,8 +8,8 @@ module ASF
|
|
8
8
|
list = Hash.new
|
9
9
|
|
10
10
|
# load info from LDAP
|
11
|
-
ASF::Person.preload(['mail', 'asf-altEmail'])
|
12
|
-
|
11
|
+
people = ASF::Person.preload(['mail', 'asf-altEmail'])
|
12
|
+
people.each do |name, person|
|
13
13
|
(person.mail+person.alt_email).each do |mail|
|
14
14
|
list[mail.downcase] = person
|
15
15
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whimsy-asf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.74
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Ruby
|
@@ -14,84 +14,84 @@ dependencies:
|
|
14
14
|
name: nokogiri
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: ruby-ldap
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: tzinfo
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: tzinfo-data
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: wunderbar
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
description: |2
|
@@ -137,12 +137,12 @@ require_paths:
|
|
137
137
|
- lib
|
138
138
|
required_ruby_version: !ruby/object:Gem::Requirement
|
139
139
|
requirements:
|
140
|
-
- -
|
140
|
+
- - ">="
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '0'
|
143
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
|
-
- -
|
145
|
+
- - ">="
|
146
146
|
- !ruby/object:Gem::Version
|
147
147
|
version: '0'
|
148
148
|
requirements: []
|