class WinkScheduler::Client

Public Class Methods

new(conf, logger) click to toggle source
# File lib/wink_scheduler/client.rb, line 6
def initialize(conf, logger)
  @auth = conf["auth"]
  @schedules = conf["schedules"]
  @logger = logger

  Winker.configure do |wink|
    wink.client_id     = @auth["client_id"]
    wink.client_secret = @auth["client_secret"]
    wink.access_token  = @auth["access_token"]
    wink.refresh_token = @auth["refresh_token"]
    wink.username      = @auth["client_id"]
    wink.password      = @auth["client_secret"]
    wink.endpoint      = "https://winkapi.quirky.com"
    if wink.respond_to?(:logger)
      wink.logger = nil
    end
  end
end

Public Instance Methods

run() click to toggle source
# File lib/wink_scheduler/client.rb, line 25
def run
  threads = []
  devices = Winker.devices
  groups = Winker.groups
  context = { :devices => devices, :groups => groups, :logger => @logger }
  @schedules.each do |s|
    threads << Thread.new do
      w = WinkScheduler::Schedule.new(context, s)
      w.run
    end
  end
  threads.each {|t| t.join}
end