Sha256: 82149401d3b1f303bef3a2e0beafa22a2e52483ab19f2634ad4b471db3499600
Contents?: true
Size: 1003 Bytes
Versions: 1
Compression:
Stored size: 1003 Bytes
Contents
class Shortener::ShortenedUrlsController < ActionController::Base # find the real link for the shortened link key and redirect def show # only use the leading valid characters token = /^([#{Shortener.key_chars.join}]*).*/.match(params[:id])[1] # pull the link out of the db sl = ::Shortener::ShortenedUrl.unexpired.where(unique_key: token).first if sl # don't want to wait for the increment to happen, make it snappy! # this is the place to enhance the metrics captured # for the system. You could log the request origin # browser type, ip address etc. Thread.new do sl.increment!(:use_count) ActiveRecord::Base.connection.close end # do a 301 redirect to the destination url redirect_to sl.url, status: :moved_permanently else # if we don't find the shortened link, redirect to the root # make this configurable in future versions redirect_to Shortener.default_redirect end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shortener-0.5.2 | app/controllers/shortener/shortened_urls_controller.rb |