qcmd 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
- ### 0.1.8 -> 0.1.9
1
+ ### 0.1.8 to 0.1.9
2
2
 
3
- * add "alias" command to help
3
+ * add help documentation for the "alias" command
4
4
  * add "new" command to create new cues in QLab
5
5
  * add "select" command to allow selection of a given cue (by number)
6
6
  * `select 2; go` would select and start the QLab workspace at the given cue
@@ -15,4 +15,15 @@ Internals:
15
15
  * fix `-c "COMMAND"` command line option
16
16
  * various small bug fixes
17
17
 
18
+ ### 0.1.7 to 0.1.8
18
19
 
20
+ * create "alias" command to allow creation of commands from qcmd interactive interface
21
+ * add ".." (disconnect one level) command
22
+ * update location of qcmd settings and log files: `/Users/$USER/.qcmd/`
23
+ * replace CLI parser with aarongough/sexpistol
24
+ * use TCP connection and alwaysReply instead of UDP connection
25
+ * show current time and connection state in interactive mode
26
+ * persist command history across interactive qcmd sessions
27
+ * allow multiple commands separated with ";". For example,
28
+ `cue 1 name; cue 2 name` would show the names of cues 1 and 2.
29
+ * better debug logging
data/README.md CHANGED
@@ -35,7 +35,9 @@ From there, you can connect to a machine, connect to a workspace, and then
35
35
  send commands to cues and the workspace.
36
36
 
37
37
  `qcmd` supports tab completion for commands in case you get stuck or are
38
- wondering what you can do from the console.
38
+ wondering what you can do from the console. Type the beginning of a command and
39
+ hit tab to auto-complete the command, or hit it twice to see all possible
40
+ completions.
39
41
 
40
42
  Run `qcmd` with the -v option to get full debugging output. Use the main
