module Locomotive module ActionController module UrlHelpers extend ActiveSupport::Concern included do helper_method :current_site_public_url, :switch_to_site_url, :public_page_url end def current_site_public_url request.protocol + request.host_with_port end def switch_to_site_url(site, options = {}) options = { :fullpath => true, :protocol => true }.merge(options) url = "#{site.subdomain}.#{Locomotive.config.domain}" url += ":#{request.port}" if request.port != 80 url = File.join(url, request.fullpath) if options[:fullpath] url = "http://#{url}" if options[:protocol] url end def public_page_url(page, options = {}) if content = options.delete(:content) File.join(current_site_public_url, page.fullpath.gsub('content_type_template', ''), content._slug) else File.join(current_site_public_url, page.fullpath) end end end end end