Skip to content

Commit 2b7bb59

Browse files
authored
Detect duplicate meetup events in DataFileValidator (#742)
* Detect duplicate meetup events in `DataFileValidator` * Use actual count
1 parent bf07303 commit 2b7bb59

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

Rakefile

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ task :verify_meetups do
7171
events = validator.events
7272
dates = events.map { |event| event["start_date"] }
7373
exit 5 unless dates.sort == dates
74+
exit 6 if validator.duplicate_events?
7475
end
7576

7677
task :fetch_meetups do

_data/meetups.yml

-14
Original file line numberDiff line numberDiff line change
@@ -1549,27 +1549,13 @@
15491549
end_time: 20:00:00 EAT
15501550
url: https://www.meetup.com/african_ruby_community/events/301578297
15511551

1552-
- name: Columbus Ruby Brigade - Monthly Meetup September 2024
1553-
location: Columbus, OH
1554-
date: 2024-09-16
1555-
start_time: 18:00:00 EDT
1556-
end_time: 20:00:00 EDT
1557-
url: https://www.meetup.com/columbusrb/events/xwwkltygcmbvb
1558-
15591552
- name: Columbus Ruby Brigade - Monthly Meetup September 2024
15601553
location: Columbus, OH
15611554
date: 2024-09-16
15621555
start_time: 18:00:00 EDT
15631556
end_time: 20:00:00 EDT
15641557
url: https://www.meetup.com/columbusrb/events/303084093
15651558

1566-
- name: Miami Ruby Brigade - September 2024
1567-
location: Coral Gables, FL
1568-
date: 2024-09-16
1569-
start_time: 19:00:00 EDT
1570-
end_time: 21:00:00 EDT
1571-
url: https://www.meetup.com/miamirb/events/pdvctsygcmbvb
1572-
15731559
- name: Miami Ruby Brigade - September 2024
15741560
location: Coral Gables, FL
15751561
date: 2024-09-16

src/data_file_validator.rb

+15
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,17 @@ def validate
2727
@bonus_keys_error = true
2828
end
2929
end
30+
31+
if @type == :meetup
32+
event_groups_by_date = events.map { |event| [event["name"].split(" - ").first, event["date"]] }
33+
34+
duplicate_events = event_groups_by_date.tally.select { |group, count| count > 1 }
35+
36+
duplicate_events.each do |(group, date), count|
37+
@duplicate_events_error = true
38+
puts "Meetup Group '#{group}' has #{count} events on #{date.iso8601}"
39+
end
40+
end
3041
end
3142

3243
def missing_keys?
@@ -37,6 +48,10 @@ def bonus_keys?
3748
@bonus_keys_error
3849
end
3950

51+
def duplicate_events?
52+
@duplicate_events_error
53+
end
54+
4055
private
4156

4257
def required_keys(type = @type)

0 commit comments

Comments
 (0)