41
43
  project repository (https://github.com/Figure53/qcmd) to report any issues.
@@ -43,95 +45,91 @@ project repository (https://github.com/Figure53/qcmd) to report any issues.
43
45
  An example session might look like this:
44
46
 
45
47
  $ qcmd
46
- .:::: .:: .::
47
- .:: .:: .:: .::
48
- .:: .::.:: .:: .::
49
- .:: .::.:: .:: .:: .:: .::
50
- .:: .::.:: .:: .:: .:: .::
51
- .:: .: .:: .:: .:: .:: .:: .::
52
- .:: :: .:::::::: .:: .:::.:: .::
53
- .:
48
+ .:::: .:: .::
49
+ .:: .:: .:: .::
50
+ .:: .::.:: .:: .::
51
+ .:: .::.:: .:: .:: .:: .::
52
+ .:: .::.:: .:: .:: .:: .::
53
+ .:: .: .:: .:: .:: .:: .:: .::
54
+ .:: :: .:::::::: .:: .:::.:: .::
55
+ .:
54
56
 
55
- qcmd 0.1.0 (c) 2012 Figure 53, Baltimore, MD.
57
+ qcmd 0.1.9 (c) 2012 Figure 53, Baltimore, MD.
56
58
 
57
59
  Found 2 QLab machines
58
60
 
59
- 1. adam-retina
60
- 2. f53zwimac
61
+ 1. my-mac-laptop
62
+ 2. f53imac
61
63
 
62
- type `connect MACHINE` to connect to a machine
64
+ Type `connect "MACHINE NAME"` or `connect IP_ADDRESS` to connect to a machine
63
65
 
64
- > connect adam-retina
65
- connecting to machine: adam-retina
66
- -------------------------------- Workspaces --------------------------------
66
+ 13:40
67
+ > connect my-mac-laptop
68
+ Connecting to machine: my-mac-laptop
69
+ Connected to machine "my-mac-laptop"
70
+ Connecting to workspace: Untitled Workspace 1
71
+ Connected to "Untitled Workspace 1"
72
+ Loaded 3 cues
73
+ 13:41 [my-mac-laptop] [Untitled Workspace 1]
74
+ > cues
67
75
 
68
- 1. Untitled Workspace
76
+ ------------------------------- Cues: Main Cue List -------------------------------
69
77
 
70
- Type `use "WORKSPACE_NAME" PASSCODE` to load a workspace. Only enter a
71
- passcode if your workspace uses one
78
+ Number Id Name Type
72
79
 
73
- adam-retina> use "Untitled Workspace"
74
- connecting to workspace: Untitled Workspace
75
- connected to workspace
76
- loaded 2 cues
77
- adam-retina:Untitled Workspace> cues
80
+ 1 1 YOP Audio
81
+ 2 2 Not Armory Audio
82
+ 3 3 BUTT Audio
78
83
 
79
- ----------------------------------- Cues -----------------------------------
80
84
 
81
- Number Id Name Type
85
+ 13:41 [my-mac-laptop] [Untitled Workspace 1]
86
+ > cue 3 name "Fix this name"
87
+ ok
88
+ 13:41 [my-mac-laptop] [Untitled Workspace 1] [3 Fix this name]
89
+ > start
90
+ ok
91
+ 13:41 [my-mac-laptop] [Untitled Workspace 1] [3 Fix this name]
92
+ > ..
93
+ 13:41 [my-mac-laptop] [Untitled Workspace 1]
94
+ > hardStop
95
+ ok
96
+ 13:41 [my-mac-laptop] [Untitled Workspace 1]
97
+ > copy-name 3 2
98
+ ok
99
+ 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name]
100
+ > cues
82
101
 
83
- 1 2 Nope Wait
84
- 2 3 Nipe Audio
102
+ ------------------------------- Cues: Main Cue List -------------------------------
85
103
 
104
+ Number Id Name Type
86
105
 
87
- adam-retina:Untitled Workspace> cue 2 start
88
- adam-retina:Untitled Workspace> cue 2 isRunning
89
- true
90
- adam-retina:Untitled Workspace> workspace runningCues
106
+ 1 1 YOP Audio
107
+ 2 2 Fix this name Audio
108
+ 3 3 Fix this name Audio
91
109
 
92
- ------------------------------- Running Cues -------------------------------
93
110
 
94
- Number Id Name Type
111
+ 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name]
112
+ > alias smiley (cue $1 name ":) :) :) :) :) :)")
113
+ Added alias for "smiley": (cue $1 name ":) :) :) :) :) :)")
114
+ 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 Fix this name]
115
+ > smiley 2
116
+ ok
117
+ 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 :) :) :) :) :) :)]
118
+ > cues
95
119
 
96
- 2 3 Nipe Audio
120
+ ------------------------------- Cues: Main Cue List -------------------------------
97
121
 
122
+ Number Id Name Type
98
123
 
99
- adam-retina:Untitled Workspace> cue 2
100
- 1 2 actionElapsed
101
- allowsEditingDuration armed basics
102
- children colorName connect
103
- continueMode cue cueLists
104
- cueTargetId cueTargetNumber disconnect
105
- duration exit flagged
106
- hasCueTargets hasFileTargets isBroken
107
- isLoaded isPaused isRunning
108
- load loadAt name
109
- notes number panic
110
- pause percentActionElapsed percentPostWaitElapsed
111
- percentPreWaitElapsed postWait postWaitElapsed
112
- preview preWait preWaitElapsed
113
- reset resume runningCues
114
- runningOrPausedCues selectedCues stop
115
- thump type uniqueID
116
- workspace workspaces
117
- adam-retina:Untitled Workspace> cue 2 pause
118
- adam-retina:Untitled Workspace> cue 2 isRunning
119
- false
120
- adam-retina:Untitled Workspace> cue 2 percentActionElapsed
121
- 0.109189204871655
122
- adam-retina:Untitled Workspace> disconnect
124
+ 1 1 YOP Audio
125
+ 2 2 :) :) :) :) :) :) Audio
126
+ 3 3 Fix this name Audio
123
127
 
