Sha256: 7b6c13e109ba18b590e91d027b25080c73593f2323786ff58ebb47a126ccb6e0

Contents?: true

Size: 947 Bytes

Versions: 12

Compression:

Stored size: 947 Bytes

Contents

require File.expand_path(File.join(File.dirname(__FILE__), 'cache'))
require File.expand_path(File.join(File.dirname(__FILE__), 'collector.rb'))
require 'digest/md5'
require 'json'
require 'httparty'

module Dboard
  class Api
    MAX_CACHE_TIME = 3600 # seconds
    @@version = nil

    class Client
      include HTTParty
    end

    def self.get(params)
      types = {}
      params[:types].split(',').each do |type|
        raw_data = CACHE.get("dashboard::source::#{type}")
        data = raw_data ? JSON.parse(raw_data) : {}
        types.merge!(type => { :data => data, :checksum => Digest::MD5.hexdigest(data.inspect) })
      end
      { :version => (@@version || ENV["COMMIT_HASH"] || "unversioned"), :sources => types }.to_json
    end

    def self.version=(version)
      @@version = version
    end

    def self.update(params)
      CACHE.set "dashboard::source::#{params[:type]}", params[:data], MAX_CACHE_TIME
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
dboard-1.1.0 lib/api.rb
dboard-1.0.5 lib/api.rb
dboard-1.0.4 lib/api.rb
dboard-1.0.3 lib/api.rb
dboard-1.0.2 lib/api.rb
dboard-1.0.1 lib/api.rb
dboard-1.0.0 lib/api.rb
dboard-0.0.5 lib/api.rb
dboard-0.0.4 lib/api.rb
dboard-0.0.3 lib/api.rb
dboard-0.0.2 lib/api.rb
dboard-0.0.1 lib/api.rb