ffi-msgpack 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.md +13 -0
- data/Gemfile +5 -5
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/ffi-msgpack.gemspec +18 -2
- data/lib/ffi/msgpack.rb +1 -0
- data/lib/ffi/msgpack/msg_key_value.rb +4 -4
- data/lib/ffi/msgpack/msg_map.rb +2 -1
- data/lib/ffi/msgpack/msg_object.rb +2 -2
- data/lib/ffi/msgpack/msgpack.rb +5 -4
- data/lib/ffi/msgpack/packable.rb +1 -1
- data/spec/extensions/array_spec.rb +14 -0
- data/spec/extensions/false_class_spec.rb +14 -0
- data/spec/extensions/float_spec.rb +14 -0
- data/spec/extensions/hash_spec.rb +14 -0
- data/spec/extensions/integer_spec.rb +14 -0
- data/spec/extensions/nil_class_spec.rb +14 -0
- data/spec/extensions/string_spec.rb +14 -0
- data/spec/extensions/true_class_spec.rb +14 -0
- metadata +20 -11
data/ChangeLog.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
### 0.1.3 / 2010-07-03
|
2
|
+
|
3
|
+
* Added specs for {FFI::MsgPack::Packable}.
|
4
|
+
* {FFI::MsgPack.pack} now accepts multiple arguments.
|
5
|
+
* Fixed a typo in {FFI::MsgPack::Packable#to_msgpack} (thanks bb).
|
6
|
+
* Fixed the packing of {Hash} objects.
|
7
|
+
* Fixed the struct layout of {FFI::MsgPack::MsgKeyValue}.
|
8
|
+
|
9
|
+
### 0.1.2 / 2010-05-24
|
10
|
+
|
11
|
+
* Require libmsgpack >= 0.5.0, due to changes in the
|
12
|
+
`msgpack_object_type` enum.
|
13
|
+
|
1
14
|
### 0.1.1 / 2010-05-21
|
2
15
|
|
3
16
|
* Fixed {FFI::MsgPack::MsgObject#initialize} on JRuby.
|
data/Gemfile
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
source '
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
group
|
3
|
+
group(:runtime) do
|
4
4
|
gem 'ffi', '~> 0.6.0'
|
5
5
|
end
|
6
6
|
|
7
|
-
group
|
7
|
+
group(:development) do
|
8
8
|
gem 'bundler', '~> 0.9.25'
|
9
9
|
gem 'rake', '~> 0.8.7'
|
10
10
|
gem 'jeweler', '~> 1.4.0', :git => 'git://github.com/technicalpickles/jeweler.git'
|
11
11
|
end
|
12
12
|
|
13
|
-
group
|
13
|
+
group(:doc) do
|
14
14
|
case RUBY_PLATFORM
|
15
15
|
when 'java'
|
16
16
|
gem 'maruku', '~> 0.6.0'
|
@@ -18,7 +18,7 @@ group :doc do
|
|
18
18
|
gem 'rdiscount', '~> 1.6.3'
|
19
19
|
end
|
20
20
|
|
21
|
-
gem 'yard',
|
21
|
+
gem 'yard', '~> 0.5.3'
|
22
22
|
end
|
23
23
|
|
24
24
|
gem 'rspec', '~> 1.3.0', :group => [:development, :test]
|
data/Rakefile
CHANGED
@@ -10,16 +10,15 @@ rescue Bundler::BundlerError => e
|
|
10
10
|
end
|
11
11
|
|
12
12
|
require 'rake'
|
13
|
-
require 'rake/clean'
|
14
13
|
require 'jeweler'
|
15
14
|
|
16
15
|
Jeweler::Tasks.new do |gem|
|
17
16
|
gem.name = 'ffi-msgpack'
|
18
17
|
gem.licenses = ['MIT']
|
19
18
|
gem.summary = %Q{FFI bindings for msgpack}
|
19
|
+
gem.description = %Q{Ruby FFI bindings for the msgpack library.}
|
20
20
|
gem.email = 'postmodern.mod3@gmail.com'
|
21
21
|
gem.homepage = %Q{http://github.com/postmodern/ffi-msgpack}
|
22
|
-
gem.description = %Q{Ruby FFI bindings for the msgpack library.}
|
23
22
|
gem.authors = ['Postmodern']
|
24
23
|
gem.requirements = ['libmsgpack, 0.5.0 or greater']
|
25
24
|
gem.has_rdoc = 'yard'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/ffi-msgpack.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ffi-msgpack}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Postmodern"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-07-03}
|
13
13
|
s.description = %q{Ruby FFI bindings for the msgpack library.}
|
14
14
|
s.email = %q{postmodern.mod3@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -54,6 +54,14 @@ Gem::Specification.new do |s|
|
|
54
54
|
"lib/ffi/msgpack/zone_chunk_list.rb",
|
55
55
|
"lib/ffi/msgpack/zone_finalizer.rb",
|
56
56
|
"lib/ffi/msgpack/zone_finalizer_array.rb",
|
57
|
+
"spec/extensions/array_spec.rb",
|
58
|
+
"spec/extensions/false_class_spec.rb",
|
59
|
+
"spec/extensions/float_spec.rb",
|
60
|
+
"spec/extensions/hash_spec.rb",
|
61
|
+
"spec/extensions/integer_spec.rb",
|
62
|
+
"spec/extensions/nil_class_spec.rb",
|
63
|
+
"spec/extensions/string_spec.rb",
|
64
|
+
"spec/extensions/true_class_spec.rb",
|
57
65
|
"spec/msg_object_spec.rb",
|
58
66
|
"spec/packer_spec.rb",
|
59
67
|
"spec/spec_helper.rb",
|
@@ -67,6 +75,14 @@ Gem::Specification.new do |s|
|
|
67
75
|
s.rubygems_version = %q{1.3.7}
|
68
76
|
s.summary = %q{FFI bindings for msgpack}
|
69
77
|
s.test_files = [
|
78
|
+
"spec/extensions/array_spec.rb",
|
79
|
+
"spec/extensions/false_class_spec.rb",
|
80
|
+
"spec/extensions/float_spec.rb",
|
81
|
+
"spec/extensions/hash_spec.rb",
|
82
|
+
"spec/extensions/integer_spec.rb",
|
83
|
+
"spec/extensions/nil_class_spec.rb",
|
84
|
+
"spec/extensions/string_spec.rb",
|
85
|
+
"spec/extensions/true_class_spec.rb",
|
70
86
|
"spec/msg_object_spec.rb",
|
71
87
|
"spec/packer_spec.rb",
|
72
88
|
"spec/spec_helper.rb",
|
data/lib/ffi/msgpack.rb
CHANGED
@@ -5,8 +5,8 @@ module FFI
|
|
5
5
|
module MsgPack
|
6
6
|
class MsgKeyValue < FFI::Struct
|
7
7
|
|
8
|
-
layout :key,
|
9
|
-
:value,
|
8
|
+
layout :key, MsgObject,
|
9
|
+
:value, MsgObject
|
10
10
|
|
11
11
|
#
|
12
12
|
# The key.
|
@@ -15,7 +15,7 @@ module FFI
|
|
15
15
|
# The key Msg Object.
|
16
16
|
#
|
17
17
|
def key
|
18
|
-
|
18
|
+
self[:key]
|
19
19
|
end
|
20
20
|
|
21
21
|
#
|
@@ -25,7 +25,7 @@ module FFI
|
|
25
25
|
# The value Msg Object.
|
26
26
|
#
|
27
27
|
def value
|
28
|
-
|
28
|
+
self[:value]
|
29
29
|
end
|
30
30
|
|
31
31
|
end
|
data/lib/ffi/msgpack/msg_map.rb
CHANGED
@@ -184,8 +184,8 @@ module FFI
|
|
184
184
|
values.each_with_index do |(key,value),index|
|
185
185
|
pair = MsgKeyValue.new(entries[index])
|
186
186
|
|
187
|
-
pair[:key]
|
188
|
-
pair[:value]
|
187
|
+
MsgObject.new_object(key,pair[:key].to_ptr)
|
188
|
+
MsgObject.new_object(value,pair[:value].to_ptr)
|
189
189
|
end
|
190
190
|
|
191
191
|
obj = MsgObject.new
|
data/lib/ffi/msgpack/msgpack.rb
CHANGED
@@ -94,15 +94,16 @@ module FFI
|
|
94
94
|
#
|
95
95
|
# Packs a Ruby object.
|
96
96
|
#
|
97
|
-
# @param [Hash, Array, String, Symbol, Integer, Float, true, false, nil]
|
98
|
-
# The Ruby object to pack.
|
97
|
+
# @param [Array[Hash, Array, String, Symbol, Integer, Float, true, false, nil]] objs
|
98
|
+
# The Ruby object(s) to pack.
|
99
99
|
#
|
100
100
|
# @return [String]
|
101
101
|
# The packed Ruby object.
|
102
102
|
#
|
103
|
-
def MsgPack.pack(
|
103
|
+
def MsgPack.pack(*objs)
|
104
104
|
packer = Packer.create
|
105
|
-
|
105
|
+
|
106
|
+
objs.each { |obj| packer << obj }
|
106
107
|
|
107
108
|
return packer.to_s
|
108
109
|
end
|
data/lib/ffi/msgpack/packable.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ffi/msgpack/extensions/array'
|
3
|
+
|
4
|
+
describe Array do
|
5
|
+
subject { [1, 2] }
|
6
|
+
|
7
|
+
it "should be packable" do
|
8
|
+
should be_kind_of(FFI::MsgPack::Packable)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pack to a msg" do
|
12
|
+
subject.to_msgpack.should == "\x92\x01\x02"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ffi/msgpack/extensions/false_class'
|
3
|
+
|
4
|
+
describe FalseClass do
|
5
|
+
subject { false }
|
6
|
+
|
7
|
+
it "should be packable" do
|
8
|
+
should be_kind_of(FFI::MsgPack::Packable)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pack to a msg" do
|
12
|
+
subject.to_msgpack.should == "\xC2"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ffi/msgpack/extensions/float'
|
3
|
+
|
4
|
+
describe Float do
|
5
|
+
subject { 0.2 }
|
6
|
+
|
7
|
+
it "should be packable" do
|
8
|
+
should be_kind_of(FFI::MsgPack::Packable)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pack to a msg" do
|
12
|
+
subject.to_msgpack.should == "\xCB?\xC9\x99\x99\x99\x99\x99\x9A"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ffi/msgpack/extensions/hash'
|
3
|
+
|
4
|
+
describe Hash do
|
5
|
+
subject { {1 => 'a', 2 => 'b'} }
|
6
|
+
|
7
|
+
it "should be packable" do
|
8
|
+
should be_kind_of(FFI::MsgPack::Packable)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pack to a msg" do
|
12
|
+
subject.to_msgpack.should == "\x82\x01\xA1a\x02\xA1b"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ffi/msgpack/extensions/integer'
|
3
|
+
|
4
|
+
describe Integer do
|
5
|
+
subject { 0x02 }
|
6
|
+
|
7
|
+
it "should be packable" do
|
8
|
+
should be_kind_of(FFI::MsgPack::Packable)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pack to a msg" do
|
12
|
+
subject.to_msgpack.should == "\x02"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ffi/msgpack/extensions/nil_class'
|
3
|
+
|
4
|
+
describe NilClass do
|
5
|
+
subject { nil }
|
6
|
+
|
7
|
+
it "should be packable" do
|
8
|
+
should be_kind_of(FFI::MsgPack::Packable)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pack to a msg" do
|
12
|
+
subject.to_msgpack.should == "\xC0"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ffi/msgpack/extensions/string'
|
3
|
+
|
4
|
+
describe String do
|
5
|
+
subject { "hello" }
|
6
|
+
|
7
|
+
it "should be packable" do
|
8
|
+
should be_kind_of(FFI::MsgPack::Packable)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pack to a msg" do
|
12
|
+
subject.to_msgpack.should == "\xA5hello"
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ffi/msgpack/extensions/true_class'
|
3
|
+
|
4
|
+
describe TrueClass do
|
5
|
+
subject { true }
|
6
|
+
|
7
|
+
it "should be packable" do
|
8
|
+
should be_kind_of(FFI::MsgPack::Packable)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should pack to a msg" do
|
12
|
+
subject.to_msgpack.should == "\xC3"
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-msgpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 31
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Postmodern
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-
|
17
|
+
date: 2010-07-03 00:00:00 -07:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
@@ -25,7 +24,6 @@ dependencies:
|
|
25
24
|
requirements:
|
26
25
|
- - ~>
|
27
26
|
- !ruby/object:Gem::Version
|
28
|
-
hash: 7
|
29
27
|
segments:
|
30
28
|
- 0
|
31
29
|
- 6
|
@@ -41,7 +39,6 @@ dependencies:
|
|
41
39
|
requirements:
|
42
40
|
- - ~>
|
43
41
|
- !ruby/object:Gem::Version
|
44
|
-
hash: 9
|
45
42
|
segments:
|
46
43
|
- 0
|
47
44
|
- 9
|
@@ -57,7 +54,6 @@ dependencies:
|
|
57
54
|
requirements:
|
58
55
|
- - ~>
|
59
56
|
- !ruby/object:Gem::Version
|
60
|
-
hash: 49
|
61
57
|
segments:
|
62
58
|
- 0
|
63
59
|
- 8
|
@@ -73,7 +69,6 @@ dependencies:
|
|
73
69
|
requirements:
|
74
70
|
- - ~>
|
75
71
|
- !ruby/object:Gem::Version
|
76
|
-
hash: 7
|
77
72
|
segments:
|
78
73
|
- 1
|
79
74
|
- 4
|
@@ -89,7 +84,6 @@ dependencies:
|
|
89
84
|
requirements:
|
90
85
|
- - ~>
|
91
86
|
- !ruby/object:Gem::Version
|
92
|
-
hash: 27
|
93
87
|
segments:
|
94
88
|
- 1
|
95
89
|
- 3
|
@@ -145,6 +139,14 @@ files:
|
|
145
139
|
- lib/ffi/msgpack/zone_chunk_list.rb
|
146
140
|
- lib/ffi/msgpack/zone_finalizer.rb
|
147
141
|
- lib/ffi/msgpack/zone_finalizer_array.rb
|
142
|
+
- spec/extensions/array_spec.rb
|
143
|
+
- spec/extensions/false_class_spec.rb
|
144
|
+
- spec/extensions/float_spec.rb
|
145
|
+
- spec/extensions/hash_spec.rb
|
146
|
+
- spec/extensions/integer_spec.rb
|
147
|
+
- spec/extensions/nil_class_spec.rb
|
148
|
+
- spec/extensions/string_spec.rb
|
149
|
+
- spec/extensions/true_class_spec.rb
|
148
150
|
- spec/msg_object_spec.rb
|
149
151
|
- spec/packer_spec.rb
|
150
152
|
- spec/spec_helper.rb
|
@@ -163,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
165
|
requirements:
|
164
166
|
- - ">="
|
165
167
|
- !ruby/object:Gem::Version
|
166
|
-
hash:
|
168
|
+
hash: -828906031
|
167
169
|
segments:
|
168
170
|
- 0
|
169
171
|
version: "0"
|
@@ -172,7 +174,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
174
|
requirements:
|
173
175
|
- - ">="
|
174
176
|
- !ruby/object:Gem::Version
|
175
|
-
hash: 3
|
176
177
|
segments:
|
177
178
|
- 0
|
178
179
|
version: "0"
|
@@ -184,6 +185,14 @@ signing_key:
|
|
184
185
|
specification_version: 3
|
185
186
|
summary: FFI bindings for msgpack
|
186
187
|
test_files:
|
188
|
+
- spec/extensions/array_spec.rb
|
189
|
+
- spec/extensions/false_class_spec.rb
|
190
|
+
- spec/extensions/float_spec.rb
|
191
|
+
- spec/extensions/hash_spec.rb
|
192
|
+
- spec/extensions/integer_spec.rb
|
193
|
+
- spec/extensions/nil_class_spec.rb
|
194
|
+
- spec/extensions/string_spec.rb
|
195
|
+
- spec/extensions/true_class_spec.rb
|
187
196
|
- spec/msg_object_spec.rb
|
188
197
|
- spec/packer_spec.rb
|
189
198
|
- spec/spec_helper.rb
|