whimsy-asf 0.0.38 → 0.0.39

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: 1ac081e9fe5b3016df52282994b8f68da8518890
4
- data.tar.gz: d6481a28efbc25377e27205d9a85d54235f670a0
3
+ metadata.gz: 06f190516ef3e40fb310ac22b34133f32a255791
4
+ data.tar.gz: e303401bbe7cfd71f52744f1161cae76221f024b
5
5
  SHA512:
6
- metadata.gz: 1508584a25f70789f35b9e19048b76290d7814e20182f5057cdfaeaf06be208a69287a4783ee32f2a67b74ea496795979bc6b84ef00996af36adf27e8edf38f4
7
- data.tar.gz: 38f18f90879e409b741132b8dd731d7de0dc842709f184efcb6165fa38248522bb2731c846d81f6ebfb0a66a89816b3976414124913aab7466ae0691325f3804
6
+ metadata.gz: 6f435cd9d666aa86621ba3793df81aca4c723ad7b0f9435f5df75063feeb0ffdaec56e4c14f9d6eaaef446184bae49eafd9a5a1a17dfb8595247efb8d79a8ee2
7
+ data.tar.gz: c43f9a6d3c93ae455925478e5f26174c29ddc19fbb981493058185f9df79fe3138a1a65849281a8caf402c4088a3334e40a4feb495924e29eee9468fc34f38f8
data/asf.version CHANGED
@@ -1 +1 @@
1
- 0.0.38
1
+ 0.0.39
@@ -54,39 +54,49 @@ class ASF::Board::Agenda
54
54
  (?:\.\.\.|apache\.org|apache\sdot\sorg)>\s*$/x)
55
55
 
56
56
  whimsy = 'https://whimsy.apache.org'
57
- if people.empty?
58
- if title =~ /Change (.*?) Chair/ or title =~ /Terminate (\w+)$/
59
- committee = ASF::Committee.find($1)
60
- attrs['roster'] =
61
- "#{whimsy}/roster/committee/#{CGI.escape committee.name}"
62
- attrs['stats'] =
63
- "https://reporter.apache.org/?#{CGI.escape committee.name}"
64
- attrs['prior_reports'] = minutes(committee.display_name)
65
- name1 = text[/heretofore\sappointed\s(\w.*)\sto/,1]
66
- sname1 = name1.to_s.downcase.gsub('.', ' ').split(/\s+/)
67
- name2 = text[/recommend\s(\w.*)\sas/,1]
68
- sname2 = name2.to_s.downcase.gsub('.', ' ').split(/\s+/)
69
- next unless committee.names
70
- committee.names.each do |id, name|
71
- name.sub!(/ .* /,' ') unless text.include? name
72
- pname = name.downcase.split(/\s+/)
73
- if text.include? name
74
- people << [name, id]
75
- elsif name1 && sname1.all? {|t1| pname.any? {|t2| t2.start_with? t1}}
76
- people << [name1, id]
77
- elsif name1 && pname.all? {|t1| sname1.any? {|t2| t2.start_with? t1}}
78
- people << [name1, id]
79
- elsif name2 && sname2.all? {|t1| pname.any? {|t2| t2.start_with? t1}}
80
- people << [name2, id]
81
- elsif name2 && pname.all? {|t1| sname2.any? {|t2| t2.start_with? t1}}
82
- people << [name2, id]
83
- end
57
+ if title =~ /Change (.*?) Chair/ or title =~ /Terminate (\w+)$/
58
+ people.clear
59
+ committee = ASF::Committee.find($1)
60
+ attrs['roster'] =
61
+ "#{whimsy}/roster/committee/#{CGI.escape committee.name}"
62
+ attrs['stats'] =
63
+ "https://reporter.apache.org/?#{CGI.escape committee.name}"
64
+ attrs['prior_reports'] = minutes(committee.display_name)
65
+
66
+ ids = text.scan(/\((\w[-.\w]+)\)/).flatten
67
+ unless ids.empty?
68
+ ids.each do |id|
69
+ person = ASF::Person.find(id)
70
+ people << [person.public_name, id] if person.icla
84
71
  end
72
+ end
85
73
 
86
- if people.length < 2
87
- attrs['warnings'] ||= ['Unable to match expected number of names']
74
+ name1 = text[/heretofore\sappointed\s(\w.*?)\s(\(|to)/,1]
75
+ sname1 = name1.to_s.downcase.gsub('.', ' ').split(/\s+/)
76
+ name2 = text[/recommend\s(\w.*?)\s(\(|as)/,1]
77
+ sname2 = name2.to_s.downcase.gsub('.', ' ').split(/\s+/)
78
+
79
+ next unless committee.names
80
+ committee.names.each do |id, name|
81
+ name.sub!(/ .* /,' ') unless text.include? name
82
+ pname = name.downcase.split(/\s+/)
83
+ if text.include? name
84
+ people << [name, id]
85
+ elsif name1 && sname1.all? {|t1| pname.any? {|t2| t2.start_with? t1}}
86
+ people << [name1, id]
87
+ elsif name1 && pname.all? {|t1| sname1.any? {|t2| t2.start_with? t1}}
88
+ people << [name1, id]
89
+ elsif name2 && sname2.all? {|t1| pname.any? {|t2| t2.start_with? t1}}
90
+ people << [name2, id]
91
+ elsif name2 && pname.all? {|t1| sname2.any? {|t2| t2.start_with? t1}}
92
+ people << [name2, id]
88
93
  end
89
94
  end
95
+
96
+ if people.length < 2
97
+ attrs['warnings'] ||= ['Unable to match expected number of names']
98
+ attrs['names'] = committee.names
99
+ end
90
100
  else
91
101
  if title =~ /Establish (.*)/
92
102
  name = $1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whimsy-asf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.38
4
+ version: 0.0.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Ruby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-17 00:00:00.000000000 Z
11
+ date: 2015-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri