ruby-protocol-buffers 1.2.2 → 1.2.3.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/protocol_buffers/compiler/file_descriptor_to_ruby.rb +0 -3
- data/lib/protocol_buffers/runtime/field.rb +44 -8
- data/lib/protocol_buffers/runtime/message.rb +24 -27
- data/spec/fields_spec.rb +4 -0
- data/spec/runtime_spec.rb +57 -7
- metadata +63 -95
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            1.2. | 
| 1 | 
            +
            1.2.3.beta1
         | 
| @@ -120,22 +120,40 @@ module ProtocolBuffers | |
| 120 120 | 
             
                  @opts = opts.dup
         | 
| 121 121 | 
             
                end
         | 
| 122 122 |  | 
| 123 | 
            -
                def  | 
| 124 | 
            -
                   | 
| 125 | 
            -
                     | 
| 126 | 
            -
             | 
| 123 | 
            +
                def add_reader_to(klass)
         | 
| 124 | 
            +
                  if repeated?
         | 
| 125 | 
            +
                    klass.class_eval <<-EOF, __FILE__, __LINE__+1
         | 
| 126 | 
            +
                    def #{name}
         | 
| 127 | 
            +
                      unless @#{name}
         | 
| 128 | 
            +
                        @#{name} = RepeatedField.new(fields[#{tag}])
         | 
| 129 | 
            +
                      end
         | 
| 130 | 
            +
                      @#{name}
         | 
| 131 | 
            +
                    end
         | 
| 132 | 
            +
                    EOF
         | 
| 133 | 
            +
                  else
         | 
| 134 | 
            +
                    klass.class_eval <<-EOF, __FILE__, __LINE__+1
         | 
| 135 | 
            +
                    def #{name}
         | 
| 136 | 
            +
                      if @set_fields[#{tag}] == nil
         | 
| 137 | 
            +
                        # first access of this field, generate it
         | 
| 138 | 
            +
                        initialize_field(#{tag})
         | 
| 139 | 
            +
                      end
         | 
| 140 | 
            +
                      @#{name}
         | 
| 141 | 
            +
                    end
         | 
| 142 | 
            +
                    EOF
         | 
| 143 | 
            +
                  end
         | 
| 144 | 
            +
                end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                def add_writer_to(klass)
         | 
| 127 147 | 
             
                  if repeated?
         | 
| 128 148 | 
             
                    klass.class_eval <<-EOF, __FILE__, __LINE__+1
         | 
| 129 149 | 
             
                      def #{name}=(value)
         | 
| 130 150 | 
             
                        if value.nil?
         | 
| 131 | 
            -
                           | 
| 151 | 
            +
                          #{name}.clear
         | 
| 132 152 | 
             
                        else
         | 
| 133 | 
            -
                           | 
| 153 | 
            +
                          #{name}.clear
         | 
| 134 154 | 
             
                          value.each { |i| @#{name}.push i }
         | 
| 135 155 | 
             
                        end
         | 
| 136 156 | 
             
                      end
         | 
| 137 | 
            -
             | 
| 138 | 
            -
                      def has_#{name}?; true; end
         | 
| 139 157 | 
             
                    EOF
         | 
| 140 158 | 
             
                  else
         | 
| 141 159 | 
             
                    klass.class_eval <<-EOF, __FILE__, __LINE__+1
         | 
| @@ -154,7 +172,23 @@ module ProtocolBuffers | |
| 154 172 | 
             
                          end
         | 
| 155 173 | 
             
                        end
         | 
| 156 174 | 
             
                      end
         | 
| 175 | 
            +
                    EOF
         | 
| 176 | 
            +
                  end
         | 
| 177 | 
            +
                end
         | 
| 178 | 
            +
             | 
| 179 | 
            +
                def add_methods_to(klass)
         | 
| 180 | 
            +
                  add_reader_to(klass)
         | 
| 181 | 
            +
                  add_writer_to(klass)
         | 
| 157 182 |  | 
| 183 | 
            +
                  if repeated?
         | 
| 184 | 
            +
                    # repeated fields are always "set"
         | 
| 185 | 
            +
                    klass.initial_set_fields[tag] = true
         | 
| 186 | 
            +
             | 
| 187 | 
            +
                    klass.class_eval <<-EOF, __FILE__, __LINE__+1
         | 
| 188 | 
            +
                      def has_#{name}?; true; end
         | 
| 189 | 
            +
                    EOF
         | 
| 190 | 
            +
                  else
         | 
| 191 | 
            +
                    klass.class_eval <<-EOF, __FILE__, __LINE__+1
         | 
| 158 192 | 
             
                      def has_#{name}?
         | 
| 159 193 | 
             
                        value_for_tag?(#{tag})
         | 
| 160 194 | 
             
                      end
         | 
| @@ -533,6 +567,8 @@ module ProtocolBuffers | |
| 533 567 |  | 
| 534 568 | 
             
                class MessageField < Field
         | 
| 535 569 | 
             
                  include WireFormats::LENGTH_DELIMITED
         | 
| 570 | 
            +
                  
         | 
| 571 | 
            +
                  attr_reader :proxy_class
         | 
| 536 572 |  | 
| 537 573 | 
             
                  def initialize(proxy_class, otype, name, tag, opts = {})
         | 
| 538 574 | 
             
                    super(otype, name, tag, opts)
         | 
| @@ -232,22 +232,7 @@ module ProtocolBuffers | |
| 232 232 | 
             
                #   message = MyMessageClass.new
         | 
| 233 233 | 
             
                #   message.attributes = attributes
         | 
| 234 234 | 
             
                def initialize(attributes = {})
         | 
| 235 | 
            -
                  @set_fields =  | 
| 236 | 
            -
             | 
| 237 | 
            -
                  fields.each do |tag, field|
         | 
| 238 | 
            -
                    if field.repeated?
         | 
| 239 | 
            -
                      self.instance_variable_set("@#{field.name}", RepeatedField.new(field))
         | 
| 240 | 
            -
                      @set_fields[tag] = true # repeated fields are always "set"
         | 
| 241 | 
            -
                    else
         | 
| 242 | 
            -
                      value = field.default_value
         | 
| 243 | 
            -
                      self.__send__("#{field.name}=", value)
         | 
| 244 | 
            -
                      @set_fields[tag] = false
         | 
| 245 | 
            -
                      if field.class == Field::MessageField
         | 
| 246 | 
            -
                        value.notify_on_change(self, tag)
         | 
| 247 | 
            -
                      end
         | 
| 248 | 
            -
                    end
         | 
| 249 | 
            -
                  end
         | 
| 250 | 
            -
             | 
| 235 | 
            +
                  @set_fields = self.class.initial_set_fields.dup
         | 
| 251 236 | 
             
                  self.attributes = attributes
         | 
| 252 237 | 
             
                end
         | 
| 253 238 |  | 
| @@ -354,6 +339,10 @@ module ProtocolBuffers | |
| 354 339 | 
             
                  @fields || @fields = {}
         | 
| 355 340 | 
             
                end
         | 
| 356 341 |  | 
| 342 | 
            +
                def self.initial_set_fields
         | 
| 343 | 
            +
                  @set_fields ||= []
         | 
| 344 | 
            +
                end
         | 
| 345 | 
            +
             | 
| 357 346 | 
             
                # Returns a hash of { tag => ProtocolBuffers::Field }
         | 
| 358 347 | 
             
                def fields
         | 
| 359 348 | 
             
                  self.class.fields
         | 
| @@ -418,7 +407,6 @@ module ProtocolBuffers | |
| 418 407 | 
             
                end
         | 
| 419 408 |  | 
| 420 409 | 
             
                def self.define_field(otype, type, name, tag, opts = {}) # :NODOC:
         | 
| 421 | 
            -
                  raise("gen_methods! already called, cannot add more fields") if @methods_generated
         | 
| 422 410 | 
             
                  type = type.is_a?(Module) ? type : type.to_sym
         | 
| 423 411 | 
             
                  name = name.to_sym
         | 
| 424 412 | 
             
                  tag  = tag.to_i
         | 
| @@ -462,11 +450,13 @@ module ProtocolBuffers | |
| 462 450 | 
             
                  return true unless @has_required_field
         | 
| 463 451 |  | 
| 464 452 | 
             
                  fields.each do |tag, field|
         | 
| 465 | 
            -
                    if field.otype  | 
| 466 | 
            -
             | 
| 467 | 
            -
             | 
| 468 | 
            -
                     | 
| 453 | 
            +
                    next if field.otype != :required
         | 
| 454 | 
            +
                    next if message.value_for_tag?(tag) && (field.class != Field::MessageField || message.value_for_tag(tag).valid?)
         | 
| 455 | 
            +
                    return false unless raise_exception
         | 
| 456 | 
            +
                    raise(ProtocolBuffers::EncodeError.new(field), "Required field '#{field.name}' is invalid")
         | 
| 469 457 | 
             
                  end
         | 
| 458 | 
            +
             | 
| 459 | 
            +
                  true
         | 
| 470 460 | 
             
                end
         | 
| 471 461 |  | 
| 472 462 | 
             
                def validate!
         | 
| @@ -492,14 +482,21 @@ module ProtocolBuffers | |
| 492 482 | 
             
                  (@unknown_fields || []).size
         | 
| 493 483 | 
             
                end
         | 
| 494 484 |  | 
| 495 | 
            -
                #  | 
| 496 | 
            -
                # called by the generated .pb.rb code, it's not necessary to call this
         | 
| 497 | 
            -
                # method directly.
         | 
| 485 | 
            +
                # left in for compatibility with previously created .pb.rb files -- no longer used
         | 
| 498 486 | 
             
                def self.gen_methods! # :NODOC:
         | 
| 499 487 | 
             
                  @methods_generated = true
         | 
| 500 | 
            -
             | 
| 501 | 
            -
             | 
| 502 | 
            -
             | 
| 488 | 
            +
                end
         | 
| 489 | 
            +
             | 
| 490 | 
            +
                protected
         | 
| 491 | 
            +
             | 
| 492 | 
            +
                def initialize_field(tag)
         | 
| 493 | 
            +
                  field = fields[tag]
         | 
| 494 | 
            +
                  new_value = field.default_value
         | 
| 495 | 
            +
                  self.instance_variable_set("@#{field.name}", new_value)
         | 
| 496 | 
            +
                  if field.class == Field::MessageField
         | 
| 497 | 
            +
                    new_value.notify_on_change(self, tag)
         | 
| 498 | 
            +
                  end
         | 
| 499 | 
            +
                  @set_fields[tag] = false
         | 
| 503 500 | 
             
                end
         | 
| 504 501 |  | 
| 505 502 | 
             
              end
         | 
    
        data/spec/fields_spec.rb
    CHANGED
    
    | @@ -46,4 +46,8 @@ describe ProtocolBuffers, "fields" do | |
| 46 46 | 
             
                end
         | 
| 47 47 | 
             
              end
         | 
| 48 48 |  | 
| 49 | 
            +
              it "provides a reader for proxy_class on message fields" do
         | 
| 50 | 
            +
                ProtocolBuffers::Field::MessageField.new(nil, :optional, :fake_name, 1).should respond_to(:proxy_class)
         | 
| 51 | 
            +
                ProtocolBuffers::Field::MessageField.new(Class, :optional, :fake_name, 1).proxy_class.should == Class
         | 
| 52 | 
            +
              end
         | 
| 49 53 | 
             
            end
         | 
    
        data/spec/runtime_spec.rb
    CHANGED
    
    | @@ -81,6 +81,45 @@ describe ProtocolBuffers, "runtime" do | |
| 81 81 | 
             
                a1.sub2.has_subsub1?.should == true
         | 
| 82 82 | 
             
              end
         | 
| 83 83 |  | 
| 84 | 
            +
              it "allows directly recursive sub-messages" do
         | 
| 85 | 
            +
                ProtocolBuffers::Compiler.compile_and_load_string <<-EOS
         | 
| 86 | 
            +
                 package foo;
         | 
| 87 | 
            +
                  message Foo {
         | 
| 88 | 
            +
                    optional int32 payload = 1;
         | 
| 89 | 
            +
                    optional Foo foo = 2;
         | 
| 90 | 
            +
                  }
         | 
| 91 | 
            +
                EOS
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                foo = Foo::Foo.new
         | 
| 94 | 
            +
                foo.has_foo?.should == false
         | 
| 95 | 
            +
                foo.foo.payload = 17
         | 
| 96 | 
            +
                foo.has_foo?.should == true
         | 
| 97 | 
            +
                foo.foo.has_foo?.should == false
         | 
| 98 | 
            +
              end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
              it "allows indirectly recursive sub-messages" do
         | 
| 101 | 
            +
                ProtocolBuffers::Compiler.compile_and_load_string <<-EOS
         | 
| 102 | 
            +
                 package foo;
         | 
| 103 | 
            +
                  message Foo {
         | 
| 104 | 
            +
                    optional int32 payload = 1;
         | 
| 105 | 
            +
                    optional Bar bar = 2;
         | 
| 106 | 
            +
                  }
         | 
| 107 | 
            +
             | 
| 108 | 
            +
                  message Bar {
         | 
| 109 | 
            +
                    optional Foo foo = 1;
         | 
| 110 | 
            +
                    optional int32 payload = 2;
         | 
| 111 | 
            +
                  }
         | 
| 112 | 
            +
                EOS
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                foo = Foo::Foo.new
         | 
| 115 | 
            +
                foo.has_bar?.should == false
         | 
| 116 | 
            +
                foo.bar.payload = 17
         | 
| 117 | 
            +
                foo.has_bar?.should == true
         | 
| 118 | 
            +
                foo.bar.has_foo?.should == false
         | 
| 119 | 
            +
                foo.bar.foo.payload = 23
         | 
| 120 | 
            +
                foo.bar.has_foo?.should == true
         | 
| 121 | 
            +
              end
         | 
| 122 | 
            +
             | 
| 84 123 | 
             
              it "pretends that repeated fields are arrays" do
         | 
| 85 124 | 
             
                # make sure our RepeatedField class acts like a normal Array
         | 
| 86 125 | 
             
                ProtocolBuffers::Compiler.compile_and_load_string <<-EOS
         | 
| @@ -239,10 +278,8 @@ describe ProtocolBuffers, "runtime" do | |
| 239 278 | 
             
                sub.payload.should == ""
         | 
| 240 279 | 
             
              end
         | 
| 241 280 |  | 
| 242 | 
            -
              it " | 
| 243 | 
            -
                 | 
| 244 | 
            -
                  A.define_field(:optional, :string, "newfield", 15)
         | 
| 245 | 
            -
                end.should raise_error()
         | 
| 281 | 
            +
              it "responds to gen_methods! for backwards compat" do
         | 
| 282 | 
            +
                A.gen_methods!
         | 
| 246 283 | 
             
              end
         | 
| 247 284 |  | 
| 248 285 | 
             
              def filled_in_bit
         | 
| @@ -496,16 +533,29 @@ describe ProtocolBuffers, "runtime" do | |
| 496 533 | 
             
                res3 = TehUnknown3::MyResult.parse(serialized2)
         | 
| 497 534 | 
             
                res3.field_1.should == 2
         | 
| 498 535 | 
             
              end
         | 
| 499 | 
            -
             | 
| 536 | 
            +
             | 
| 500 537 | 
             
              it "can compile and instantiate a message in a package with under_scores" do
         | 
| 501 538 | 
             
                Object.send(:remove_const, :UnderScore) if defined?(UnderScore)
         | 
| 502 | 
            -
             | 
| 539 | 
            +
             | 
| 503 540 | 
             
                ProtocolBuffers::Compiler.compile_and_load(
         | 
| 504 541 | 
             
                  File.join(File.dirname(__FILE__), "proto_files", "under_score_package.proto"))
         | 
| 505 | 
            -
             | 
| 542 | 
            +
             | 
| 506 543 | 
             
                proc do
         | 
| 507 544 | 
             
                  under_test = UnderScore::UnderTest.new
         | 
| 508 545 | 
             
                end.should_not raise_error()
         | 
| 509 546 | 
             
              end
         | 
| 510 547 |  | 
| 548 | 
            +
              describe "Message#valid?" do
         | 
| 549 | 
            +
                it "should validate sub-messages" do
         | 
| 550 | 
            +
                  f = Featureful::A.new
         | 
| 551 | 
            +
                  f.i3 = 1
         | 
| 552 | 
            +
                  f.sub3 = Featureful::A::Sub.new
         | 
| 553 | 
            +
                  f.valid?.should == false
         | 
| 554 | 
            +
                  f.sub3.valid?.should == false
         | 
| 555 | 
            +
                  f.sub3.payload_type = Featureful::A::Sub::Payloads::P1
         | 
| 556 | 
            +
                  f.valid?.should == true
         | 
| 557 | 
            +
                  f.sub3.valid?.should == true
         | 
| 558 | 
            +
                end
         | 
| 559 | 
            +
              end
         | 
| 560 | 
            +
             | 
| 511 561 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,105 +1,82 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ruby-protocol-buffers
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version | 
| 4 | 
            -
               | 
| 5 | 
            -
              prerelease: 
         | 
| 6 | 
            -
              segments: 
         | 
| 7 | 
            -
              - 1
         | 
| 8 | 
            -
              - 2
         | 
| 9 | 
            -
              - 2
         | 
| 10 | 
            -
              version: 1.2.2
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 1.2.3.beta1
         | 
| 5 | 
            +
              prerelease: 6
         | 
| 11 6 | 
             
            platform: ruby
         | 
| 12 | 
            -
            authors: | 
| 7 | 
            +
            authors:
         | 
| 13 8 | 
             
            - Brian Palmer
         | 
| 14 9 | 
             
            - Rob Marable
         | 
| 15 10 | 
             
            - Paulo Luis Franchini Casaretto
         | 
| 16 11 | 
             
            autorequire: 
         | 
| 17 12 | 
             
            bindir: bin
         | 
| 18 13 | 
             
            cert_chain: []
         | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 14 | 
            +
            date: 2012-04-25 00:00:00.000000000Z
         | 
| 15 | 
            +
            dependencies:
         | 
| 16 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 23 17 | 
             
              name: rspec
         | 
| 24 | 
            -
               | 
| 25 | 
            -
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 18 | 
            +
              requirement: &70124285265220 !ruby/object:Gem::Requirement
         | 
| 26 19 | 
             
                none: false
         | 
| 27 | 
            -
                requirements: | 
| 20 | 
            +
                requirements:
         | 
| 28 21 | 
             
                - - ~>
         | 
| 29 | 
            -
                  - !ruby/object:Gem::Version | 
| 30 | 
            -
                     | 
| 31 | 
            -
                    segments: 
         | 
| 32 | 
            -
                    - 2
         | 
| 33 | 
            -
                    - 5
         | 
| 34 | 
            -
                    version: "2.5"
         | 
| 22 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 23 | 
            +
                    version: '2.5'
         | 
| 35 24 | 
             
              type: :development
         | 
| 36 | 
            -
              version_requirements: *id001
         | 
| 37 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 38 | 
            -
              name: autotest-standalone
         | 
| 39 25 | 
             
              prerelease: false
         | 
| 40 | 
            -
               | 
| 26 | 
            +
              version_requirements: *70124285265220
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: autotest-standalone
         | 
| 29 | 
            +
              requirement: &70124285264800 !ruby/object:Gem::Requirement
         | 
| 41 30 | 
             
                none: false
         | 
| 42 | 
            -
                requirements: | 
| 43 | 
            -
                - -  | 
| 44 | 
            -
                  - !ruby/object:Gem::Version | 
| 45 | 
            -
                     | 
| 46 | 
            -
                    segments: 
         | 
| 47 | 
            -
                    - 0
         | 
| 48 | 
            -
                    version: "0"
         | 
| 31 | 
            +
                requirements:
         | 
| 32 | 
            +
                - - ! '>='
         | 
| 33 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 34 | 
            +
                    version: '0'
         | 
| 49 35 | 
             
              type: :development
         | 
| 50 | 
            -
              version_requirements: *id002
         | 
| 51 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 52 | 
            -
              name: autotest-growl
         | 
| 53 36 | 
             
              prerelease: false
         | 
| 54 | 
            -
               | 
| 37 | 
            +
              version_requirements: *70124285264800
         | 
| 38 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 39 | 
            +
              name: autotest-growl
         | 
| 40 | 
            +
              requirement: &70124285264340 !ruby/object:Gem::Requirement
         | 
| 55 41 | 
             
                none: false
         | 
| 56 | 
            -
                requirements: | 
| 57 | 
            -
                - -  | 
| 58 | 
            -
                  - !ruby/object:Gem::Version | 
| 59 | 
            -
                     | 
| 60 | 
            -
                    segments: 
         | 
| 61 | 
            -
                    - 0
         | 
| 62 | 
            -
                    version: "0"
         | 
| 42 | 
            +
                requirements:
         | 
| 43 | 
            +
                - - ! '>='
         | 
| 44 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            +
                    version: '0'
         | 
| 63 46 | 
             
              type: :development
         | 
| 64 | 
            -
              version_requirements: *id003
         | 
| 65 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 66 | 
            -
              name: rcov
         | 
| 67 47 | 
             
              prerelease: false
         | 
| 68 | 
            -
               | 
| 48 | 
            +
              version_requirements: *70124285264340
         | 
| 49 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 50 | 
            +
              name: rcov
         | 
| 51 | 
            +
              requirement: &70124285263920 !ruby/object:Gem::Requirement
         | 
| 69 52 | 
             
                none: false
         | 
| 70 | 
            -
                requirements: | 
| 71 | 
            -
                - -  | 
| 72 | 
            -
                  - !ruby/object:Gem::Version | 
| 73 | 
            -
                     | 
| 74 | 
            -
                    segments: 
         | 
| 75 | 
            -
                    - 0
         | 
| 76 | 
            -
                    version: "0"
         | 
| 53 | 
            +
                requirements:
         | 
| 54 | 
            +
                - - ! '>='
         | 
| 55 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 56 | 
            +
                    version: '0'
         | 
| 77 57 | 
             
              type: :development
         | 
| 78 | 
            -
              version_requirements: *id004
         | 
| 79 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 80 | 
            -
              name: yard
         | 
| 81 58 | 
             
              prerelease: false
         | 
| 82 | 
            -
               | 
| 59 | 
            +
              version_requirements: *70124285263920
         | 
| 60 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 61 | 
            +
              name: yard
         | 
| 62 | 
            +
              requirement: &70124285263480 !ruby/object:Gem::Requirement
         | 
| 83 63 | 
             
                none: false
         | 
| 84 | 
            -
                requirements: | 
| 85 | 
            -
                - -  | 
| 86 | 
            -
                  - !ruby/object:Gem::Version | 
| 87 | 
            -
                     | 
| 88 | 
            -
                    segments: 
         | 
| 89 | 
            -
                    - 0
         | 
| 90 | 
            -
                    version: "0"
         | 
| 64 | 
            +
                requirements:
         | 
| 65 | 
            +
                - - ! '>='
         | 
| 66 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 67 | 
            +
                    version: '0'
         | 
| 91 68 | 
             
              type: :development
         | 
| 92 | 
            -
               | 
| 69 | 
            +
              prerelease: false
         | 
| 70 | 
            +
              version_requirements: *70124285263480
         | 
| 93 71 | 
             
            description: 
         | 
| 94 | 
            -
            email: | 
| 72 | 
            +
            email:
         | 
| 95 73 | 
             
            - brian@codekitchen.net
         | 
| 96 | 
            -
            executables: | 
| 74 | 
            +
            executables:
         | 
| 97 75 | 
             
            - ruby-protoc
         | 
| 98 76 | 
             
            extensions: []
         | 
| 99 | 
            -
             | 
| 100 | 
            -
            extra_rdoc_files: 
         | 
| 77 | 
            +
            extra_rdoc_files:
         | 
| 101 78 | 
             
            - Changelog.md
         | 
| 102 | 
            -
            files: | 
| 79 | 
            +
            files:
         | 
| 103 80 | 
             
            - .document
         | 
| 104 81 | 
             
            - .gitignore
         | 
| 105 82 | 
             
            - Changelog.md
         | 
| @@ -151,38 +128,29 @@ files: | |
| 151 128 | 
             
            - spec/unicode_string_spec.rb
         | 
| 152 129 | 
             
            homepage: https://github.com/mozy/ruby-protocol-buffers
         | 
| 153 130 | 
             
            licenses: []
         | 
| 154 | 
            -
             | 
| 155 131 | 
             
            post_install_message: 
         | 
| 156 132 | 
             
            rdoc_options: []
         | 
| 157 | 
            -
             | 
| 158 | 
            -
            require_paths: 
         | 
| 133 | 
            +
            require_paths:
         | 
| 159 134 | 
             
            - lib
         | 
| 160 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement | 
| 135 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 161 136 | 
             
              none: false
         | 
| 162 | 
            -
              requirements: | 
| 163 | 
            -
              - -  | 
| 164 | 
            -
                - !ruby/object:Gem::Version | 
| 165 | 
            -
                   | 
| 166 | 
            -
             | 
| 167 | 
            -
                  - 0
         | 
| 168 | 
            -
                  version: "0"
         | 
| 169 | 
            -
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 137 | 
            +
              requirements:
         | 
| 138 | 
            +
              - - ! '>='
         | 
| 139 | 
            +
                - !ruby/object:Gem::Version
         | 
| 140 | 
            +
                  version: '0'
         | 
| 141 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 170 142 | 
             
              none: false
         | 
| 171 | 
            -
              requirements: | 
| 172 | 
            -
              - -  | 
| 173 | 
            -
                - !ruby/object:Gem::Version | 
| 174 | 
            -
                   | 
| 175 | 
            -
                  segments: 
         | 
| 176 | 
            -
                  - 0
         | 
| 177 | 
            -
                  version: "0"
         | 
| 143 | 
            +
              requirements:
         | 
| 144 | 
            +
              - - ! '>'
         | 
| 145 | 
            +
                - !ruby/object:Gem::Version
         | 
| 146 | 
            +
                  version: 1.3.1
         | 
| 178 147 | 
             
            requirements: []
         | 
| 179 | 
            -
             | 
| 180 148 | 
             
            rubyforge_project: 
         | 
| 181 | 
            -
            rubygems_version: 1.8. | 
| 149 | 
            +
            rubygems_version: 1.8.10
         | 
| 182 150 | 
             
            signing_key: 
         | 
| 183 151 | 
             
            specification_version: 3
         | 
| 184 152 | 
             
            summary: Ruby compiler and runtime for the google protocol buffers library.
         | 
| 185 | 
            -
            test_files: | 
| 153 | 
            +
            test_files:
         | 
| 186 154 | 
             
            - spec/compiler_spec.rb
         | 
| 187 155 | 
             
            - spec/fields_spec.rb
         | 
| 188 156 | 
             
            - spec/negative_int32_spec.rb
         |