class Gigawatt::Cache

Public Class Methods

new(settings, access_key) click to toggle source
# File lib/gigawatt/cache.rb, line 3
def initialize(settings, access_key)
  @access_key = access_key
  @settings = settings
end

Public Instance Methods

companies(indexed = false) click to toggle source
# File lib/gigawatt/cache.rb, line 32
def companies(indexed = false)
  if @settings.companies.nil?
    @settings.companies = fetch_companies
    @settings.write(:companies)
  end
  return @settings.companies unless indexed
  companies = {}
  @settings.companies.each do |c|
    companies[c["uuid"]] = c
  end
  companies
end
fetch_companies() click to toggle source
# File lib/gigawatt/cache.rb, line 8
def fetch_companies
  companies = JSON.parse(@access_key.get('/api/1/companies.json').body)
  companies["response"]
end
fetch_projects() click to toggle source
# File lib/gigawatt/cache.rb, line 13
def fetch_projects
  projects = JSON.parse(@access_key.get("/api/1/projects.json?where=#{URI::encode('active="true"')}").body)
  projects["response"]
end
fetch_staff() click to toggle source
# File lib/gigawatt/cache.rb, line 18
def fetch_staff
  staff = JSON.parse(@access_key.get("/api/1/staff.json").body)
  staff["response"]
end
projects(indexed = false) click to toggle source
# File lib/gigawatt/cache.rb, line 45
def projects(indexed = false)
  if @settings.projects.nil?
    @settings.projects = fetch_projects
    @settings.write(:projects)
  end
  return @settings.projects unless indexed
  projects = {}
  @settings.projects.each do |p|
    projects[p["uuid"]] = p
  end
  projects
end
refresh!() click to toggle source
# File lib/gigawatt/cache.rb, line 23
def refresh!
  @settings.companies = nil
  @settings.projects = nil
  @settings.staff = nil
  companies
  projects
  staff
end
staff(indexed = false) click to toggle source
# File lib/gigawatt/cache.rb, line 58
def staff(indexed = false)
  if @settings.staff.nil?
    @settings.staff = fetch_staff
    @settings.write(:staff)
  end
  return @settings.staff unless indexed
  staff = {}
  @settings.staff.each do |s|
    staff[s["uuid"]] = s
  end
  staff
end