module Cliz

Public Instance Methods

create_index_file(url, folder_path) click to toggle source
# File lib/functions.rb, line 34
def create_index_file url, folder_path
  html = %Q{
  <!DOCTYPE html>
  <html>
    <head>
      <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
      <meta content="utf-8" http-equiv="encoding">
      <script type="text/javascript">
        window.location.replace("https://cliz.in");
      </script>
      <meta http-equiv="refresh" content="0; url='https://cliz.in'" />
    </head>
    <body>
      <p>Please follow <a href="https://cliz.in">this link</a>.</p>
    </body>
  </html>
  }

  redirect_content = html.gsub 'https://cliz.in', url
  FileUtils.mkdir_p(folder_path)

  File.open "#{folder_path}/index.html", 'w' do |f|
    f.puts redirect_content
  end
end
generate_short_suggestion(output_directory) click to toggle source
# File lib/functions.rb, line 20
def generate_short_suggestion output_directory
  counter = 0
  random_string = nil

  loop do
    random_string = SecureRandom.alphanumeric[..counter]
    folder_path =  File.join(output_directory, random_string, '/')
    break unless File.directory?(folder_path)
    counter += 1
  end

  random_string
end
get_a_folder_path(output_directory, short_suggestion = nil) click to toggle source

Gets a folder path for the shortened url

# File lib/functions.rb, line 7
def get_a_folder_path output_directory, short_suggestion = nil
  folder_path = nil

  short_suggestion ||= generate_short_suggestion output_directory
  folder_path =  File.join(output_directory, short_suggestion, '/')

  if File.directory?(folder_path)
    raise ("This short URL is already taken.")
  end

  folder_path
end
short(config, url, short_suggestion = nil) click to toggle source
# File lib/functions.rb, line 60
def short config, url, short_suggestion = nil
  output_dir = config['output_dir']
  base_domain = config['base_domain']
  deploy_script = config['deploy_script']
  pre_script = config['pre_script']

  system("sh #{pre_script}") if pre_script

  short_suggestion ||= generate_short_suggestion output_dir
  folder_path = get_a_folder_path output_dir, short_suggestion
  create_index_file(url, folder_path)

  system("sh #{deploy_script}") if deploy_script

  File.join base_domain, short_suggestion
end