neerfri-ramf 0.1.1 → 0.1.2

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.
@@ -124,8 +124,10 @@ module RAMF
124
124
  end
125
125
 
126
126
  def readU29O_object_values(stream,class_signature)
127
- store :object do
128
- object = load_or_create_object(class_signature)
127
+ object = store :object do
128
+ load_or_create_object(class_signature)
129
+ end
130
+ store :object, key_of(:object, object) do
129
131
  read_object_member_values(stream,class_signature,object)
130
132
  read_object_dynamic_members(stream, object) if class_signature.is_dynamic
131
133
  object
@@ -228,7 +230,9 @@ module RAMF
228
230
  end
229
231
 
230
232
  def readU29B_value(length,stream)
231
- RAMF::FlexObjects::ByteArray.new(stream.read(length))
233
+ store :object do
234
+ RAMF::FlexObjects::ByteArray.new(stream.read(length))
235
+ end
232
236
  end
233
237
 
234
238
  def readUTF_8_vr(stream)
@@ -32,7 +32,8 @@ module RAMF
32
32
  key = pair.first
33
33
  object = pair.last
34
34
  case object
35
- when Hash, Numeric, String, TrueClass, FalseClass, NilClass
35
+ when Hash, Numeric, String, TrueClass, FalseClass, \
36
+ NilClass, Array, Symbol, Date, Time, IO, Tempfile, StringIO
36
37
  m.merge({key=>object})
37
38
  else
38
39
  flex_remoting = object.class.flex_remoting
@@ -44,8 +44,8 @@ module RAMF
44
44
  reference_table = instance_variable_get(var_name)
45
45
  current_index = reference_table.length
46
46
  key = fixed_key ? fixed_key : current_index
47
- reference_table[key] = PlaceHolder.new #put a stub place holder in case we need it
48
- reference_table[key] = fixed_key ? current_index : block.call
47
+ reference_table[key] = PlaceHolder.new if !reference_table.has_key?(key) #put a stub place holder in case we need it
48
+ reference_table[key] = (!block_given? ? current_index : block.call)
49
49
  end
50
50
 
51
51
  def retrive(group, key)
@@ -53,6 +53,13 @@ module RAMF
53
53
  reference_table = instance_variable_get(var_name)
54
54
  reference_table[key]
55
55
  end
56
+
57
+ def key_of(group, value)
58
+ var_name = "@#{group.to_s}_references"
59
+ reference_table = instance_variable_get(var_name)
60
+ pair = reference_table.find{|k,v| v == value}
61
+ pair ? pair.first : nil
62
+ end
56
63
  end
57
64
 
58
65
  module ReferenceTableUser
@@ -68,7 +75,10 @@ module RAMF
68
75
  def retrive(*args, &block)
69
76
  @reference_table.retrive(*args, &block)
70
77
  end
78
+
79
+ def key_of(*args, &block)
80
+ @reference_table.key_of(*args, &block)
81
+ end
71
82
  end
72
83
  end
73
84
  end
74
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neerfri-ramf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neer Friedman
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-14 00:00:00 -08:00
12
+ date: 2009-02-06 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -23,82 +23,82 @@ extra_rdoc_files: []
23
23
 
24
24
  files:
25
25
  - lib/ramf
26
- - lib/ramf/operation_processors_manager.rb
26
+ - lib/ramf/configuration.rb
27
+ - lib/ramf/deserializer
28
+ - lib/ramf/deserializer/amf0_reader.rb
29
+ - lib/ramf/deserializer/amf3_reader.rb
30
+ - lib/ramf/deserializer/base.rb
31
+ - lib/ramf/deserializer.rb
32
+ - lib/ramf/amf_header.rb
33
+ - lib/ramf/util.rb
27
34
  - lib/ramf/io
28
- - lib/ramf/io/reference_table.rb
35
+ - lib/ramf/io/constants.rb
29
36
  - lib/ramf/io/flex_class_signature.rb
30
37
  - lib/ramf/io/common_read_write.rb
31
38
  - lib/ramf/io/place_holder.rb
