ruby-serial 1.0.1.20130709 → 1.0.2.20130725
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/AUTHORS +1 -0
 - data/ChangeLog +5 -0
 - data/ReleaseInfo +1 -1
 - data/lib/ruby-serial/common.rb +1 -0
 - data/lib/ruby-serial/versions/1/deserializer.rb +5 -2
 - data/lib/ruby-serial/versions/1/serializer.rb +14 -1
 - metadata +2 -2
 
    
        data/AUTHORS
    CHANGED
    
    
    
        data/ChangeLog
    CHANGED
    
    
    
        data/ReleaseInfo
    CHANGED
    
    
    
        data/lib/ruby-serial/common.rb
    CHANGED
    
    
| 
         @@ -52,6 +52,9 @@ module RubySerial 
     | 
|
| 
       52 
52 
     | 
    
         
             
                              return decoded_obj[OBJECT_CONTENT_REFERENCE].to_sym
         
     | 
| 
       53 
53 
     | 
    
         
             
                            elsif (decoded_obj[OBJECT_CLASSNAME_REFERENCE] == CLASS_ID_ENCODING)
         
     | 
| 
       54 
54 
     | 
    
         
             
                              return Encoding::find(decoded_obj[OBJECT_CONTENT_REFERENCE])
         
     | 
| 
      
 55 
     | 
    
         
            +
                            elsif (decoded_obj[OBJECT_CLASSNAME_REFERENCE] == CLASS_ID_RANGE)
         
     | 
| 
      
 56 
     | 
    
         
            +
                              serialized_first, serialized_last, exclude_end = decoded_obj[OBJECT_CONTENT_REFERENCE]
         
     | 
| 
      
 57 
     | 
    
         
            +
                              return (exclude_end ? (get_original_rec(serialized_first)...get_original_rec(serialized_last)) : (get_original_rec(serialized_first)..get_original_rec(serialized_last)) )
         
     | 
| 
       55 
58 
     | 
    
         
             
                            elsif (decoded_obj[OBJECT_CLASSNAME_REFERENCE] == nil)
         
     | 
| 
       56 
59 
     | 
    
         
             
                              # Normal hash
         
     | 
| 
       57 
60 
     | 
    
         
             
                              hash_obj = ((container_to_fill == nil) ? {} : container_to_fill)
         
     | 
| 
         @@ -62,7 +65,7 @@ module RubySerial 
     | 
|
| 
       62 
65 
     | 
    
         
             
                            else
         
     | 
| 
       63 
66 
     | 
    
         
             
                              # We deserialize a home-made object
         
     | 
| 
       64 
67 
     | 
    
         
             
                              # Instantiate the needed class
         
     | 
| 
       65 
     | 
    
         
            -
                              new_obj = ((container_to_fill == nil) ? eval(decoded_obj[OBJECT_CLASSNAME_REFERENCE]). 
     | 
| 
      
 68 
     | 
    
         
            +
                              new_obj = ((container_to_fill == nil) ? eval(decoded_obj[OBJECT_CLASSNAME_REFERENCE]).allocate : container_to_fill)
         
     | 
| 
       66 
69 
     | 
    
         
             
                              instance_vars = {}
         
     | 
| 
       67 
70 
     | 
    
         
             
                              decoded_obj[OBJECT_CONTENT_REFERENCE].each do |var_name, serialized_value|
         
     | 
| 
       68 
71 
     | 
    
         
             
                                instance_vars[var_name] = get_original_rec(serialized_value)
         
     | 
| 
         @@ -75,7 +78,7 @@ module RubySerial 
     | 
|
| 
       75 
78 
     | 
    
         
             
                            obj_id = decoded_obj[OBJECT_ID_REFERENCE]
         
     | 
| 
       76 
79 
     | 
    
         
             
                            if (@decoded_shared_objs[obj_id] == nil)
         
     | 
| 
       77 
80 
     | 
    
         
             
                              # Instantiate it already for cyclic decoding (avoids infinite loops)
         
     | 
| 
       78 
     | 
    
         
            -
                              @decoded_shared_objs[obj_id] = eval(@serialized_shared_objs[obj_id][0]). 
     | 
| 
      
 81 
     | 
    
         
            +
                              @decoded_shared_objs[obj_id] = eval(@serialized_shared_objs[obj_id][0]).allocate
         
     | 
| 
       79 
82 
     | 
    
         
             
                              get_original_rec(@serialized_shared_objs[obj_id][1], @decoded_shared_objs[obj_id])
         
     | 
| 
       80 
83 
     | 
    
         
             
                            end
         
     | 
| 
       81 
84 
     | 
    
         
             
                            return @decoded_shared_objs[obj_id]
         
     | 
| 
         @@ -93,8 +93,10 @@ module RubySerial 
     | 
|
| 
       93 
93 
     | 
    
         
             
                            (obj == true) or
         
     | 
| 
       94 
94 
     | 
    
         
             
                            (obj == false))
         
     | 
