class QLab::Workspace
“uniqueID”: string, “displayName”: string “hasPasscode”: number
Attributes
data[RW]
passcode[RW]
Public Class Methods
new(data, machine)
click to toggle source
Load a workspace with the attributes given in ‘data`
# File lib/qlab-ruby/workspace.rb, line 11 def initialize data, machine @machine = machine self.data = data end
Public Instance Methods
connection()
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 26 def connection @machine.connection end
cue_lists()
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 53 def cue_lists refresh @cue_lists end
cues()
click to toggle source
all cues in this workspace in a flat list
# File lib/qlab-ruby/workspace.rb, line 43 def cues cue_lists.map do |cl| load_cues(cl, []) end.flatten.compact end
find_cue(params={})
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 80 def find_cue params={} cues.find do |cue| matches = true # match each key to the given cue params.keys.each do |key| matches = matches && (cue.send(key.to_sym) == params[key]) end matches end end
has_cues?()
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 49 def has_cues? cues.size > 0 end
id()
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 38 def id data['uniqueID'] end
name()
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 30 def name data['displayName'] end
passcode?()
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 34 def passcode? !!data['hasPasscode'] end
refresh()
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 58 def refresh if passcode? if passcode.nil? raise WorkspaceConnectionError.new("Workspace '#{ name }' requires a passcode.") end args = [workspace_command('connect'), ('%04i' % passcode)] else args = [workspace_command('connect')] end connect_response = send_message(*args) if connect_response == 'ok' @cue_lists = [] cues_response = send_message workspace_command('cueLists') cues_response.each do |cuelist| @cue_lists << QLab::CueList.new(cuelist, self) end end end
Private Instance Methods
load_cues(parent_cue, cues)
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 99 def load_cues parent_cue, cues parent_cue.cues.each {|child_cue| cues << child_cue load_cues child_cue, cues } cues end
workspace_command(command)
click to toggle source
# File lib/qlab-ruby/workspace.rb, line 95 def workspace_command command "/workspace/#{id}/#{ command }" end