Class: Jekyll::BitlyFilterCache

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-bitly/bitly_filter.rb

Constant Summary collapse

@@instance =

rubocop:disable Style/ClassVars

BitlyFilterCache.new

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBitlyFilterCache

Returns a new instance of BitlyFilterCache.



5
6
7
8
9
10
11
12
# File 'lib/jekyll-bitly/bitly_filter.rb', line 5

def initialize
  @result_cache = {}
  config = Jekyll.configuration({})
  return nil unless config && config["bitly"] && config["bitly"]["username"]
  @username = config["bitly"]["username"]
  @key = config["bitly"]["api_key"]
  Bitly.use_api_version_3
end

Class Method Details

.instanceObject



17
18
19
# File 'lib/jekyll-bitly/bitly_filter.rb', line 17

def self.instance
  @@instance
end

Instance Method Details

#shorten(input) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/jekyll-bitly/bitly_filter.rb', line 21

def shorten(input)
  input.strip!
  return input unless @username
  return @result_cache[input] if @result_cache.key?(input)
  bitly = Bitly.new(@username, @key)
  u = bitly.shorten(input, history: 1)
  @result_cache[input] = u.short_url
  u.short_url
end