1- MeetupsFileEntry = Data . define ( :name , :location , :date , :start_time , :end_time , :url , :status ) do
1+ MeetupsFileEntry = Data . define ( :name , :location , :date , :start_time , :end_time , :url , :status , :service ) do
22 attr_reader :group
33
4- def initialize ( name :, location :, date :, start_time :, end_time :, url :, status : nil , group : nil )
4+ def initialize ( name :, location :, date :, start_time :, end_time :, url :, status : nil , service : nil , group : nil )
55 date = date . is_a? ( Date ) ? date : Date . parse ( date )
66 @group = group
7- super ( name :, location :, date :, start_time :, end_time :, url :, status :)
7+ service ||= detect_service ( url )
8+ super ( name :, location :, date :, start_time :, end_time :, url :, status :, service :)
89 end
910
1011 def self . from_yaml_item ( hash )
@@ -16,14 +17,28 @@ def self.from_yaml_item(hash)
1617 end_time : hash [ "end_time" ] ,
1718 url : hash [ "url" ] ,
1819 group : hash [ "group" ] ,
19- status : hash [ "status" ]
20+ status : hash [ "status" ] ,
21+ service : hash [ "service" ]
2022 )
2123 end
2224
2325 def service_id
2426 AbstractEvent . service_id_for_url ( url )
2527 end
2628
29+ def detect_service ( url )
30+ return nil unless url
31+
32+ case url
33+ when /meetup\. com/
34+ "meetup"
35+ when /lu\. ma/ , /luma\. com/
36+ "luma"
37+ else
38+ nil
39+ end
40+ end
41+
2742 def to_hash
2843 hash = {
2944 "name" => name ,
@@ -35,6 +50,7 @@ def to_hash
3550 }
3651
3752 hash [ "status" ] = status if status . present?
53+ hash [ "service" ] = service if service . present?
3854
3955 hash
4056 end
0 commit comments