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