qcmd 0.1.12 → 0.1.13

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/lib/qcmd/cli.rb CHANGED
@@ -302,6 +302,8 @@ module Qcmd
302
302
 
303
303
  Qcmd.debug "[CLI handle_input] command: #{ command }; args: #{ args.inspect }"
304
304
 
305
+ # this is where qcmd decides how to handle user input
306
+
305
307
  case command
306
308
  when 'exit', 'quit', 'q'
307
309
  print 'exiting...'
@@ -493,6 +495,15 @@ module Qcmd
493
495
  log(:warning, "The select command should be in the form `select CUE_NUMBER`.")
494
496
  end
495
497
 
498
+ # local ruby commands
499
+ when 'sleep'
500
+ if args.size != 2
501
+ log(:warning, "The sleep command expects one argument")
502
+ elsif !(args[1].is_a?(Fixnum) || args[1].is_a?(Float))
503
+ log(:warning, "The sleep command expects a number")
504
+ else
505
+ sleep args[1].to_f
506
+ end
496
507
  else
497
508
  if aliases[command]
498
509
  Qcmd.debug "[CLI handle_input] using alias #{ command }"
data/lib/qcmd/commands.rb CHANGED
@@ -270,6 +270,16 @@ aliases
270
270
 
271
271
  See all the aliases.
272
272
 
273
+
274
+ sleep NUMBER
275
+
276
+ Pause qcmd execution for NUMBER seconds.
277
+
278
+ For example:
279
+
280
+ > cue 3 start; sleep 2; stop
281
+
282
+ Will start cue number 3, then stop it two seconds later.
273
283
  ]
274
284
  end
275
285
  end
data/lib/qcmd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Qcmd
2
- VERSION = "0.1.12"
2
+ VERSION = "0.1.13"
3
3
  end
@@ -73,10 +73,10 @@ class SexpistolParser < StringScanner
73
73
  elsif scan(/"([^"\\]|\\.)*"/)
74
74
  eval(matched)
75
75
  # Match a float literal
76
- elsif scan(/[\-\+]? [0-9]+ ((e[0-9]+) | (\.[0-9]+(e[0-9]+)?)) (\s|$)/x)
76
+ elsif scan(/[\-\+]? [0-9]+ ((e[0-9]+) | (\.[0-9]+(e[0-9]+)?))(\)| )(\s|$)/x)
77
77
  matched.to_f
78
78
  # Match an integer literal
79
- elsif scan(/[\-\+]?[0-9]+ (\s|$)/x)
79
+ elsif scan(/[\-\+]?[0-9]+(\)| )(\s|$)/x)
80
80
  matched.to_i
81
81
  # Match a comma (for comma quoting)
82
82
  elsif scan(/'/)
@@ -12,13 +12,13 @@ describe Qcmd::Parser do
12
12
  end
13
13
 
14
14
  it "should parse integers" do
15
- tokens = Qcmd::Parser.parse 'go "word word" 10'
16
- tokens.should eql([:go, 'word word', 10])
15
+ tokens = Qcmd::Parser.parse 'go "word word" 10 (rate 10)'
16
+ tokens.should eql([:go, 'word word', 10, [:rate, 10]])
17
17
  end
18
18
 
19
19
  it "should parse floats" do
20
- tokens = Qcmd::Parser.parse '1.1 go "word word" 10 -12.3 1.1.1 10.2'
21
- tokens.should eql([1.1, :go, 'word word', 10, -12.3, :'1.1.1', 10.2])
20
+ tokens = Qcmd::Parser.parse '1.1 go ("word word" 10.2 -12.3 1.1.1 10.2)'
21
+ tokens.should eql([1.1, :go, ['word word', 10.2, -12.3, :'1.1.1', 10.2]])
22
22
  end
23
23
 
24
24
  it "should parse invalid numbers as symbols" do
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.12
4
+ version: 0.1.13
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-05-10 00:00:00.000000000 Z
12
+ date: 2013-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dnssd