Slide 38
Slide 38 text
PATTERNS = {
%r{youtube\.com/watch\?v=(?[\w-]{11})} => :video,
%r{youtu\.be/(?[\w-]{11})} => :video,
%r{youtube\.com/channel/(?UC[\w-]{22})} => :channel,
%r{youtube\.com/(?[\w-]+)} => :channel,
%r{youtube\.com/playlist/\?list=(?UC[\w-]+)} => :playlist,
}
PATTERNS.find(-> { {type: :unknown} }) do |regex, type|
break $~.named_captures.merge(type: type) if text.match(regex)
end
Using Enumerable#find and break