osc-ruby 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
- require 'rspec/core/rake_task'
1
+ require "rake/testtask"
2
2
 
3
- task :default => :spec
4
-
5
- RSpec::Core::RakeTask.new do |t|
6
- t.rcov = false
7
- t.rspec_opts = ["--colour", "--format", "documentation"]
3
+ Rake::TestTask.new(:spec) do |t|
4
+ t.libs << "spec"
5
+ t.pattern = "spec/**/*_spec.rb"
8
6
  end
9
7
 
8
+ task :default => :spec
9
+
10
10
  require 'rdoc/task'
11
11
  RDoc::Task.new do |rdoc|
12
12
  if File.exist?('VERSION')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.1.1
@@ -0,0 +1,21 @@
1
+ $:.unshift File.join( File.dirname( __FILE__ ), '..', 'lib')
2
+ require 'osc-ruby'
3
+
4
+ require 'rubygems'
5
+ require 'eventmachine'
6
+ require 'osc-ruby/em_server'
7
+
8
+ @server = OSC::EMServer.new( 3333 )
9
+ @client = OSC::BroadcastClient.new( 3333 )
10
+
11
+ @server.add_method '/greeting' do | message |
12
+ puts "#{message.ip_address}:#{message.ip_port} -- #{message.address} -- #{message.to_a}"
13
+ end
14
+
15
+ Thread.new do
16
+ @server.run
17
+ end
18
+
19
+ @client.send( OSC::Message.new( "/greeting" , "hullo!" ))
20
+
21
+ sleep( 3 )
@@ -16,5 +16,6 @@ require 'osc-ruby/address_pattern'
16
16
  # now we gettin fancy
17
17
  require 'osc-ruby/server'
18
18
  require 'osc-ruby/client'
19
+ require 'osc-ruby/broadcast_client'
19
20
 
20
21
 
@@ -0,0 +1,8 @@
1
+ module OSC
2
+ class ArgumentFactory
3
+ def self.register( osc_type_id, value_object_klass, parser_klass )
4
+ @registery[osc_type_id] = klass
5
+ end
6
+ end
7
+
8
+ end
@@ -0,0 +1,18 @@
1
+ module OSC
2
+ class BroadcastClient
3
+
4
+ BROADCAST_ADDRESS = '<broadcast>'
5
+
6
+ attr_reader :port
7
+
8
+ def initialize(port)
9
+ @port = port
10
+ @so = UDPSocket.new
11
+ @so.setsockopt Socket::SOL_SOCKET, Socket::SO_BROADCAST, true
12
+ end
13
+
14
+ def send(mesg)
15
+ @so.send(mesg.encode, 0, BROADCAST_ADDRESS, @port)
16
+ end
17
+ end
18
+ end
@@ -2,6 +2,8 @@ require File.join( File.dirname( __FILE__ ), 'network_packet')
2
2
  require 'ostruct'
3
3
 
4
4
  module OSC
5
+ class UnknownType < StandardError; end
6
+
5
7
  class OSCPacket
6
8
 
7
9
  def self.messages_from_network( string, ip_info=nil )
@@ -45,10 +47,11 @@ module OSC
45
47
  def initialize( string )
46
48
  @packet = NetworkPacket.new( string )
47
49
 
