class Middleman::TwitterOembed::Interface
Public Class Methods
new(options = {})
click to toggle source
# File lib/middleman-twitter-oembed/interface.rb, line 5 def initialize(options = {}) @use_cache = options[:use_cache] || true @cache_dir = options[:cache_dir] || "./caches/twitter_oembed" @omit_script = options[:omit_script] || false @result_cache = {} end
Public Instance Methods
get_tweet(status_id)
click to toggle source
# File lib/middleman-twitter-oembed/interface.rb, line 12 def get_tweet(status_id) return @result_cache[status_id] if @result_cache.has_key?(status_id) return @result_cache[status_id] = load_cache(status_id) if @use_cache && File.exist?(cache_filename(status_id)) url = "https://api.twitter.com/1/statuses/oembed.json?id=#{h(status_id)}" url += "&omit_script=true" if @omit_script begin require 'open-uri' require 'json' res = JSON.parse(open(url).read) ## yet to rescue end @result_cache[status_id] = res save_cache(status_id, res) if @use_cache return res end
Private Instance Methods
cache_filename(status_id)
click to toggle source
# File lib/middleman-twitter-oembed/interface.rb, line 32 def cache_filename(status_id) File.join(@cache_dir, status_id) end
load_cache(status_id)
click to toggle source
# File lib/middleman-twitter-oembed/interface.rb, line 35 def load_cache(status_id) Marshal.load(File.read(cache_filename(status_id))) end
save_cache(status_id, res)
click to toggle source
# File lib/middleman-twitter-oembed/interface.rb, line 38 def save_cache(status_id, res) dir = File.dirname(cache_filename(status_id)) require 'fileutils' FileUtils.mkdir_p(dir) unless File.exists?(dir) File.open(cache_filename(status_id), 'wb'){|f| f.write(Marshal.dump(res))} end