module UrlLink
Constants
- URL_PATTERN
- YOUTUBE_HOST_PATTERN
Public Instance Methods
Source
# File lib/url_link.rb, line 34 def bot_command?(text, prefix: "!") text.to_s.strip.start_with?(prefix) end
Source
# File lib/url_link.rb, line 22 def extract_first_url(text) match = text.to_s.match(URL_PATTERN) return nil unless match candidate = normalize_url(match[0]) valid_url?(candidate) ? candidate : nil end
Source
# File lib/url_link.rb, line 18 def normalize_url(url) url.to_s.strip.sub(/[),.;!?]+$/, "") end
Source
# File lib/url_link.rb, line 30 def reserved_url?(url) url.to_s.match?(YOUTUBE_HOST_PATTERN) end
Source
# File lib/url_link.rb, line 38 def strip_bot_prefix(text, prefix: "!") stripped = text.to_s.strip return stripped unless stripped.start_with?(prefix) stripped.delete_prefix(prefix).strip end
Source
# File lib/url_link.rb, line 11 def valid_url?(url) uri = URI.parse(url.to_s.strip) uri.is_a?(URI::HTTP) && !uri.host.to_s.empty? rescue URI::InvalidURIError false end