Skip to content

Instantly share code, notes, and snippets.

@stevenkaras
Last active August 29, 2015 14:00
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save stevenkaras/cd7d72ec2d91783dd418 to your computer and use it in GitHub Desktop.
Environment variable based URL helper
class URLHelpers::Env
include ActionController::UrlFor
include Sprockets::Rails::Helper
include Rails.application.routes.url_helpers
def self.config
Rails.application.config
end
def self.app
Rails.application
end
self.debug_assets = config.assets.debug
self.digest_assets = config.assets.digest
self.assets_prefix = config.assets.prefix
self.assets_environment = app.assets
manifest_assets_path = File.join(config.paths['public'].first, config.assets.prefix)
self.assets_manifest = Sprockets::Manifest.new(app.assets, manifest_assets_path, config.assets.manifest)
class MockRequest
def initialize(url_helper)
@urls = url_helper
end
def host
case Rails.env
when "development"
"localhost"
else
ENV["PUBLIC_HOSTNAME"]
end
end
def optional_port
case Rails.env
when "development"
5100
else
ENV["PUBLIC_PORT"]
end
end
def protocol
"http"
end
def symbolized_path_parameters
{}
end
def base_url
@urls.root_url
end
end
def request
@request_mock ||= MockRequest.new(self)
end
def env
Rails.env
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment