ruby_protobuf 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,7 @@
1
- === 0.4.4 / 2010-06-04
1
+ === 0.4.5 / 2010-07-17
2
2
 
3
+ * 0.4.5
4
+ * Bug fix. (enum value)
3
5
  * 0.4.4
4
6
  * Bug fix. (rprotoc)
5
7
  * 0.4.3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.4
1
+ 0.4.5
@@ -21,6 +21,8 @@ opts.on('-o', '--out <OUT_DIR>', 'Specify the directory in which Ruby source fil
21
21
  opts.on_tail('-v', '--version', 'Show version.'){ puts(opts.ver); exit }
22
22
  opts.on_tail('-h', '--help', 'Show this message.'){ puts(opts.help); exit }
23
23
 
24
+ Version = Protobuf::Version
25
+
24
26
  begin
25
27
  opts.order!
26
28
  rescue OptionParser::ParseError
@@ -14,4 +14,10 @@ module Protobuf
14
14
  name.to_s.gsub(/\B[A-Z]/, '_\&').downcase
15
15
  end
16
16
  end
17
+
18
+ begin
19
+ Version = File.read(File.dirname(__FILE__) + '/../../../VERSION')
20
+ rescue
21
+ Version = 'unknown'
22
+ end
17
23
  end
@@ -46,7 +46,7 @@ module Protobuf
46
46
  end
47
47
  end
48
48
 
49
- class EnumValue < SimpleDelegator
49
+ class EnumValue < DelegateClass(Fixnum)
50
50
 
51
51
  attr_reader :parent_class, :name, :value
52
52
 
@@ -345,11 +345,8 @@ module Protobuf
345
345
  def encode(value)
346
346
  if value.respond_to?(:force_encoding)
347
347
  # Ruby 1.9
348
- old_encoding = value.encoding
349
348
  result = VarintField.encode(value.bytesize)
350
- result << value.force_encoding(Encoding::ASCII_8BIT)
351
- value.force_encoding(old_encoding)
352
- result
349
+ result << value.dup.force_encoding(Encoding::ASCII_8BIT)
353
350
  else
354
351
  # Ruby 1.8
355
352
  result = VarintField.encode(value.size)
@@ -0,0 +1,31 @@
1
+ require 'protobuf/rpc/server'
2
+ require 'protobuf/rpc/handler'
3
+ require 'test/proto/rpc.pb'
4
+
5
+ class Tutorial::SearchHandler < Protobuf::Rpc::Handler
6
+ request Tutorial::Person
7
+ response Tutorial::AddressBook
8
+
9
+ def self.process_request(request, response)
10
+ # TODO: edit this method
11
+ end
12
+ end
13
+
14
+ class Tutorial::AddHandler < Protobuf::Rpc::Handler
15
+ request Tutorial::Person
16
+ response Tutorial::Person
17
+
18
+ def self.process_request(request, response)
19
+ # TODO: edit this method
20
+ end
21
+ end
22
+
23
+ class Tutorial::AddressBookService < Protobuf::Rpc::Server
24
+ def setup_handlers
25
+ @handlers = {
26
+ :search => Tutorial::SearchHandler,
27
+ :add => Tutorial::AddHandler,
28
+ }
29
+ end
30
+ end
31
+
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ require 'protobuf/rpc/client'
3
+ require 'test/proto/rpc.pb'
4
+
5
+ # build request
6
+ request = Tutorial::Person.new
7
+ # TODO: setup a request
8
+ raise StandardError, 'setup a request'
9
+
10
+ # create blunk response
11
+ response = Tutorial::Person.new
12
+
13
+ # execute rpc
14
+ Protobuf::Rpc::Client.new('localhost', 9999).call :add, request, response
15
+
16
+ # show response
17
+ puts response
18
+
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ require 'protobuf/rpc/client'
3
+ require 'test/proto/rpc.pb'
4
+
5
+ # build request
6
+ request = Tutorial::Person.new
7
+ # TODO: setup a request
8
+ raise StandardError, 'setup a request'
9
+
10
+ # create blunk response
11
+ response = Tutorial::AddressBook.new
12
+
13
+ # execute rpc
14
+ Protobuf::Rpc::Client.new('localhost', 9999).call :search, request, response
15
+
16
+ # show response
17
+ puts response
18
+
@@ -0,0 +1,28 @@
1
+ ### Generated by rprotoc. DO NOT EDIT!
2
+ ### <proto file: test/proto/float_default.proto>
3
+ # message M {
4
+ # optional float f = 1 [default = 4.2];
5
+ # optional float g = 2 [default = -4.2];
6
+ # optional float h = 3 [default = 4352];
7
+ # optional float i = 4 [default = 23145.2 ];
8
+ # optional float j = 5 [default = -5 ];
9
+ # optional float k = 6 [default = +23 ];
10
+ # optional float l = 7 [default = +23.42 ];
11
+ # }
12
+ #
13
+
14
+ require 'protobuf/message/message'
15
+ require 'protobuf/message/enum'
16
+ require 'protobuf/message/service'
17
+ require 'protobuf/message/extend'
18
+
19
+ class M < ::Protobuf::Message
20
+ defined_in __FILE__
21
+ optional :float, :f, 1, :default => 4.2
22
+ optional :float, :g, 2, :default => -4.2
23
+ optional :float, :h, 3, :default => 4352
24
+ optional :float, :i, 4, :default => 23145.2
25
+ optional :float, :j, 5, :default => -5
26
+ optional :float, :k, 6, :default => 23
27
+ optional :float, :l, 7, :default => 23.42
28
+ end
@@ -0,0 +1,16 @@
1
+ ### Generated by rprotoc. DO NOT EDIT!
2
+ ### <proto file: test/proto/rpc.proto>
3
+ # package tutorial;
4
+ #
5
+ # service AddressBookService {
6
+ # rpc Search (Person) returns (AddressBook);
7
+ # rpc Add (Person) returns (Person);
8
+ # }
9
+
10
+ require 'protobuf/message/message'
11
+ require 'protobuf/message/enum'
12
+ require 'protobuf/message/service'
13
+ require 'protobuf/message/extend'
14
+
15
+ module Tutorial
16
+ end
@@ -40,6 +40,13 @@ class SerializeTest < Test::Unit::TestCase
40
40
  assert_equal('山田 太郎', person2.name)
41
41
  end
42
42
 
43
+ def test_frozen_string
44
+ person = Tutorial::Person.new
45
+ person.id = 1234
46
+ person.name = 'a b c'.freeze
47
+ assert_nothing_raised { serialized_string = person.serialize_to_string }
48
+ end
49
+
43
50
  def test_unknown_field
44
51
  person = Tutorial::Person.new
45
52
  person.id = 1234
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 4
8
- - 4
9
- version: 0.4.4
8
+ - 5
9
+ version: 0.4.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - MATSUYAMA Kengo
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-04 00:00:00 +09:00
17
+ date: 2010-07-17 00:00:00 +09:00
18
18
  default_executable: rprotoc
19
19
  dependencies: []
20
20
 
@@ -147,33 +147,38 @@ signing_key:
147
147
  specification_version: 3
148
148
  summary: Protocol Buffers for Ruby
149
149
  test_files:
150
- - test/check_unbuild.rb
151
- - test/test_descriptor.rb
152
- - test/test_optional_field.rb
153
- - test/proto/merge.pb.rb
154
- - test/proto/ext_collision.pb.rb
155
- - test/proto/lowercase.pb.rb
156
- - test/proto/addressbook_base.pb.rb
157
150
  - test/proto/packed.pb.rb
158
- - test/proto/optional_field.pb.rb
151
+ - test/proto/types.pb.rb
159
152
  - test/proto/addressbook.pb.rb
160
- - test/proto/addressbook_ext.pb.rb
161
- - test/proto/nested.pb.rb
162
153
  - test/proto/ext_range.pb.rb
163
- - test/proto/types.pb.rb
154
+ - test/proto/nested.pb.rb
155
+ - test/proto/client_search.rb
156
+ - test/proto/addressbook_base.pb.rb
157
+ - test/proto/rpc.pb.rb
158
+ - test/proto/address_book_service.rb
164
159
  - test/proto/collision.pb.rb
165
- - test/test_enum_value.rb
166
- - test/test_repeated_types.rb
167
- - test/test_types.rb
168
- - test/test_extension.rb
169
- - test/test_serialize.rb
170
- - test/test_standard_message.rb
171
- - test/test_packed_field.rb
172
- - test/test_lowercase.rb
160
+ - test/proto/optional_field.pb.rb
161
+ - test/proto/merge.pb.rb
162
+ - test/proto/addressbook_ext.pb.rb
163
+ - test/proto/client_add.rb
164
+ - test/proto/float_default.pb.rb
165
+ - test/proto/lowercase.pb.rb
166
+ - test/proto/ext_collision.pb.rb
173
167
  - test/test_compiler.rb
174
- - test/test_message.rb
175
168
  - test/test_parse.rb
176
169
  - test/test_addressbook.rb
170
+ - test/test_extension.rb
171
+ - test/test_lowercase.rb
172
+ - test/test_standard_message.rb
173
+ - test/test_enum_value.rb
174
+ - test/test_message.rb
175
+ - test/test_types.rb
176
+ - test/test_repeated_types.rb
177
+ - test/test_descriptor.rb
178
+ - test/test_optional_field.rb
179
+ - test/test_packed_field.rb
180
+ - test/test_serialize.rb
181
+ - test/check_unbuild.rb
182
+ - examples/addressbook.pb.rb
177
183
  - examples/writing_a_message.rb
178
184
  - examples/reading_a_message.rb
179
- - examples/addressbook.pb.rb