capn_proto 0.0.1.alpha.1 → 0.0.1.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +20 -0
- data/README.md +45 -7
- data/Rakefile +1 -1
- data/ext/capn_proto/dynamic_value_reader.cc +0 -1
- data/ext/capn_proto/extconf.rb +1 -1
- data/ext/capn_proto/init.cc +1 -1
- data/lib/capn_proto/version.rb +1 -1
- data/lib/capn_proto.rb +1 -1
- metadata +3 -2
data/.travis.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
language: ruby
|
2
|
+
|
3
|
+
rvm:
|
4
|
+
- 1.9.2
|
5
|
+
- 1.9.3
|
6
|
+
- 2.0.0
|
7
|
+
|
8
|
+
compiler: gcc
|
9
|
+
|
10
|
+
before_install:
|
11
|
+
- sudo apt-get install autoconf automake libtool autotools-dev
|
12
|
+
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
13
|
+
- sudo apt-get -qq update
|
14
|
+
- sudo apt-get -qq install g++-4.8 libstdc++-4.8-dev
|
15
|
+
- sudo update-alternatives --quiet --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60
|
16
|
+
--slave /usr/bin/g++ g++ /usr/bin/g++-4.8
|
17
|
+
--slave /usr/bin/gcov gcov /usr/bin/gcov-4.8
|
18
|
+
- sudo update-alternatives --quiet --set gcc /usr/bin/gcc-4.8
|
19
|
+
- wget https://github.com/kentonv/capnproto/archive/master.zip && unzip master.zip && cd capnproto-master/c++ && ./setup-autotools.sh && autoreconf -i && ./configure && make -j6 check && sudo make install && sudo ldconfig && cd ../..
|
20
|
+
- export CXXFLAGS="-std=c++11"
|
data/README.md
CHANGED
@@ -6,12 +6,14 @@
|
|
6
6
|
|
7
7
|
This here is a [Ruby][ruby] wrapper for the official C++ implementation of [Cap'n Proto][capnp].
|
8
8
|
|
9
|
+
[![Build Status](https://travis-ci.org/cstrahan/capnp-ruby.png?branch=master)](https://travis-ci.org/cstrahan/capnp-ruby)
|
10
|
+
|
9
11
|
# Installing
|
10
12
|
|
11
13
|
First [install libcapnp][libcapnp-install], then install the gem:
|
12
14
|
|
13
15
|
```bash
|
14
|
-
gem install capn_proto
|
16
|
+
gem install capn_proto --pre
|
15
17
|
```
|
16
18
|
|
17
19
|
Remember to set the `CXX` and `CXXFLAGS` environment variables as necessary. As an OSX user, having followed the [instructions for installing libcapnp on OSX][libcapnp-install], the correct incantation is as follows:
|
@@ -19,18 +21,54 @@ Remember to set the `CXX` and `CXXFLAGS` environment variables as necessary. As
|
|
19
21
|
```bash
|
20
22
|
export CXX=$HOME/clang-3.2/bin/clang++
|
21
23
|
export CXXFLAGS="-std=c++11 -stdlib=libc++"
|
22
|
-
gem install capn_proto
|
24
|
+
gem install capn_proto --pre
|
23
25
|
```
|
24
26
|
|
25
|
-
#
|
27
|
+
# Example
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
require 'capn_proto'
|
31
|
+
|
32
|
+
module AddressBook extend CapnProto::SchemaLoader
|
33
|
+
load_schema("addressbook.capnp")
|
34
|
+
end
|
35
|
+
|
36
|
+
def print_address_book(file)
|
37
|
+
addresses = AddressBook::AddressBook.read_from(file)
|
38
|
+
|
39
|
+
addresses.people.each do |person|
|
40
|
+
puts "#{person.name} : #{person.email}"
|
26
41
|
|
27
|
-
|
42
|
+
person.phones.each do |phone|
|
43
|
+
puts "#{phone.type} : #{phone.number}"
|
44
|
+
end
|
45
|
+
|
46
|
+
which = person.employment.which
|
47
|
+
|
48
|
+
if which == "unemployed"
|
49
|
+
puts "unemployed"
|
50
|
+
elsif which == 'employer'
|
51
|
+
puts "employer: #{person.employment.employer}"
|
52
|
+
elsif which == "school"
|
53
|
+
puts "student at: #{person.employment.school}"
|
54
|
+
elsif which == "selfEmployed"
|
55
|
+
puts "self employed"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
file = File.open("addressbook.bin", "rb")
|
61
|
+
print_address_book(file)
|
62
|
+
```
|
28
63
|
|
29
64
|
# Status
|
30
65
|
|
31
|
-
|
32
|
-
-
|
33
|
-
-
|
66
|
+
What's implemented:
|
67
|
+
- Schema parsing/loading
|
68
|
+
- Message reading
|
69
|
+
|
70
|
+
What's to come:
|
71
|
+
- Message writing
|
34
72
|
|
35
73
|
Proper support for [JRuby][jruby] will come after I implement support for Java.
|
36
74
|
|
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ Gem::PackageTask.new(GEMSPEC) do |pkg|
|
|
5
5
|
end
|
6
6
|
|
7
7
|
require 'rake/extensiontask'
|
8
|
-
Rake::ExtensionTask.new('
|
8
|
+
Rake::ExtensionTask.new('capn_proto', GEMSPEC) do |ext|
|
9
9
|
ext.ext_dir = 'ext/capn_proto'
|
10
10
|
ext.lib_dir = 'lib/capn_proto'
|
11
11
|
ext.source_pattern = "*.{cc,h}"
|
@@ -27,7 +27,6 @@ namespace ruby_capn_proto {
|
|
27
27
|
}
|
28
28
|
case capnp::DynamicValue::LIST:
|
29
29
|
return DynamicListReader::create(value.as<capnp::DynamicList>(), parent);
|
30
|
-
// return Qnil;
|
31
30
|
case capnp::DynamicValue::STRUCT:
|
32
31
|
return DynamicStructReader::create(value.as<capnp::DynamicStruct>());
|
33
32
|
case capnp::DynamicValue::ENUM:
|
data/ext/capn_proto/extconf.rb
CHANGED
data/ext/capn_proto/init.cc
CHANGED
data/lib/capn_proto/version.rb
CHANGED
data/lib/capn_proto.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capn_proto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.alpha.
|
4
|
+
version: 0.0.1.alpha.2
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -103,6 +103,7 @@ extensions:
|
|
103
103
|
extra_rdoc_files: []
|
104
104
|
files:
|
105
105
|
- .gitignore
|
106
|
+
- .travis.yml
|
106
107
|
- Gemfile
|
107
108
|
- LICENSE
|
108
109
|
- README.md
|
@@ -172,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
172
173
|
version: '0'
|
173
174
|
segments:
|
174
175
|
- 0
|
175
|
-
hash: -
|
176
|
+
hash: -555813977738220777
|
176
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
178
|
none: false
|
178
179
|
requirements:
|