Class: LinkPreview::URI
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- LinkPreview::URI
- Defined in:
- lib/link_preview/uri.rb
Class Method Summary collapse
- .escape(uri) ⇒ Object
- .parse(uri, options = {}) ⇒ Object
- .safe_escape(uri) ⇒ Object
- .unescape(uri) ⇒ Object
Instance Method Summary collapse
- #as_content_uri ⇒ Object
- #as_oembed_uri ⇒ Object
- #for_display ⇒ Object
-
#initialize(addressable_uri, options) ⇒ URI
constructor
A new instance of URI.
- #kaltura_uri? ⇒ Boolean
- #normalize ⇒ Object
- #oembed_uri? ⇒ Boolean
- #to_absolute(reference_uri) ⇒ Object
Constructor Details
#initialize(addressable_uri, options) ⇒ URI
Returns a new instance of URI.
45 46 47 48 49 50 51 52 53 |
# File 'lib/link_preview/uri.rb', line 45 def initialize(addressable_uri, ) super addressable_uri = if kaltura_uri? merge_query(kaltura_query) elsif merge_query() end end |
Class Method Details
.escape(uri) ⇒ Object
97 98 99 |
# File 'lib/link_preview/uri.rb', line 97 def escape(uri) Addressable::URI.escape(uri, Addressable::URI) end |
.parse(uri, options = {}) ⇒ Object
88 89 90 91 |
# File 'lib/link_preview/uri.rb', line 88 def parse(uri, = {}) return unless uri new(Addressable::URI.parse(safe_escape(uri)), ).normalize end |
.safe_escape(uri) ⇒ Object
101 102 103 104 105 106 107 108 109 |
# File 'lib/link_preview/uri.rb', line 101 def safe_escape(uri) parsed_uri = Addressable::URI.parse(uri) unescaped = unescape(parsed_uri) if unescaped.to_s == parsed_uri.to_s escape(parsed_uri) else parsed_uri end end |
.unescape(uri) ⇒ Object
93 94 95 |
# File 'lib/link_preview/uri.rb', line 93 def unescape(uri) Addressable::URI.unescape(uri, Addressable::URI) end |
Instance Method Details
#as_content_uri ⇒ Object
68 69 70 71 72 |
# File 'lib/link_preview/uri.rb', line 68 def as_content_uri return self unless kaltura_uri? || return self unless query_values['url'] self.class.parse(query_values['url'], ) end |
#as_oembed_uri ⇒ Object
61 62 63 64 65 66 |
# File 'lib/link_preview/uri.rb', line 61 def return self if kaltura_uri? || return unless self.class.parse(.build(to_s), ) end |
#for_display ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/link_preview/uri.rb', line 79 def for_display path.sub!(%r{/\z}, '') self.path = nil if path.blank? self.query = nil if query.blank? self.fragment = nil if fragment.blank? self end |
#kaltura_uri? ⇒ Boolean
116 117 118 |
# File 'lib/link_preview/uri.rb', line 116 def kaltura_uri? query_values.present? && query_values['playerId'] && query_values['entryId'] end |
#normalize ⇒ Object
55 56 57 58 59 |
# File 'lib/link_preview/uri.rb', line 55 def normalize super normalize_path self end |
#oembed_uri? ⇒ Boolean
112 113 114 |
# File 'lib/link_preview/uri.rb', line 112 def query_values.present? && path =~ /oembed/i && query_values['url'] end |
#to_absolute(reference_uri) ⇒ Object
74 75 76 77 |
# File 'lib/link_preview/uri.rb', line 74 def to_absolute(reference_uri) return self if absolute? self.class.parse(::URI.join(reference_uri, path), ) end |