lib/html2rss/utils.rb in html2rss-0.8.1 vs lib/html2rss/utils.rb in html2rss-0.8.2
- old
+ new
@@ -1,40 +1,40 @@
require 'active_support/core_ext/hash'
+require 'addressable/uri'
require 'builder'
-require 'hashie'
require 'json'
require 'nokogiri'
module Html2rss
##
# The collecting tank for utility methods.
module Utils
- ##
- # A Hash with indifferent access, build with {https://github.com/intridea/hashie Hashie}.
- class IndifferentAccessHash < Hash
- include Hashie::Extensions::MergeInitializer
- include Hashie::Extensions::IndifferentAccess
- end
-
- def self.build_absolute_url_from_relative(url, channel_url)
+ def self.build_absolute_url_from_relative(url, base_url)
url = URI(url) if url.is_a?(String)
return url if url.absolute?
- URI(channel_url).tap do |uri|
+ 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
- def self.hash_to_xml(hash)
- hash.to_xml(skip_instruct: true, skip_types: true)
+ def self.object_to_xml(object)
+ object.to_xml(skip_instruct: true, skip_types: true)
end
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
+
+ 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
end
end