Sha256: c2a0084e093eeab71006939cfc95645964fcc8e801289d87f3afb99e18b195c6
Contents?: true
Size: 995 Bytes
Versions: 1
Compression:
Stored size: 995 Bytes
Contents
require 'public_suffix' require 'uri' module SocialParser class Link def initialize(attrs) attrs.each do |key, value| instance_variable_set("@#{key}", value) unless value.nil? end end def username nil end def provider nil end def id nil end def embed_url nil end def url url_from_attributes end def attributes { url: url, provider: provider, username: username } end private def url_from_attributes valid_url_format(@url) or valid_url_format(@url_or_username) end 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 def invalid_url_format?(url) !valid_url_format(url) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
social_parser-1.1.0 | lib/social_parser/link.rb |