32
- - lib/ramf/io/constants.rb
33
- - lib/ramf/serializer.rb
34
- - lib/ramf/amf_header.rb
35
- - lib/ramf/configuration.rb
39
+ - lib/ramf/io/reference_table.rb
40
+ - lib/ramf/operation_processors_manager.rb
41
+ - lib/ramf/serializer
42
+ - lib/ramf/serializer/amf3_writer.rb
43
+ - lib/ramf/serializer/amf0_writer.rb
44
+ - lib/ramf/serializer/base.rb
36
45
  - lib/ramf/amf_message.rb
37
- - lib/ramf/util.rb
38
- - lib/ramf/operation_request.rb
39
46
  - lib/ramf/flex_class_traits.rb
40
- - lib/ramf/deserializer.rb
41
- - lib/ramf/default_operation_processor.rb
47
+ - lib/ramf/amf_object.rb
42
48
  - lib/ramf/extensions
43
- - lib/ramf/extensions/object.rb
44
- - lib/ramf/extensions/exception.rb
45
- - lib/ramf/extensions/class.rb
46
49
  - lib/ramf/extensions/hash.rb
47
- - lib/ramf/deserializer
48
- - lib/ramf/deserializer/amf3_reader.rb
49
- - lib/ramf/deserializer/amf0_reader.rb
50
- - lib/ramf/deserializer/base.rb
51
- - lib/ramf/serializer
52
- - lib/ramf/serializer/base.rb
53
- - lib/ramf/serializer/amf3_writer.rb
54
- - lib/ramf/serializer/amf0_writer.rb
50
+ - lib/ramf/extensions/class.rb
51
+ - lib/ramf/extensions/exception.rb
52
+ - lib/ramf/extensions/object.rb
53
+ - lib/ramf/default_operation_processor.rb
55
54
  - lib/ramf/flex_objects
56
- - lib/ramf/flex_objects/flex_anonymous_object.rb
57
- - lib/ramf/flex_objects/command_message.rb
55
+ - lib/ramf/flex_objects/acknowledge_message.rb
58
56
  - lib/ramf/flex_objects/byte_array.rb
59
- - lib/ramf/flex_objects/remoting_message.rb
57
+ - lib/ramf/flex_objects/flex_anonymous_object.rb
60
58
  - lib/ramf/flex_objects/flex_object.rb
61
59
  - lib/ramf/flex_objects/error_message.rb
62
- - lib/ramf/flex_objects/acknowledge_message.rb
63
- - lib/ramf/amf_object.rb
60
+ - lib/ramf/flex_objects/remoting_message.rb
61
+ - lib/ramf/flex_objects/command_message.rb
62
+ - lib/ramf/operation_request.rb
63
+ - lib/ramf/serializer.rb
64
64
  - lib/ramf.rb
65
65
  - Rakefile
66
66
  - LICENSE
67
67
  - README
68
- - spec/io
69
- - spec/io/reference_table_spec.rb
70
- - spec/spec_helper.rb
71
- - spec/deserializer_spec.rb
72
- - spec/flex_class_traits_spec.rb
73
- - spec/inherited_class_traits_spec.rb
74
- - spec/default_operation_processor_spec.rb
75
- - spec/operation_processors_manager_spec.rb
76
68
  - spec/examples
77
- - spec/examples/examples_helper.rb
78
69
  - spec/examples/simple_amf_spec.rb
70
+ - spec/examples/examples_helper.rb
79
71
  - spec/examples/simple_remoting_spec.rb
80
72
  - spec/examples/remoting_login_spec.rb
81
73
  - spec/amf_object_spec.rb
74
+ - spec/flex_class_traits_spec.rb
75
+ - spec/io
76
+ - spec/io/reference_table_spec.rb
77
+ - spec/serializer
78
+ - spec/serializer/full_spec.rb
79
+ - spec/serializer/amf3_writer_spec.rb
80
+ - spec/serializer/base_spec.rb
81
+ - spec/inherited_class_traits_spec.rb
82
+ - spec/default_operation_processor_spec.rb
83
+ - spec/extensions
84
+ - spec/extensions/object_extensions_spec.rb
85
+ - spec/extensions/class_extensions_spec.rb
86
+ - spec/spec_helper.rb
82
87
  - spec/fixtures
83
- - spec/fixtures/catalog.yml
84
88
  - spec/fixtures/deserializer3.bin
85
89
  - spec/fixtures/ping_command_message.amf
