rack-amf 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/amf/class_mapping.rb +2 -1
- data/lib/amf/constants.rb +6 -6
- data/lib/amf/pure/serializer.rb +3 -6
- data/lib/amf/values/messages.rb +1 -1
- data/spec/amf/class_mapping_spec.rb +11 -0
- data/spec/amf/remoting_spec.rb +12 -0
- data/spec/amf/values/messages_spec.rb +1 -1
- metadata +2 -2
data/Rakefile
CHANGED
@@ -23,7 +23,7 @@ end
|
|
23
23
|
|
24
24
|
spec = Gem::Specification.new do |s|
|
25
25
|
s.name = 'rack-amf'
|
26
|
-
s.version = '0.0.
|
26
|
+
s.version = '0.0.2'
|
27
27
|
s.summary = 'AMF serializer/deserializer and AMF gateway packaged as a rack middleware'
|
28
28
|
|
29
29
|
s.files = FileList['README.rdoc', 'Rakefile', 'lib/**/*.rb', 'spec/**/*.rb']
|
data/lib/amf/class_mapping.rb
CHANGED
@@ -194,7 +194,8 @@ module AMF
|
|
194
194
|
|
195
195
|
# Fallback serializer
|
196
196
|
props = {}
|
197
|
-
|
197
|
+
@ignored_props ||= Object.new.public_methods
|
198
|
+
(ruby_obj.public_methods - @ignored_props).each do |method_name|
|
198
199
|
# Add them to the prop hash if they take no arguments
|
199
200
|
method_def = ruby_obj.method(method_name)
|
200
201
|
props[method_name] = ruby_obj.send(method_name) if method_def.arity == 0
|
data/lib/amf/constants.rb
CHANGED
@@ -34,12 +34,12 @@ module AMF
|
|
34
34
|
AMF3_XML_MARKER = 0x0B #"\v"
|
35
35
|
AMF3_BYTE_ARRAY_MARKER = 0x0C #"\f"
|
36
36
|
|
37
|
-
# Other Markers
|
38
|
-
EMPTY_STRING =
|
39
|
-
ANONYMOUS_OBJECT =
|
40
|
-
DYNAMIC_OBJECT =
|
41
|
-
CLOSE_DYNAMIC_OBJECT =
|
42
|
-
CLOSE_DYNAMIC_ARRAY =
|
37
|
+
# Other Markers
|
38
|
+
EMPTY_STRING = 0x01
|
39
|
+
ANONYMOUS_OBJECT = 0x01
|
40
|
+
DYNAMIC_OBJECT = 0x0B
|
41
|
+
CLOSE_DYNAMIC_OBJECT = 0x01
|
42
|
+
CLOSE_DYNAMIC_ARRAY = 0x01
|
43
43
|
|
44
44
|
MAX_INTEGER = 268435455
|
45
45
|
MIN_INTEGER = -268435456
|
data/lib/amf/pure/serializer.rb
CHANGED
@@ -136,14 +136,11 @@ module AMF
|
|
136
136
|
# Cache object
|
137
137
|
@object_cache.add_obj obj
|
138
138
|
|
139
|
-
|
140
|
-
|
141
|
-
# Any object that has a class name isn't dynamic
|
142
|
-
unless class_name
|
143
|
-
stream << DYNAMIC_OBJECT
|
144
|
-
end
|
139
|
+
# Always serialize things as dynamic objects
|
140
|
+
stream << DYNAMIC_OBJECT
|
145
141
|
|
146
142
|
# Write class name/anonymous
|
143
|
+
class_name = ClassMapper.get_as_class_name obj
|
147
144
|
if class_name
|
148
145
|
write_utf8_vr class_name, stream
|
149
146
|
else
|
data/lib/amf/values/messages.rb
CHANGED
@@ -92,6 +92,17 @@ describe AMF::ClassMapping do
|
|
92
92
|
hash.should == {'prop_a' => 'Test A', 'prop_b' => 'Test B', 'prop_c' => nil}
|
93
93
|
end
|
94
94
|
|
95
|
+
it "should extract inherited object properties" do
|
96
|
+
class RubyClass2 < RubyClass
|
97
|
+
end
|
98
|
+
obj = RubyClass2.new
|
99
|
+
obj.prop_a = 'Test A'
|
100
|
+
obj.prop_b = 'Test B'
|
101
|
+
|
102
|
+
hash = @mapper.props_for_serialization obj
|
103
|
+
hash.should == {'prop_a' => 'Test A', 'prop_b' => 'Test B', 'prop_c' => nil}
|
104
|
+
end
|
105
|
+
|
95
106
|
it "should allow custom serializers" do
|
96
107
|
class CustomSerializer
|
97
108
|
def can_handle? obj
|
data/spec/amf/remoting_spec.rb
CHANGED
@@ -34,4 +34,16 @@ describe "when handling responses" do
|
|
34
34
|
expected = request_fixture('simple-response.bin')
|
35
35
|
resp.serialize.should == expected
|
36
36
|
end
|
37
|
+
|
38
|
+
it "should serialize a AcknowledgeMessage response" do
|
39
|
+
ak = AMF::Values::AcknowledgeMessage.new
|
40
|
+
ak.clientId = "7B0ACE15-8D57-6AE5-B9D4-99C2D32C8246"
|
41
|
+
ak.messageId = "7B0ACE15-8D57-6AE5-B9D4-99C2D32C8246"
|
42
|
+
ak.timestamp = 0
|
43
|
+
resp = AMF::Response.new
|
44
|
+
resp.messages << AMF::Message.new('/1/onResult', '', ak)
|
45
|
+
|
46
|
+
expected = request_fixture('acknowledge-response.bin')
|
47
|
+
resp.serialize.should == expected
|
48
|
+
end
|
37
49
|
end
|
@@ -6,7 +6,7 @@ describe AMF::Values::AbstractMessage do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
it "should generate conforming uuids" do
|
9
|
-
@message.rand_uuid.should =~ /[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}/i
|
9
|
+
@message.send(:rand_uuid).should =~ /[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}/i
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-amf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Hillerson
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2009-10-
|
13
|
+
date: 2009-10-04 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|