Sha256: 6657bd8308050973693804702b80ea73cf60c1cbb716689e1191543902a4f6cf
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
require 'qcmd' describe Qcmd::Parser do it "should parse simple commands" do tokens = Qcmd::Parser.parse "go" tokens.should eql([:go]) end it "should parse embedded strings" do tokens = Qcmd::Parser.parse 'go "word word"' tokens.should eql([:go, 'word word']) end it "should parse integers" do tokens = Qcmd::Parser.parse 'go "word word" 10' tokens.should eql([:go, 'word word', 10]) end it "should parse floats" do tokens = Qcmd::Parser.parse 'go "word word" 10 -12.3' tokens.should eql([:go, 'word word', 10, -12.3]) end it "should parse nested quotes" do tokens = Qcmd::Parser.parse 'go "word word" 10 -12.3 "life \"is good\" yeah"' tokens.should eql([:go, 'word word', 10, -12.3, 'life "is good" yeah']) end it "should parse nested commands" do tokens = Qcmd::Parser.parse 'cue 10 name (cue 3 name)' tokens.should eql([:cue, 10, :name, [:cue, 3, :name]]) end it "should parse alias commands" do tokens = Qcmd::Parser.parse 'alias copy-name (cue 10 name (cue 3 name))' tokens.should eql([:alias, :'copy-name', [:cue, 10, :name, [:cue, 3, :name]]]) end it "should parse non alphanumeric commands" do tokens = Qcmd::Parser.parse '..' tokens.should eql([:'..']) end it "should parse leading slash commands" do tokens = Qcmd::Parser.parse '/alwaysReply 1' tokens.should eql([:'/alwaysReply', 1]) end it 'should parse commands containing slashes' do tokens = Qcmd::Parser.parse 'workspace/124/connect' tokens.should eql([:'workspace/124/connect']) end it 'should parse strings with parens' do tokens = Qcmd::Parser.parse %[cue 1 name "this is (not good)"] tokens.should eql([:cue, 1, :name, 'this is (not good)']) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
qcmd-0.1.8 | spec/unit/parser_spec.rb |