class WechatGate::Tokens::Base

Public Class Methods

new(config) click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 13
def initialize config
  @config = config
end
refresh(config) click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 8
def self.refresh config
  handler = new(config)
  handler.run
end

Public Instance Methods

expired_in() click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 22
def expired_in
  7100
end
run() click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 17
def run
  fetch if is_expired?
  File.readlines(saved_file).first.chomp.split(' ').last
end

Protected Instance Methods

save(response) click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 31
def save response
  raise "need to implement #save method in sub-class"
end
url() click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 27
def url
  raise "need to implement #ur method in sub-class"
end

Private Instance Methods

fetch() click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 36
def fetch
  WechatGate::Request.send(url) do |response|
    save response
    response
  end
end
is_expired?() click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 48
def is_expired?
  if File.exists?(saved_file)
    line = File.readlines(saved_file).first
    unless line
      return true
    else
      line = line.chomp
      return Time.now.to_i - line.split(' ').first.to_i >= expired_in
    end
  else
    FileUtils.touch(saved_file)
    return true
  end
end
saved_file() click to toggle source
# File lib/wechat_gate/tokens/base.rb, line 43
def saved_file
  # File.expand_path("../../../../data/APP-#{@config.app_name}-#{self.class.name}", __FILE__)
  "/tmp/APP-#{@config.app_name}-#{self.class.name}-#{@config.config['app_id']}"
end