90
+ - spec/fixtures/remoting_login_operation.amf
91
+ - spec/fixtures/deserializer2.bin
86
92
  - spec/fixtures/deserializer1.bin
87
93
  - spec/fixtures/simple_remoting_message.amf
88
94
  - spec/fixtures/deserializer1.rb
89
- - spec/fixtures/deserializer2.bin
90
- - spec/fixtures/remoting_login_operation.amf
95
+ - spec/fixtures/catalog.yml
91
96
  - spec/fixtures/deserializer2.rb
92
- - spec/extensions
93
- - spec/extensions/class_extensions_spec.rb
94
- - spec/extensions/object_extensions_spec.rb
95
- - spec/serializer
96
- - spec/serializer/full_spec.rb
97
- - spec/serializer/amf3_writer_spec.rb
98
- - spec/serializer/base_spec.rb
97
+ - spec/operation_processors_manager_spec.rb
99
98
  - spec/flex_objects
100
- - spec/flex_objects/flex_anonymous_object_spec.rb
101
99
  - spec/flex_objects/byte_array_spec.rb
100
+ - spec/flex_objects/flex_anonymous_object_spec.rb
101
+ - spec/deserializer_spec.rb
102
102
  has_rdoc: true
103
103
  homepage: http://ramf.saveanalien.com
104
104
  post_install_message:
@@ -130,37 +130,37 @@ signing_key:
130
130
  specification_version: 2
131
131
  summary: An AMF serializer/deserializer for ruby
132
132
  test_files:
133
- - spec/io
134
- - spec/io/reference_table_spec.rb
135
- - spec/spec_helper.rb
136
- - spec/deserializer_spec.rb
137
- - spec/flex_class_traits_spec.rb
138
- - spec/inherited_class_traits_spec.rb
139
- - spec/default_operation_processor_spec.rb
140
- - spec/operation_processors_manager_spec.rb
141
133
  - spec/examples
142
- - spec/examples/examples_helper.rb
143
134
  - spec/examples/simple_amf_spec.rb
135
+ - spec/examples/examples_helper.rb
144
136
  - spec/examples/simple_remoting_spec.rb
145
137
  - spec/examples/remoting_login_spec.rb
146
138
  - spec/amf_object_spec.rb
139
+ - spec/flex_class_traits_spec.rb
140
+ - spec/io
141
+ - spec/io/reference_table_spec.rb
142
+ - spec/serializer
143
+ - spec/serializer/full_spec.rb
144
+ - spec/serializer/amf3_writer_spec.rb
145
+ - spec/serializer/base_spec.rb
146
+ - spec/inherited_class_traits_spec.rb
147
+ - spec/default_operation_processor_spec.rb
148
+ - spec/extensions
149
+ - spec/extensions/object_extensions_spec.rb
150
+ - spec/extensions/class_extensions_spec.rb
151
+ - spec/spec_helper.rb
147
152
  - spec/fixtures
148
- - spec/fixtures/catalog.yml
149
153
  - spec/fixtures/deserializer3.bin
150
154
  - spec/fixtures/ping_command_message.amf
155
+ - spec/fixtures/remoting_login_operation.amf
156
+ - spec/fixtures/deserializer2.bin
151
157
  - spec/fixtures/deserializer1.bin
152
158
  - spec/fixtures/simple_remoting_message.amf
153
159
  - spec/fixtures/deserializer1.rb
154
- - spec/fixtures/deserializer2.bin
155
- - spec/fixtures/remoting_login_operation.amf
160
+ - spec/fixtures/catalog.yml
156
161
  - spec/fixtures/deserializer2.rb
157
- - spec/extensions
158
- - spec/extensions/class_extensions_spec.rb
159
- - spec/extensions/object_extensions_spec.rb
160
- - spec/serializer
161
- - spec/serializer/full_spec.rb
162
- - spec/serializer/amf3_writer_spec.rb
163
- - spec/serializer/base_spec.rb
162
+ - spec/operation_processors_manager_spec.rb
164
163
  - spec/flex_objects
165
- - spec/flex_objects/flex_anonymous_object_spec.rb
166
164
  - spec/flex_objects/byte_array_spec.rb
165
+ - spec/flex_objects/flex_anonymous_object_spec.rb
166
+ - spec/deserializer_spec.rb