class SocialMediaParser::Link
Public Class Methods
new(attrs)
click to toggle source
# File lib/social_media_parser/link.rb, line 6 def initialize(attrs) attrs.each do |k,v| instance_variable_set("@#{k}", v) unless v.nil? end end
Public Instance Methods
attributes()
click to toggle source
# File lib/social_media_parser/link.rb, line 24 def attributes { url: url, provider: provider, username: username, } end
provider()
click to toggle source
# File lib/social_media_parser/link.rb, line 16 def provider nil end
url()
click to toggle source
# File lib/social_media_parser/link.rb, line 20 def url url_from_attributes end
username()
click to toggle source
# File lib/social_media_parser/link.rb, line 12 def username nil end
Private Instance Methods
invalid_url_format?(url)
click to toggle source
# File lib/social_media_parser/link.rb, line 46 def invalid_url_format?(url) !valid_url_format url end
url_from_attributes()
click to toggle source
# File lib/social_media_parser/link.rb, line 34 def url_from_attributes valid_url_format(@url) or valid_url_format(@url_or_username) end
valid_url_format(url)
click to toggle source
# File lib/social_media_parser/link.rb, line 38 def valid_url_format(url) uri = URI.parse(url) return uri.to_s if %w(http https).include?(uri.scheme) return "http://#{url}" if PublicSuffix.valid?(URI.parse("http://#{url}").host) rescue URI::BadURIError, URI::InvalidURIError nil end