124
- Found 2 QLab machines
125
-
126
- 1. adam-retina
127
- 2. f53zwimac
128
-
129
- type `connect MACHINE` to connect to a machine
130
128
 
129
+ 13:41 [my-mac-laptop] [Untitled Workspace 1] [2 :) :) :) :) :) :)]
131
130
  > exit
132
131
  exiting...
133
132
 
134
-
135
133
  ## Contributing
136
134
 
137
135
  1. Fork it
data/lib/qcmd.rb CHANGED
@@ -25,9 +25,11 @@ module Qcmd
25
25
  autoload :Network, 'qcmd/network'
26
26
  autoload :QLab, 'qcmd/qlab'
27
27
  autoload :VERSION, 'qcmd/version'
28
- autoload :Action, 'qcmd/action'
29
28
  autoload :Aliases, 'qcmd/aliases'
30
29
 
30
+ autoload :Action, 'qcmd/action'
31
+ autoload :CueAction, 'qcmd/action'
32
+
31
33
  # on launch
32
34
 
33
35
  class << self
data/lib/qcmd/action.rb CHANGED
@@ -1,164 +1,3 @@
1
- module Qcmd
2
- class Action
3
- attr_reader :code
4
-
5
- # initialize and evaluate in one shot
6
- def self.evaluate action_input
7
- is_cue_action = false
8
-
9
- if action_input.is_a?(String)
10
- is_cue_action = %w(cue cue_id).include?(action_input.split.first)
11
- else
12
- is_cue_action = ['cue', 'cue_id', :cue, :cue_id].include?(action_input.first)
13
- end
14
-
15
- if is_cue_action
16
- CueAction.new(action_input).evaluate
17
- else
18
- Action.new(action_input).evaluate
19
- end
20
- end
21
-
22
- def initialize(expression)
23
- if expression.is_a?(String)
24
- expression = Qcmd::Parser.parse(expression)
25
- end
26
-
27
- @code = parse(expression)
28
- end
29
-
30
- def evaluate
31
- if code.size == 0
32
- nil
33
- else
34
- @code = code.map do |token|
35
- if token.is_a?(Action)
36
- Qcmd.debug "[Action evaluate] evaluating nested action: #{ token.code.inspect }"
37
- token.evaluate
38
- else
39
- token
40
- end
41
- end
42
-
43
- Qcmd.debug "[Action evaluate] evaluating code: #{ code.inspect }"
44
-
45
- send_message
46
- end
47
- end
48
-
49
- def parse(expression)
50
- # unwrap nested arrays
51
- if expression.size == 1 && expression[0].is_a?(Array)
52
- expression = expression[0]
53
- end
54
-
55
- expression.map do |token|
56
- if token.is_a?(Array)
57
- if [:cue, :cue_id].include?(token.first)
58
- Qcmd.debug "nested cue action detected in #{ expression.inspect }"
59
- CueAction.new(token)
60
- else
61
- Action.new(token)
62
- end
63
- else
64
- token
65
- end
66
- end.tap {|exp|
67
- Qcmd.debug "[Action parse] returning: #{ exp.inspect }"
68
- }
69
- end
70
-
71
- # the default command builder
72
- def osc_message
73
- OSC::Message.new osc_address.to_s, *osc_arguments
74
- end
75
-
76
- def osc_address
77
- # prefix w/ slash if necessary
78
- if %r[^/] !~ code[0].to_s
79
- "/#{ code[0] }"
80
- else
81
- code[0]
82
- end
83
- end
84
-
85
- def osc_address=(value)
86
- code[0] = value
87
- end
88
-
89
- def osc_arguments
90
- stringify code[1..-1]
91
- end
92
-
93
- # the raw command
94
- def command
95
- code[0]
96
- end
97
-
98
- private
99
-
100
- def send_message
101
- responses = []
102
-
103
- Qcmd.debug "[Action send_message] send #{ osc_message.encode }"
104
- Qcmd.context.qlab.send(osc_message) do |response|
105
- # puts "response to: #{ osc_message.inspect }"
106
- # puts response.inspect
107
-
108
- responses << QLab::Reply.new(response)
109
- end
110
-
111
- if responses.size == 1
112
- q_reply = responses[0]
113
- Qcmd.debug "[Action send_message] got one response: #{q_reply.inspect}"
114
-
115
- if q_reply.has_data?
116
- q_reply.data
117
- else
118
- q_reply
119
- end
120
- else
121
- responses
122
- end
123
- end
124
-
125
- def stringify args
126
- if args.nil?
127
- nil
128
- else
129
- args.map {|arg|
130
- if arg.is_a?(Symbol)
131
- arg.to_s
132
- else
133
- arg
134
- end
135
- }
136
- end
137
- end
138
- end
139
-
140
- class CueAction < Action
141
- # cue commands work differently
142
- def command
143
- code[2]
144
- end
145
-
146
- def osc_address
147
- "/#{ code[0] }/#{ code[1] }/#{ code[2] }"
148
- end
149
-
150
- def osc_arguments
151
- stringify code[3..-1]
152
- end
153
-
154
- # cue specific fields
155
-
156
- def id_field
157
- code[0]
158
- end
159
-
160
- def identifier
161
- code[1]
162
- end
163
- end
164
- end
1
+ require 'qcmd/actions/base_action'
2
+ require 'qcmd/actions/action'
3
+ require 'qcmd/actions/cue_action'
@@ -0,0 +1,4 @@
1
+ module Qcmd
2
+ class Action < BaseAction
3
+ end
4
+ end
@@ -0,0 +1,139 @@
1
+ module Qcmd
2
+ class BaseAction
3
+ attr_reader :code
4
+
5
+ # initialize and evaluate in one shot
6
+ def self.evaluate action_input
7
+ is_cue_action = false
8
+
9
+ if action_input.is_a?(String)
10
+ is_cue_action = %w(cue cue_id).include?(action_input.split.first)
11
+ else
12
+ is_cue_action = ['cue', 'cue_id', :cue, :cue_id].include?(action_input.first)
13
+ end
14
+
15
+ if is_cue_action
16
+ CueAction.new(action_input).evaluate
17
+ else
18
+ Action.new(action_input).evaluate
19
+ end
20
+ end
21
+
22
+ def initialize(expression)
23
+ if expression.is_a?(String)
24
+ expression = Qcmd::Parser.parse(expression)
25
+ end
26
+
27
+ @code = parse(expression)
28
+ end
29
+
30
+ def evaluate
31
+ if code.size == 0
32
+ nil
33
+ else
34
+ @code = code.map do |token|
35
+ if token.is_a?(Action)
36
+ Qcmd.debug "[Action evaluate] evaluating nested action: #{ token.code.inspect }"
37
+ token.evaluate
38
+ else
39
+ token
40
+ end
41
+ end
42
+
43
+ Qcmd.debug "[Action evaluate] evaluating code: #{ code.inspect }"
44
+
45
+ send_message
46
+ end
47
+ end
48
+
49
+ def parse(expression)
50
+ # unwrap nested arrays
51
+ if expression.size == 1 && expression[0].is_a?(Array)
52
+ expression = expression[0]
53
+ end
54
+
55
+ expression.map do |token|
56
+ if token.is_a?(Array)
57
+ if [:cue, :cue_id].include?(token.first)
58
+ Qcmd.debug "nested cue action detected in #{ expression.inspect }"
59
+ CueAction.new(token)
60
+ else
61
+ Action.new(token)
62
+ end
63
+ else
64
+ token
65
+ end
66
+ end.tap {|exp|
67
+ Qcmd.debug "[Action parse] returning: #{ exp.inspect }"
68
+ }
69
+ end
70
+
71
+ # the default command builder
72
+ def osc_message
73
+ OSC::Message.new osc_address.to_s, *osc_arguments
74
+ end
75
+
76
+ def osc_address
77
+ # prefix w/ slash if necessary
78
+ if %r[^/] !~ code[0].to_s
79
+ "/#{ code[0] }"
80
+ else
81
+ code[0]
82
+ end
83
+ end
84
+
85
+ def osc_address=(value)
86
+ code[0] = value
87
+ end
88
+
89
+ def osc_arguments
90
+ stringify code[1..-1]
91
+ end
92
+
93
+ # the raw command
94
+ def command
95
+ code[0]
96
+ end
97
+
98
+ private
99
+
100
+ def send_message
101
+ responses = []
102
+
103
+ Qcmd.debug "[Action send_message] send #{ osc_message.encode }"
104
+ Qcmd.context.qlab.send(osc_message) do |response|
105
+ # puts "response to: #{ osc_message.inspect }"
106
+ # puts response.inspect
107
+
108
+ responses << QLab::Reply.new(response)
109
+ end
110
+
111
+ if responses.size == 1
112
+ q_reply = responses[0]
113
+ Qcmd.debug "[Action send_message] got one response: #{q_reply.inspect}"
114
+
115
+ if q_reply.has_data?
116
+ q_reply.data
117
+ else
118
+ q_reply
119
+ end
120
+ else
121
+ responses
122
+ end
123
+ end
124
+
125
+ def stringify args
126
+ if args.nil?
127
+ nil
128
+ else
129
+ args.map {|arg|
130
+ if arg.is_a?(Symbol)
131
+ arg.to_s
132
+ else
133
+ arg
134
+ end
135
+ }
136
+ end
137
+ end
138
+ end
139
+ end
@@ -0,0 +1,27 @@
1
+ module Qcmd
2
+ class CueAction < Action
3
+ # cue commands work differently
4
+ def command
5
+ code[2]
6
+ end
7
+
8
+ def osc_address
9
+ "/#{ code[0] }/#{ code[1] }/#{ code[2] }"
10
+ end
11
+
12
+ def osc_arguments
13
+ stringify code[3..-1]
14
+ end
15
+
16
+ # cue specific fields
17
+
18
+ def id_field
19
+ code[0]
20
+ end
21
+
22
+ def identifier
23
+ code[1]
24
+ end
25
+ end
26
+ end
27
+
data/lib/qcmd/cli.rb CHANGED
@@ -36,12 +36,9 @@ module Qcmd
36
36
  handle_input Qcmd::Parser.parse(options[:command])
