Module: Html2rss::Utils

Defined in:
lib/html2rss/utils.rb

Overview

The collecting tank for utility methods.

Class Method Summary collapse

Class Method Details

.build_absolute_url_from_relative(url, base_url) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/html2rss/utils.rb', line 11

def self.build_absolute_url_from_relative(url, base_url)
  url = URI(url) if url.is_a?(String)

  return url if url.absolute?

  URI(base_url).tap do |uri|
    uri.path = url.path.to_s.start_with?('/') ? url.path : "/#{url.path}"
    uri.query = url.query
    uri.fragment = url.fragment if url.fragment
  end
end

.get_class_from_name(snake_cased_name, module_name) ⇒ Object



27
28
29
30
31
# File 'lib/html2rss/utils.rb', line 27

def self.get_class_from_name(snake_cased_name, module_name)
  camel_cased_name = snake_cased_name.split('_').map(&:capitalize).join
  class_name = ['Html2rss', module_name, camel_cased_name].join('::')
  Object.const_get(class_name)
end

.object_to_xml(object) ⇒ Object



23
24
25
# File 'lib/html2rss/utils.rb', line 23

def self.object_to_xml(object)
  object.to_xml(skip_instruct: true, skip_types: true)
end

.sanitize_url(url) ⇒ Object



33
34
35
36
37
38
# File 'lib/html2rss/utils.rb', line 33

def self.sanitize_url(url)
  squished_url = url.to_s.split(' ').join
  return if squished_url.to_s == ''

  Addressable::URI.parse(squished_url).normalize.to_s
end