| 
       95 
95 
     | 
    
         
             
                          return obj
         
     | 
| 
      
 96 
     | 
    
         
            +
                        #
         
     | 
| 
      
 97 
     | 
    
         
            +
                        # First handle objects that are not shareable
         
     | 
| 
      
 98 
     | 
    
         
            +
                        #
         
     | 
| 
       96 
99 
     | 
    
         
             
                        elsif (obj.is_a?(Symbol))
         
     | 
| 
       97 
     | 
    
         
            -
                          # TODO (MessagePack): Remove this if MessagePack handles Symbols one day
         
     | 
| 
       98 
100 
     | 
    
         
             
                          return {
         
     | 
| 
       99 
101 
     | 
    
         
             
                            OBJECT_CLASSNAME_REFERENCE => CLASS_ID_SYMBOL,
         
     | 
| 
       100 
102 
     | 
    
         
             
                            OBJECT_CONTENT_REFERENCE => obj.to_s
         
     | 
| 
         @@ -104,12 +106,18 @@ module RubySerial 
     | 
|
| 
       104 
106 
     | 
    
         
             
                            OBJECT_CLASSNAME_REFERENCE => CLASS_ID_ENCODING,
         
     | 
| 
       105 
107 
     | 
    
         
             
                            OBJECT_CONTENT_REFERENCE => obj.name
         
     | 
| 
       106 
108 
     | 
    
         
             
                          }
         
     | 
| 
      
 109 
     | 
    
         
            +
                        #
         
     | 
| 
      
 110 
     | 
    
         
            +
                        # Handle shared objects
         
     | 
| 
      
 111 
     | 
    
         
            +
                        #
         
     | 
| 
       107 
112 
     | 
    
         
             
                        elsif (check_shared and
         
     | 
| 
       108 
113 
     | 
    
         
             
                               (@shared_objs[obj.object_id] != nil))
         
     | 
| 
       109 
114 
     | 
    
         
             
                          # This object is shared: store its object_id only
         
     | 
| 
       110 
115 
     | 
    
         
             
                          return {
         
     | 
| 
       111 
116 
     | 
    
         
             
                            OBJECT_ID_REFERENCE => obj.object_id
         
     | 
| 
       112 
117 
     | 
    
         
             
                          }
         
     | 
| 
      
 118 
     | 
    
         
            +
                        #
         
     | 
| 
      
 119 
     | 
    
         
            +
                        # Handle shareable objects
         
     | 
| 
      
 120 
     | 
    
         
            +
                        #
         
     | 
| 
       113 
121 
     | 
    
         
             
                        elsif (obj.is_a?(Array))
         
     | 
| 
       114 
122 
     | 
    
         
             
                          # First serialize its items
         
     | 
| 
       115 
123 
     | 
    
         
             
                          return obj.map { |item| get_msgpack_compatible_rec(item) }
         
     | 
| 
         @@ -122,6 +130,11 @@ module RubySerial 
     | 
|
| 
       122 
130 
     | 
    
         
             
                          return hash_to_store
         
     | 
| 
       123 
131 
     | 
    
         
             
                        elsif (obj.is_a?(String))
         
     | 
| 
       124 
132 
     | 
    
         
             
                          return obj
         
     | 
| 
      
 133 
     | 
    
         
            +
                        elsif (obj.is_a?(Range))
         
     | 
| 
      
 134 
     | 
    
         
            +
                          return {
         
     | 
| 
      
 135 
     | 
    
         
            +
                            OBJECT_CLASSNAME_REFERENCE => CLASS_ID_RANGE,
         
     | 
| 
      
 136 
     | 
    
         
            +
                            OBJECT_CONTENT_REFERENCE => [ get_msgpack_compatible_rec(obj.first), get_msgpack_compatible_rec(obj.last), obj.exclude_end? ]
         
     | 
| 
      
 137 
     | 
    
         
            +
                          }
         
     | 
| 
       125 
138 
     | 
    
         
             
                        else
         
     | 
| 
       126 
139 
     | 
    
         
             
                          # Handle other objects
         
     | 
| 
       127 
140 
     | 
    
         
             
                          serialized_instance_vars = {}
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ruby-serial
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.2.20130725
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2013-07- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-07-25 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: msgpack
         
     |