37
37
  return
38
38
  end
39
- elsif Qcmd.context.machine.workspaces.size == 1 &&
40
- !Qcmd.context.machine.workspaces.first.passcode? &&
41
- !Qcmd.context.workspace_connected?
42
- if !connect_default_workspace
43
- Handler.print_workspace_list
44
- end
39
+ elsif !connect_default_workspace
40
+ Handler.print_workspace_list
41
+ # end
45
42
  end
46
43
  end
47
44
 
@@ -385,7 +382,7 @@ module Qcmd
385
382
  workspace_command = args[1]
386
383
 
387
384
  if !Qcmd.context.workspace_connected?
388
- handle_failed_workspace_command cli_input
385
+ handle_failed_workspace_command args
389
386
  return
390
387
  end
391
388
 
@@ -402,7 +399,7 @@ module Qcmd
402
399
 
403
400
  when 'cues'
404
401
  if !Qcmd.context.workspace_connected?
405
- handle_failed_workspace_command cli_input
402
+ handle_failed_workspace_command args
406
403
  return
407
404
  end
408
405
 
@@ -425,7 +422,7 @@ module Qcmd
425
422
  # id_field = $1
426
423
 
427
424
  if !Qcmd.context.workspace_connected?
428
- handle_failed_workspace_command cli_input
425
+ handle_failed_workspace_command args
429
426
  return
