Sha256: 00eb3cbf33e0cebf614f4f532f8059b7e76a7696531a19b2a4539b2fff72e8a2
Contents?: true
Size: 958 Bytes
Versions: 2
Compression:
Stored size: 958 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 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
social_parser-1.0.8 | lib/social_parser/link.rb |
social_parser-1.0.7 | lib/social_parser/link.rb |