module UrlUtils

Public Instance Methods

get_domain(url) click to toggle source
# File lib/url_utils.rb, line 18
def get_domain(url)
        remove_extra_paths(url)
end
make_absolute(potential_base, relative_url) click to toggle source
# File lib/url_utils.rb, line 6
def make_absolute(potential_base, relative_url)
        if relative_url.match(/^\//)
                create_absolute_url_from_base(potential_base, relative_url)
        else
                create_absolute_url_from_context(potential_base, relative_url)
        end
end
relative?(url) click to toggle source
# File lib/url_utils.rb, line 2
def relative?(url)
        !url.match(/^http/)
end
urls_on_same_domain?(url1, url2) click to toggle source
# File lib/url_utils.rb, line 14
def urls_on_same_domain?(url1, url2)
        get_domain(url1) == get_domain(url2)
end

Private Instance Methods

create_absolute_url_from_base(potential_base, relative_url) click to toggle source
# File lib/url_utils.rb, line 24
def create_absolute_url_from_base(potential_base, relative_url)
        remove_extra_paths(potential_base) + relative_url
end
create_absolute_url_from_context(potential_base, relative_url) click to toggle source
# File lib/url_utils.rb, line 38
def create_absolute_url_from_context(potential_base, relative_url)
        absolute_url = nil
        if potential_base.match(/\/$/)
                absolute_url = potential_base+relative_url
        else
                last_index_of_slash = potential_base.rindex('/')
                if potential_base[last_index_of_slash-2,2] == ':/'
                        absolute_url = potential_base + '/' + relative_url
                else
                        last_index_of_dot = potential_base.rindex('.')
                        if last_index_of_dot < last_index_of_slash
                                absolute_url = potential_base + '/' + relative_url
                        else
                                absolute_url = potential_base[0, last_index_of_slash+1] + relative_url
                        end
                end
        end
        absolute_url
end
remove_extra_paths(potential_base) click to toggle source
# File lib/url_utils.rb, line 28
def remove_extra_paths(potential_base)
        index_to_start_slash_search = potential_base.index('://')+3
        index_of_first_relevant_slash = potential_base.index('/',index_to_start_slash_search)
        if index_of_first_relevant_slash != nil
                potential_base[0, index_of_first_relevant_slash]
        else
                potential_base
        end
end