430
427
  end
431
428
 
@@ -525,14 +522,17 @@ module Qcmd
525
522
  elsif Qcmd.context.cue_connected? && Qcmd::InputCompleter::ReservedCueWords.include?(command)
526
523
  # prepend the given command with a cue address
527
524
  if Qcmd.context.cue.number.nil? || Qcmd.context.cue.number.size == 0
528
- command = "cue_id/#{ Qcmd.context.cue.id }/#{ command }"
525
+ command_args = [:cue_id, Qcmd.context.cue.id, command]
529
526
  else
530
- command = "cue/#{ Qcmd.context.cue.number }/#{ command }"
527
+ command_args = [:cue, Qcmd.context.cue.number, command]
531
528
  end
532
529
 
533
- args = [command].push(*args[1..-1])
530
+ # add the rest of the given args
531
+ Qcmd.debug "adding #{args[1..-1].inspect} to #{ command_args.inspect }"
532
+ command_args.push(*args[1..-1])
534
533
 
535
- cue_action = Qcmd::CueAction.new(args)
534
+ Qcmd.debug "creating cue action with #{command_args.inspect}"
535
+ cue_action = Qcmd::CueAction.new(command_args)
536
536
 
537
537
  reply = cue_action.evaluate
538
538
  handle_simple_reply reply
