class LinkShortener::Main

Public Class Methods

new(url) click to toggle source
# File lib/link_shortener/main.rb, line 8
def initialize(url)
  @url = url.to_s
end

Public Instance Methods

call() click to toggle source
# File lib/link_shortener/main.rb, line 12
def call
  return nil if @url.blank? || !valid_url?
  check_env!

  LinkShortener::Rebrandly.new(@url).call
end

Private Instance Methods

check_env!() click to toggle source
# File lib/link_shortener/main.rb, line 28
def check_env!
  raise 'Rebrandly api key not defined in .env' if ENV['REBRANDLY_API_KEY'].blank?
end
valid_url?() click to toggle source
# File lib/link_shortener/main.rb, line 21
def valid_url?
  parsed = Addressable::URI.parse(@url)
  %w[http https].include?(parsed.scheme) && parsed.domain.present?
rescue
  nil
end