48
- @types = { "i" => lambda{ OSCInt32.new( get_int32 ) },
49
- "f" => lambda{ OSCFloat32.new( get_float32 ) },
50
- "s" => lambda{ OSCString.new( get_string ) },
51
- "b" => lambda{ OSCBlob.new( get_blob )}
50
+ @types = { "i" => lambda{ OSCInt32.new( get_int32 ) },
51
+ "f" => lambda{ OSCFloat32.new( get_float32 ) },
52
+ "d" => lambda{ OSCDouble64.new( get_double64 )},
53
+ "s" => lambda{ OSCString.new( get_string ) },
54
+ "b" => lambda{ OSCBlob.new( get_blob )}
52
55
  }
53
56
  end
54
57
 
@@ -93,7 +96,9 @@ module OSC
93
96
  args = []
94
97
 
95
98
  tags.scan(/./) do | tag |
96
- args << @types[tag].call
99
+ type_handler = @types[tag]
100
+ raise( UnknownType, "Unknown OSC type: #{tag}" ) unless type_handler
101
+ args << type_handler.call
97
102
  end
98
103
  args
99
104
  end
@@ -112,6 +117,12 @@ module OSC
112
117
  f
113
118
  end
114
119
 
120
+ def get_double64
121
+ f = @packet.getn(8).unpack('G')[0]
122
+ @packet.skip_padding
123
+ f
124
+ end
125
+
115
126
  def get_blob
116
127
  l = @packet.getn(4).unpack('N')[0]
117
128
  b = @packet.getn(l)
@@ -127,4 +138,4 @@ module OSC
127
138
  "\x00"
128
139
  end
129
140
  end
130
- end
141
+ end
@@ -8,7 +8,12 @@ module OSC
8
8
 
9
9
  class OSCFloat32 < OSCArgument
10
10
  def tag() 'f' end
11
- def encode() [@val].pack('g').force_encoding("BINARY") end
11
+ def encode() [@val].pack('g').force_encoding("BINARY") end
12
+ end
13
+
14
+ class OSCDouble64 < OSCArgument
15
+ def tag() 'd' end
16
+ def encode() [@val].pack('G').force_encoding("BINARY") end
12
17
  end
13
18
 
14
19
  class OSCString < OSCArgument
@@ -20,4 +25,4 @@ module OSC
20
25
  def tag() 'b' end
21
26
  def encode() padding([@val.size].pack('N') + @val).force_encoding("BINARY") end
22
27
  end
23
- end
28
+ end
@@ -16,6 +16,11 @@ class MessageBuilder
16
16
  with_arg( "f", float )
17
17
  self
18
18
  end
19
+
20
+ def with_double( double )
21
+ with_arg( "d", double)
22
+ self
23
+ end
19
24
 
20
25
  def with_int( int )
21
26
  with_arg( "i", int )
@@ -1,4 +1,4 @@
1
1
  require 'osc-ruby'
2
- require 'rspec'
2
+ require "minitest/autorun"
3
3
 
4
4
  require 'builders/message_builder'
@@ -15,80 +15,79 @@ describe OSC::AddressPattern do
15
15
  it "should match anything if the pattern is nil" do
16
16
  ap = OSC::AddressPattern.new( nil )
17
17
 
18
- ap.match?( "/some/nonsense").should be_true
19
- ap.match?( "/completely.different").should be_true
18
+ ap.match?( "/some/nonsense" ).must_equal true
19
+ ap.match?( "/completely.different" ).must_equal true
20
20
  end
21
21
 
22
22
  it "should match based on a regex" do
23
23
  ap = OSC::AddressPattern.new( /hi/ )
24
24
 
25
- ap.match?( '/hi' ).should be_true
26
- ap.match?( '/hidden' ).should be_true
25
+ ap.match?( '/hi' ).must_equal true
26
+ ap.match?( '/hidden' ).must_equal true
27
27
 
28
- ap.match?( '/bye' ).should be_false
28
+ ap.match?( '/bye' ).must_equal false
29
29
  end
30
30
 
31
31
  it "should return a regex if the pattern is a string" do
32
32
  ap = OSC::AddressPattern.new( "/hi" )
33
33
 
34
- ap.match?('/hi').should be_true
34
+ ap.match?( '/hi' ).must_equal true
35
35
 
36
- ap.match?(' /hi').should be_false
37
- ap.match?('/ahi').should be_false
38
- ap.match?( '/hidden' ).should be_false
39
- ap.match?( '/bye' ).should be_false
36
+ ap.match?( ' /hi' ).must_equal false
37
+ ap.match?( '/ahi' ).must_equal false
38
+ ap.match?( '/hidden' ).must_equal false
39
+ ap.match?( '/bye' ).must_equal false
40
40
  end
41
41
 
42
42
  it "should match with question mark" do
43
43
  ap = OSC::AddressPattern.new( "/h?l" )
44
44
 
45
- ap.match?('/hal').should be_true
46
- ap.match?('/hel').should be_true
47
- ap.match?('/hil').should be_true
48
- ap.match?('/hol').should be_true
49
- ap.match?('/hul').should be_true
50
- ap.match?('/hub').should be_false
45
+ ap.match?( '/hal' ).must_equal true
46
+ ap.match?( '/hel' ).must_equal true
47
+ ap.match?( '/hil' ).must_equal true
48
+ ap.match?( '/hol' ).must_equal true
49
+ ap.match?( '/hul' ).must_equal true
50
+ ap.match?( '/hub' ).must_equal false
51
51
  end
52
52
 
53
53
  it "should match with *" do
54
54
  ap = OSC::AddressPattern.new( "/believ*d" )
55
55
 
56
- ap.match?('/believd').should be_true
57
- ap.match?('/believed').should be_true
58
- ap.match?('/believeeed').should be_true
59
- ap.match?('/believaeeeioud').should be_true
60
- ap.match?('/believaeeeioud').should be_true
56
+ ap.match?( '/believd' ).must_equal true
57
+ ap.match?( '/believed' ).must_equal true
58
+ ap.match?( '/believeeed' ).must_equal true
59
+ ap.match?( '/believaeeeioud' ).must_equal true
60
+ ap.match?( '/believaeeeioud' ).must_equal true
61
61
  end
62
62
 
63
63
  it "should match with []" do
64
64
  ap = OSC::AddressPattern.new( "/believ[aeiou]d" )
65
65
 
66
- ap.match?('/believad').should be_true
67
- ap.match?('/believed').should be_true
68
- ap.match?('/believid').should be_true
69
- ap.match?('/believod').should be_true
70
- ap.match?('/believud').should be_true
71
- ap.match?('/believkd').should be_false
66
+ ap.match?( '/believad' ).must_equal true
67
+ ap.match?( '/believed' ).must_equal true
68
+ ap.match?( '/believid' ).must_equal true
69
+ ap.match?( '/believod' ).must_equal true
70
+ ap.match?( '/believud' ).must_equal true
71
+ ap.match?( '/believkd' ).must_equal false
72
72
  end
73
73
 
74
74
  it "should match with [!]" do
75
75
  ap = OSC::AddressPattern.new( "/believ[!aeiou]d" )
76
76
 
77
- ap.match?('/believad').should be_false
78
- ap.match?('/believed').should be_false
79
- ap.match?('/believid').should be_false
80
- ap.match?('/believod').should be_false
81
- ap.match?('/believud').should be_false
82
- ap.match?('/believkd').should be_true
83
- ap.match?('/believzd').should be_true
77
+ ap.match?( '/believad' ).must_equal false
78
+ ap.match?( '/believed' ).must_equal false
79
+ ap.match?( '/believid' ).must_equal false
80
+ ap.match?( '/believod' ).must_equal false
81
+ ap.match?( '/believud' ).must_equal false
82
+ ap.match?( '/believkd' ).must_equal true
83
+ ap.match?( '/believzd' ).must_equal true
84
84
  end
85
85
 
86
86
  it "should match with {}" do
87
87
  ap = OSC::AddressPattern.new( "/{hi,bye}" )
88
88
 
89
- ap.match?('/hi').should be_true
90
- ap.match?('/bye').should be_true
91
- ap.match?('/greetings').should be_false
89
+ ap.match?( '/hi' ).must_equal true
90
+ ap.match?( '/bye' ).must_equal true
91
+ ap.match?( '/greetings' ).must_equal false
92
92
  end
93
-
94
93
  end
@@ -8,28 +8,28 @@ describe MessageBuilder do
8
8
 
9
9
  it "encodes just the address" do
10
10
  mesg = @builder.with_address("/hi")
11
- mesg.build.encode.should == binary_string("/hi\000,\000\000\000")
11
+ mesg.build.encode.must_equal binary_string("/hi\000,\000\000\000")
12
12
  end
13
13
 
14
14
  it "encodes single int values" do
15
15
  mesg = @builder.with_address("/hi").
16
16
  with_int(33)
17
17
 
18
- mesg.build.encode.should == binary_string("/hi\000,i\000\000\000\000\000!")
18
+ mesg.build.encode.must_equal binary_string("/hi\000,i\000\000\000\000\000!")
19
19
  end
20
20
 
21
21
  it "encodes single string values" do
22
22
  mesg = @builder.with_address("/hi").
23
23
  with_string("hello")
24
24
 
25
- mesg.build.encode.should == binary_string("/hi\000,s\000\000hello\000\000\000")
25
+ mesg.build.encode.must_equal binary_string("/hi\000,s\000\000hello\000\000\000")
26
26
  end
27
27
 
28
28
  it "encodes single float values" do
29
29
  mesg = @builder.with_address("/hi").
30
30
  with_float(3.14159)
31
31
 
32
- mesg.build.encode.should == binary_string("/hi\000,f\000\000@I\017\320")
32
+ mesg.build.encode.must_equal binary_string("/hi\000,f\000\000@I\017\320")
33
33
  end
34
34
 
35
35
  it "encodes multiple floats" do
@@ -37,7 +37,7 @@ describe MessageBuilder do
37
37
  with_float(3.14159).
38
38
  with_float(4.5)
39
39
 
40
- mesg.build.encode.should == [47, 104, 105, 0, 44, 102, 102, 0, 64, 73, 15, 208, 64, 144, 0, 0].pack("C*")
40
+ mesg.build.encode.must_equal [47, 104, 105, 0, 44, 102, 102, 0, 64, 73, 15, 208, 64, 144, 0, 0].pack("C*")
41
41
  end
42
42
 
43
43
  def binary_string(string)
@@ -15,42 +15,42 @@ describe OSC::Message do
15
15
  describe "basic traits" do
16
16
  it "should have no arguments if you define none" do
17
17
  m = OSC::Message.new( "/hi" )
18
- m.to_a.should == []
18
+ m.to_a.must_equal []
19
19
  end
20
20
 
21
21
  it "should accept int arguments" do
22
22
  m = OSC::Message.new( "/hi", 42 )
23
- m.to_a.should == [42]
24
- m.tags.should == "i"
23
+ m.to_a.must_equal [42]
24
+ m.tags.must_equal "i"
25
25
  end
26
26
 
27
27
  it "should accept string arguments" do
28
28
  m = OSC::Message.new( "/hi", "42" )
29
- m.to_a.should == ["42"]
30
- m.tags.should == "s"
29
+ m.to_a.must_equal ["42"]
30
+ m.tags.must_equal "s"
31
31
  end
32
32
 
33
33
  it "should accept float arguments" do
34
34
  m = OSC::Message.new( "/hi", 42.001 )
35
- m.to_a.should == [42.001]
36
- m.tags.should == "f"
35
+ m.to_a.must_equal [42.001]
36
+ m.tags.must_equal "f"
37
37
  end
38
38
  end
39
39
 
40
40
  describe "message output encoding" do
41
41
  it "integer arguments output binary/ascii string" do
42
42
  m = OSC::Message.new( "/hi", 42 ).encode
43
- m.encoding.to_s.should == "ASCII-8BIT"
43
+ m.encoding.to_s.must_equal "ASCII-8BIT"
44
44
  end
45
45
 
46
46
  it "string arguments output binary/ascii string" do
47
47
  m = OSC::Message.new( "/hi", "42" ).encode
48
- m.encoding.to_s.should == "ASCII-8BIT"
48
+ m.encoding.to_s.must_equal "ASCII-8BIT"
49
49
  end
50
50
 
51
51
  it "float arguments output binary/ascii string" do
52
52
  m = OSC::Message.new( "/hi", 3.14159 ).encode
53
- m.encoding.to_s.should == "ASCII-8BIT"
53
+ m.encoding.to_s.must_equal "ASCII-8BIT"
54
54
  end
55
55
  end
56
56
 
@@ -66,8 +66,8 @@ describe OSC::Message do
66
66
  it "should know equality" do
67
67
  @message2 = @builder.build
68
68
 
69
- @message.object_id.should_not == @message2.object_id
70
- @message.should == @message2
69
+ @message.object_id.wont_equal @message2.object_id
70
+ @message.must_equal @message2
71
71
  end
72
72
  end
73
73
  end
@@ -8,30 +8,30 @@ describe OSC::NetworkPacket do
8
8
  end
9
9
 
10
10
  it "should know if it's at the end of the stream" do
11
- @empty.eof?.should be_true
11
+ @empty.eof?.must_equal true
12
12
  end
13
13
 
14
14
  it "should know the remainder in the stream" do
15
- @simple.rem.should == 3
15
+ @simple.rem.must_equal 3
16
16
  end
17
17
 
18
18
  it "should be able to skip positions" do
19
19
  @simple.skip( 1 )
20
- @simple.rem.should == 2
20
+ @simple.rem.must_equal 2
21
21
  end
22
22
 
23
23
  it "should be able to get a character from the stream" do
24
- @simple.getc.should == ?a
25
- @simple.getc.should == ?b
26
- @simple.getc.should == ?c
27
- @simple.eof?.should be_true
24
+ @simple.getc.must_equal ?a
25
+ @simple.getc.must_equal ?b
26
+ @simple.getc.must_equal ?c
27
+ @simple.eof?.must_equal true
28
28
  end
29
29
 
30
30
  it "should be able to get a number of characters from the stream" do
31
- @simple.getn(3).should == "abc"
31
+ @simple.getn(3).must_equal "abc"
32
32
  end
33
33
 
34
34
  it "outputs characters with ASCII/BINARY encoding" do
35
- @simple.getc.encoding.to_s.should == "ASCII-8BIT"
35
+ @simple.getc.encoding.to_s.must_equal "ASCII-8BIT"
36
36
  end
37
37
  end
@@ -9,31 +9,31 @@ describe OSC::OSCPacket do
9
9
  end
10
10
 
11
11
  it "should have three messages" do
12
- @messages.should have(3).items
12
+ @messages.size.must_equal 3
13
13
  end
14
14
 
15
15
  it "should have the propper address for the messages" do
16
16
  3.times do |i|
17
- @messages[i].address.should eql("/tuio/2Dobj")
17
+ @messages[i].address.must_equal("/tuio/2Dobj")
18
18
  end
19
19
  end
20
20
 
21
21
  it "should have a first message with two strings" do
22
22
  args = @messages[0].to_a
23
23
 
24
- args[0].should eql( "source" )
25
- args[1].should eql( "simulator" )
24
+ args[0].must_equal( "source" )
25
+ args[1].must_equal( "simulator" )
26
26
  end
27
27
 
28
28
  it "should have a second message with one string" do
29
29
  args = @messages[1].to_a
30
- args[0].should eql( "alive" )
30
+ args[0].must_equal( "alive" )
31
31
  end
32
32
 
33
33
  it "should have a third message with a string and an int" do
34
34
  args = @messages[2].to_a
35
35
 
36
- args[0].should eql( "fseq" )
37
- args[1].should eql(-1)
36
+ args[0].must_equal( "fseq" )
37
+ args[1].must_equal(-1)
38
38
  end
39
39
  end
@@ -0,0 +1,15 @@
1
+ require File.join( File.dirname(__FILE__) , '..', 'spec_helper' )
2
+
3
+ describe OSC::OSCPacket do
4
+
5
+ it 'something' do
6
+ class OSC::BadType < OSC::OSCInt32; def tag() 'Z'; end end
7
+ sent_msg = OSC::Message.new( "/badtype", OSC::BadType.new( 42 ) )
8
+
9
+ lambda do
10
+ OSC::OSCPacket.messages_from_network( sent_msg.encode )
11
+ end.must_raise OSC::UnknownType
12
+
13
+ end
14
+
15
+ end
@@ -25,7 +25,7 @@ describe OSC::OSCPacket do
25
25
 
26
26
  msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
27
27
 
28
- msg.first.address.should == @address
28
+ msg.first.address.must_equal @address
29
29
  end
30
30
 
31
31
  it "should decode the int arg of a simple message from the network data" do
@@ -33,7 +33,7 @@ describe OSC::OSCPacket do
33
33
 
34
34
  msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
35
35
 
36
- msg.first.to_a.should == [@first_int]
36
+ msg.first.to_a.must_equal [@first_int]
37
37
  end
38
38
 
39
39
  it "should decode two int args" do
@@ -41,7 +41,7 @@ describe OSC::OSCPacket do
41
41
 
42
42
  msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
43
43
 
44
- msg.first.to_a.should == [@first_int, @second_int]
44
+ msg.first.to_a.must_equal [@first_int, @second_int]
45
45
  end
46
46
 
47
47
  it "should decode address with float arg" do
@@ -49,18 +49,18 @@ describe OSC::OSCPacket do
49
49
 
50
50
  msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
51
51
 
52
- msg.first.to_a[0].should be_within( 0.001 ).of( @first_float )
52
+ msg.first.to_a[0].must_be_close_to( @first_float, 0.001 )
53
53
  end
54
54
 
55
55
 
56
56
  it "should decode address with two float args" do
57
- sent_msg = @builder.with_float( @first_float ).with_float( @second_float).build
57
+ sent_msg = @builder.with_float( @first_float ).with_float( @second_float ).build
58
58
 
59
59
  msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
60
60
 
61
61
  args = msg.first.to_a
62
- args.first.should be_within( 0.001 ).of( @first_float )
63
- args[1].should be_within( 0.001 ).of( @second_float )
62
+ args.first.must_be_close_to( @first_float, 0.001 )
63
+ args[1].must_be_close_to( @second_float, 0.001 )
64
64
  end
65
65
 
66
66
  it "should decode address with string arg" do
@@ -68,7 +68,7 @@ describe OSC::OSCPacket do
68
68
 
69
69
  msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
70
70
 
71
- msg.first.to_a.should == [@first_string]
71
+ msg.first.to_a.must_equal [@first_string]
72
72
  end
73
73
 
74
74
  it "should decode address with multiple string args" do
@@ -76,8 +76,8 @@ describe OSC::OSCPacket do
76
76
  msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
77
77
 
78
78
  args = msg.first.to_a
79
- args[0].should eql @first_string
80
- args[1].should eql @second_string
79
+ args[0].must_equal @first_string
80
+ args[1].must_equal @second_string
81
81
  end
82
82
 
83
83
 
@@ -91,9 +91,9 @@ describe OSC::OSCPacket do
91
91
 
92
92
  args = msg.first.to_a
93
93
 
94
- args[0].should eql( @first_int )
95
- args[1].should be_within( 0.001 ).of( @second_float )
96
- args[2].should eql( @first_string )
94
+ args[0].must_equal( @first_int )
95
+ args[1].must_be_close_to( @second_float, 0.001 )
96
+ args[2].must_equal( @first_string )
97
97
  end
98
98
 
99
99
  it "should decode messages with blobs" do
@@ -103,6 +103,16 @@ describe OSC::OSCPacket do
103
103
  msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
104
104
 
105
105
  args = msg.first.to_a
106
- args.first.should eql( @first_blob )
106
+ args.first.must_equal( @first_blob )
107
+ end
108
+
109
+ it "should decode messages with double64 types" do
110
+ pi = 3.14159
111
+
112
+ sent_msg = @builder.with_double( pi ).build
113
+ msg = OSC::OSCPacket.messages_from_network( sent_msg.encode )
114
+
115
+ args = msg.first.to_a
116
+ args.first.must_be_close_to( pi, 0.001 )
107
117
  end
108
118
  end
@@ -12,6 +12,12 @@ describe OSC::OSCFloat32 do
12
12
  end
13
13
  end
14
14
 
15
+ describe OSC::OSCDouble64 do
16
+ it "should not blow up" do
17
+ OSC::OSCDouble64.new 1.0
18
+ end
19
+ end
20
+
15
21
  describe OSC::OSCString do
16
22
  it "should not blow up" do
17
23
  OSC::OSCString.new "1"
@@ -0,0 +1,12 @@
1
+ # require File.join( File.dirname(__FILE__) , '..', '..', 'spec_helper' )
2
+
3
+ # describe OSC::ArgumentParser do
4
+ # it "can parse streams that contain integer arguments" do
5
+ # int_value = 1024
6
+ # int32_stream = OSC::InputStream.new(OSC::Int32.new(int_value).encode)
7
+
8
+ # result = OSC::Int32Parser.new(int32_stream).parse
9
+
10
+ # result.should == int_value
11
+ # end
12
+ # end
metadata CHANGED
@@ -1,29 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osc-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Colin Harris
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-05-04 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rspec
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '>='
25
- - !ruby/object:Gem::Version
26
- version: '0'
12
+ date: 2014-08-24 00:00:00.000000000 Z
13
+ dependencies: []
27
14
  description: This OSC gem originally created by Tadayoshi Funaba has been updated
28
15
  for ruby 2.0/1.9/JRuby compatibility
29
16
  email: qzzzq1@gmail.com
@@ -34,8 +21,11 @@ files:
34
21
  - Rakefile
35
22
  - VERSION
36
23
  - LICENSE
24
+ - examples/broadcast_client.rb
37
25
  - examples/event_machine_server.rb
38
26
  - lib/osc-ruby/address_pattern.rb
27
+ - lib/osc-ruby/argument_factory.rb
28
+ - lib/osc-ruby/broadcast_client.rb
39
29
  - lib/osc-ruby/bundle.rb
40
30
  - lib/osc-ruby/client.rb
41
31
  - lib/osc-ruby/core_ext/numeric.rb
@@ -57,30 +47,33 @@ files:
57
47
  - spec/unit/network_packet_spec.rb
58
48
  - spec/unit/osc_argument_spec.rb
59
49
  - spec/unit/osc_complex_packets_spec.rb
50
+ - spec/unit/osc_packet_unknown_type_spec.rb
60
51
  - spec/unit/osc_simple_packets_spec.rb
61
52
  - spec/unit/osc_types_spec.rb
53
+ - spec/unit/parsers/argument_parser_spec.rb
62
54
  homepage: http://github.com/aberant/osc-ruby
63
55
  licenses: []
64
- metadata: {}
65
56
  post_install_message:
66
57
  rdoc_options: []
67
58
  require_paths:
68
59
  - lib
69
60
  required_ruby_version: !ruby/object:Gem::Requirement
61
+ none: false
70
62
  requirements:
71
- - - '>='
63
+ - - ! '>='
72
64
  - !ruby/object:Gem::Version
73
65
  version: '0'
74
66
  required_rubygems_version: !ruby/object:Gem::Requirement
67
+ none: false
75
68
  requirements:
76
- - - '>='
69
+ - - ! '>='
77
70
  - !ruby/object:Gem::Version
78
71
  version: '0'
79
72
  requirements: []
80
73
  rubyforge_project:
81
- rubygems_version: 2.0.3
74
+ rubygems_version: 1.8.24
82
75
  signing_key:
83
- specification_version: 4
76
+ specification_version: 3
84
77
  summary: a ruby client for the OSC protocol
85
78
  test_files:
86
79
  - spec/builders/message_builder.rb
@@ -92,5 +85,7 @@ test_files:
92
85
  - spec/unit/network_packet_spec.rb
93
86
  - spec/unit/osc_argument_spec.rb
94
87
  - spec/unit/osc_complex_packets_spec.rb
88
+ - spec/unit/osc_packet_unknown_type_spec.rb
95
89
  - spec/unit/osc_simple_packets_spec.rb
96
90
  - spec/unit/osc_types_spec.rb
91
+ - spec/unit/parsers/argument_parser_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 2b6e50d421b58c68e16b4d82d132f25e15b0338b
4
- data.tar.gz: 8875e8b6aa9cf1af663291b248c5708695ed1448
5
- SHA512:
6
- metadata.gz: c814bfa20121cb7a835159546c858b9f6d3370c6158e067c17df7ceeb379608c98242375ef5b776488cd35efe4c7df1a25b3439c2a97c01eed7799be7daf15c8
7
- data.tar.gz: 576b0fcabd35b30da9cdfad8477d788ddec610fc455b796a4322483a1b3917a3f26f332e8536cc0b6dd534a3ea2c6b63b75a5cb5f22e1262944e309aed16c091