@@ -568,6 +568,7 @@ module Qcmd
568
568
  end
569
569
 
570
570
  def handle_failed_workspace_command command
571
+ command = command.join ' '
571
572
  print_wrapped(%[The command, "#{ command }" can't be processed yet. you must
572
573
  first connect to a machine and a workspace
573
574
  before issuing other commands.])
@@ -613,7 +614,7 @@ module Qcmd
613
614
  end
614
615
 
615
616
  def fixate_on_cue cue_action
616
- # fixate on cue
617
+ # fixate on the cue which is the subject of the given action
617
618
  if Qcmd.context.workspace.has_cues?
618
619
  _cue = Qcmd.context.workspace.cues.find {|cue|
619
620
  case cue_action.id_field
@@ -649,8 +650,12 @@ module Qcmd
649
650
  end
650
651
 
651
652
  def connect_default_workspace
652
- if Qcmd.context.machine.workspaces.size == 1 && !Qcmd.context.machine.workspaces.first.passcode?
653
+ connectable = Qcmd.context.machine.workspaces.size == 1 &&
654
+ !Qcmd.context.machine.workspaces.first.passcode? &&
655
+ !Qcmd.context.workspace_connected?
656
+ if connectable
653
657
  connect_to_workspace_by_index(0, nil)
658
+
654
659
  true
655
660
  else
656
661
  false
@@ -52,16 +52,21 @@ module OSC
52
52
 
53
53
  send_char CHAR_END
54
54
 
55
+ # puts "[TCPClient] sent message: #{ enc_msg.inspect }"
56
+
55
57
  if block_given? || @handler
56
58
  messages = response
57
59
  if !messages.nil?
58
60
  messages.each do |message|
61
+ # puts "[TCPClient] got message #{ message }"
59
62
  if block_given?
60
63
  yield message
61
64
  else
62
65
  @handler.handle message
63
66
  end
64
67
  end
68
+ else
69
+ # puts "[TCPClient] response is nil"
65
70
  end
66
71
  end
67
72
  end
data/lib/qcmd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Qcmd
2
- VERSION = "0.1.9"
2
+ VERSION = "0.1.10"
3
3
  end
data/qcmd.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
10
10
  gem.email = ["adam.bachman@gmail.com"]
11
11
  gem.description = %q{A simple interactive QLab 3 command line controller}
12
12
  gem.summary = %q{QLab 3 console}
13
- gem.homepage = "https://github.com/abachman/qcmd"
13
+ gem.homepage = "https://github.com/Figure53/qcmd"
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -11,4 +11,9 @@ describe Qcmd::CLI do
11
11
  Qcmd::CLI.should_receive :new
12
12
  Qcmd::CLI.launch
13
13
  end
14
+
15
+ describe 'handling input' do
16
+ it 'should evaluate cue commands' do
17
+ end
18
+ end
14
19
  end
@@ -38,22 +38,27 @@ describe Qcmd::Commands do
38
38
 
39
39
  describe 'machine commands' do
40
40
  it 'should not raise errors' do
41
+ Qcmd.context.machine_connected?.should be_true
41
42
  test_log
42
43
 
43
44
  Qcmd::Commands::MACHINE.each do |machine_command|
44
45
  expect {
45
- osc_message = OSC::Message.new "/#{ machine_command }"
46
+ osc_message = OSC::Message.new "/#{ machine_command }", 1
46
47
 
47
48
  reply = nil
48
49
 
50
+ test_log "[machine_command] sending #{ machine_command } - #{ osc_message.address } #{ osc_message.to_a.inspect }"
51
+
49
52
  # should be able to instantiate all OSC message reponses as QLab replies
50
53
  Qcmd.context.qlab.send(osc_message) do |response|
54
+ # test_log "[machine command] response: #{ response.inspect }"
51
55
  reply = Qcmd::QLab::Reply.new(response)
52
56
  # test_log "[machine command] #{ reply.address } got #{ reply.to_s }"
53
57
  end
54
58
 
55
- test_log reply.address
56
59
  reply.should_not be_nil
60
+ # test_log reply.address
61
+
57
62
  }.to_not raise_error
58
63
  end
59
64
  end
@@ -122,6 +127,8 @@ describe Qcmd::Commands do
122
127
  Qcmd.context.qlab.send(osc_message) do |response|
123
128
  reply = Qcmd::QLab::Reply.new(response)
124
129
  @cue = Qcmd::QLab::Cue.new(reply.data.first['cues'].first)
130
+
131
+ test_log "pulling cue from data: #{ reply.data.inspect }"
125
132
  end
126
133
  end
127
134
 
@@ -132,7 +139,11 @@ describe Qcmd::Commands do
132
139
 
133
140
  Qcmd::Commands::CUE.each do |cue_command|
134
141
  expect {
135
- osc_message = OSC::Message.new "/workspace/#{workspace.id}/cue/#{ @cue.number }/#{ cue_command }"
142
+ test_log "using cue #{ @cue } : #{ @cue.data }"
143
+ cmd = "/workspace/#{workspace.id}/cue/#{ @cue.number }/#{ cue_command }"
144
+
145
+ test_log "sending #{ cmd }"
146
+ osc_message = OSC::Message.new cmd
136
147
 
137
148
  osc_response = nil
138
149
  reply = nil
@@ -146,7 +157,7 @@ describe Qcmd::Commands do
146
157
  test_log reply.address
147
158
  reply.should_not be_nil
148
159
  rescue => ex
149
- puts "reply access fail '#{ ex.message }' on response #{ osc_response.inspect }"
160
+ test_log "reply access fail '#{ ex.message }' on response #{ osc_response.inspect }"
150
161
  raise
151
162
  end
152
163
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qcmd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-23 00:00:00.000000000 Z
12
+ date: 2013-05-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dnssd
@@ -142,6 +142,9 @@ files:
142
142
  - features/support/setup.rb
143
143
  - lib/qcmd.rb
144
144
  - lib/qcmd/action.rb
145
+ - lib/qcmd/actions/action.rb
146
+ - lib/qcmd/actions/base_action.rb
147
+ - lib/qcmd/actions/cue_action.rb
145
148
  - lib/qcmd/aliases.rb
146
149
  - lib/qcmd/cli.rb
147
150
  - lib/qcmd/commands.rb
@@ -179,7 +182,7 @@ files:
179
182
  - spec/unit/parser_spec.rb
180
183
  - spec/unit/qcmd_spec.rb
181
184
  - spec/unit/qlab_spec.rb
182
- homepage: https://github.com/abachman/qcmd
185
+ homepage: https://github.com/Figure53/qcmd
183
186
  licenses: []
184
187
  post_install_message:
185
188
  rdoc_options: []