RocketAMF 0.0.5

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.
Files changed (70) hide show
  1. data/README.rdoc +36 -0
  2. data/Rakefile +54 -0
  3. data/lib/rocketamf.rb +12 -0
  4. data/lib/rocketamf/class_mapping.rb +211 -0
  5. data/lib/rocketamf/common.rb +35 -0
  6. data/lib/rocketamf/constants.rb +47 -0
  7. data/lib/rocketamf/pure.rb +30 -0
  8. data/lib/rocketamf/pure/deserializer.rb +361 -0
  9. data/lib/rocketamf/pure/io_helpers.rb +94 -0
  10. data/lib/rocketamf/pure/remoting.rb +89 -0
  11. data/lib/rocketamf/pure/serializer.rb +327 -0
  12. data/lib/rocketamf/remoting.rb +133 -0
  13. data/lib/rocketamf/values/array_collection.rb +9 -0
  14. data/lib/rocketamf/values/messages.rb +133 -0
  15. data/lib/rocketamf/values/typed_hash.rb +13 -0
  16. data/lib/rocketamf/version.rb +9 -0
  17. data/spec/amf/class_mapping_set_spec.rb +34 -0
  18. data/spec/amf/class_mapping_spec.rb +120 -0
  19. data/spec/amf/deserializer_spec.rb +311 -0
  20. data/spec/amf/request_spec.rb +25 -0
  21. data/spec/amf/response_spec.rb +68 -0
  22. data/spec/amf/serializer_spec.rb +328 -0
  23. data/spec/amf/values/array_collection_spec.rb +6 -0
  24. data/spec/amf/values/messages_spec.rb +31 -0
  25. data/spec/fixtures/objects/amf0-boolean.bin +1 -0
  26. data/spec/fixtures/objects/amf0-date.bin +0 -0
  27. data/spec/fixtures/objects/amf0-ecma-ordinal-array.bin +0 -0
  28. data/spec/fixtures/objects/amf0-hash.bin +0 -0
  29. data/spec/fixtures/objects/amf0-null.bin +1 -0
  30. data/spec/fixtures/objects/amf0-number.bin +0 -0
  31. data/spec/fixtures/objects/amf0-object.bin +0 -0
  32. data/spec/fixtures/objects/amf0-ref-test.bin +0 -0
  33. data/spec/fixtures/objects/amf0-strict-array.bin +0 -0
  34. data/spec/fixtures/objects/amf0-string.bin +0 -0
  35. data/spec/fixtures/objects/amf0-typed-object.bin +0 -0
  36. data/spec/fixtures/objects/amf0-undefined.bin +1 -0
  37. data/spec/fixtures/objects/amf0-untyped-object.bin +0 -0
  38. data/spec/fixtures/objects/amf3-0.bin +0 -0
  39. data/spec/fixtures/objects/amf3-arrayRef.bin +1 -0
  40. data/spec/fixtures/objects/amf3-bigNum.bin +0 -0
  41. data/spec/fixtures/objects/amf3-date.bin +0 -0
  42. data/spec/fixtures/objects/amf3-datesRef.bin +0 -0
  43. data/spec/fixtures/objects/amf3-dynObject.bin +2 -0
  44. data/spec/fixtures/objects/amf3-emptyArray.bin +1 -0
  45. data/spec/fixtures/objects/amf3-emptyArrayRef.bin +1 -0
  46. data/spec/fixtures/objects/amf3-emptyStringRef.bin +1 -0
  47. data/spec/fixtures/objects/amf3-false.bin +1 -0
  48. data/spec/fixtures/objects/amf3-graphMember.bin +0 -0
  49. data/spec/fixtures/objects/amf3-hash.bin +2 -0
  50. data/spec/fixtures/objects/amf3-largeMax.bin +0 -0
  51. data/spec/fixtures/objects/amf3-largeMin.bin +0 -0
  52. data/spec/fixtures/objects/amf3-max.bin +1 -0
  53. data/spec/fixtures/objects/amf3-min.bin +0 -0
  54. data/spec/fixtures/objects/amf3-mixedArray.bin +11 -0
  55. data/spec/fixtures/objects/amf3-null.bin +1 -0
  56. data/spec/fixtures/objects/amf3-objRef.bin +0 -0
  57. data/spec/fixtures/objects/amf3-primArray.bin +1 -0
  58. data/spec/fixtures/objects/amf3-string.bin +1 -0
  59. data/spec/fixtures/objects/amf3-stringRef.bin +0 -0
  60. data/spec/fixtures/objects/amf3-symbol.bin +1 -0
  61. data/spec/fixtures/objects/amf3-true.bin +1 -0
  62. data/spec/fixtures/objects/amf3-typedObject.bin +2 -0
  63. data/spec/fixtures/request/acknowledge-response.bin +0 -0
  64. data/spec/fixtures/request/amf0-error-response.bin +0 -0
  65. data/spec/fixtures/request/commandMessage.bin +0 -0
  66. data/spec/fixtures/request/remotingMessage.bin +0 -0
  67. data/spec/fixtures/request/simple-response.bin +0 -0
  68. data/spec/spec.opts +1 -0
  69. data/spec/spec_helper.rb +32 -0
  70. metadata +133 -0
@@ -0,0 +1,6 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ describe RocketAMF::Values::ArrayCollection do
4
+ it "should deserialize properly"
5
+ it "should serialize properly"
6
+ end
@@ -0,0 +1,31 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ describe RocketAMF::Values::AbstractMessage do
4
+ before :each do
5
+ @message = RocketAMF::Values::AbstractMessage.new
6
+ end
7
+
8
+ it "should generate conforming uuids" do
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
+ end
11
+ end
12
+
13
+ describe RocketAMF::Values::ErrorMessage do
14
+ before :each do
15
+ @e = Exception.new('Error message')
16
+ @e.set_backtrace(['Backtrace 1', 'Backtrace 2'])
17
+ @message = RocketAMF::Values::ErrorMessage.new(nil, @e)
18
+ end
19
+
20
+ it "should serialize as a hash in AMF0" do
21
+ response = RocketAMF::Response.new
22
+ response.messages << RocketAMF::Message.new('1/onStatus', '', @message)
23
+ response.serialize.should == request_fixture('amf0-error-response.bin')
24
+ end
25
+
26
+ it "should extract exception properties correctly" do
27
+ @message.faultCode.should == 'Exception'
28
+ @message.faultString.should == 'Error message'
29
+ @message.faultDetail.should == "Backtrace 1\nBacktrace 2"
30
+ end
31
+ end
@@ -0,0 +1 @@
1
+   abc  
@@ -0,0 +1,2 @@
1
+
2
+ /another_public_propertya_public_valuenil_propertyproperty_onefooproperty_two
@@ -0,0 +1 @@
1
+     
@@ -0,0 +1 @@
1
+ ����
@@ -0,0 +1,11 @@
1
+ 
2
+ foo_onebar_one
3
+ foo_two
4
+ foo_three*
5
+ 
6
+  
7
+ 
8
+ 
9
+  * 
10
+ 
11
+ 
@@ -0,0 +1 @@
1
+ 
@@ -0,0 +1 @@
1
+ String . String
@@ -0,0 +1,2 @@
1
+
2
+ +org.rocketAMF.ASClassbazfoobar
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,32 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+ require 'spec/autorun'
9
+
10
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
11
+ require 'rocketamf'
12
+
13
+ def request_fixture(binary_path)
14
+ File.open(File.dirname(__FILE__) + '/fixtures/request/' + binary_path).read
15
+ end
16
+
17
+ def object_fixture(binary_path)
18
+ File.open(File.dirname(__FILE__) + '/fixtures/objects/' + binary_path).read
19
+ end
20
+
21
+ def create_request(binary_path)
22
+ RocketAMF::Request.new.populate_from_stream(StringIO.new(request_fixture(binary_path)))
23
+ end
24
+
25
+ # Add reset support to ClassMapping
26
+ module RocketAMF
27
+ class ClassMapping
28
+ def reset
29
+ @mappings = nil
30
+ end
31
+ end
32
+ end
metadata ADDED
@@ -0,0 +1,133 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: RocketAMF
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ platform: ruby
6
+ authors:
7
+ - Tony Hillerson
8
+ - Stephen Augenstein
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-10-29 00:00:00 -04:00
14
+ default_executable:
15
+ dependencies: []
16
+
17
+ description:
18
+ email: perl.programmer@gmail.com
19
+ executables: []
20
+
21
+ extensions: []
22
+
23
+ extra_rdoc_files:
24
+ - README.rdoc
25
+ files:
26
+ - README.rdoc
27
+ - Rakefile
28
+ - lib/rocketamf/class_mapping.rb
29
+ - lib/rocketamf/common.rb
30
+ - lib/rocketamf/constants.rb
31
+ - lib/rocketamf/pure/deserializer.rb
32
+ - lib/rocketamf/pure/io_helpers.rb
33
+ - lib/rocketamf/pure/remoting.rb
34
+ - lib/rocketamf/pure/serializer.rb
35
+ - lib/rocketamf/pure.rb
36
+ - lib/rocketamf/remoting.rb
37
+ - lib/rocketamf/values/array_collection.rb
38
+ - lib/rocketamf/values/messages.rb
39
+ - lib/rocketamf/values/typed_hash.rb
40
+ - lib/rocketamf/version.rb
41
+ - lib/rocketamf.rb
42
+ - spec/amf/class_mapping_set_spec.rb
43
+ - spec/amf/class_mapping_spec.rb
44
+ - spec/amf/deserializer_spec.rb
45
+ - spec/amf/request_spec.rb
46
+ - spec/amf/response_spec.rb
47
+ - spec/amf/serializer_spec.rb
48
+ - spec/amf/values/array_collection_spec.rb
49
+ - spec/amf/values/messages_spec.rb
50
+ - spec/spec_helper.rb
51
+ - spec/fixtures/objects/amf0-boolean.bin
52
+ - spec/fixtures/objects/amf0-date.bin
53
+ - spec/fixtures/objects/amf0-ecma-ordinal-array.bin
54
+ - spec/fixtures/objects/amf0-hash.bin
55
+ - spec/fixtures/objects/amf0-null.bin
56
+ - spec/fixtures/objects/amf0-number.bin
57
+ - spec/fixtures/objects/amf0-object.bin
58
+ - spec/fixtures/objects/amf0-ref-test.bin
59
+ - spec/fixtures/objects/amf0-strict-array.bin
60
+ - spec/fixtures/objects/amf0-string.bin
61
+ - spec/fixtures/objects/amf0-typed-object.bin
62
+ - spec/fixtures/objects/amf0-undefined.bin
63
+ - spec/fixtures/objects/amf0-untyped-object.bin
64
+ - spec/fixtures/objects/amf3-0.bin
65
+ - spec/fixtures/objects/amf3-arrayRef.bin
66
+ - spec/fixtures/objects/amf3-bigNum.bin
67
+ - spec/fixtures/objects/amf3-date.bin
68
+ - spec/fixtures/objects/amf3-datesRef.bin
69
+ - spec/fixtures/objects/amf3-dynObject.bin
70
+ - spec/fixtures/objects/amf3-emptyArray.bin
71
+ - spec/fixtures/objects/amf3-emptyArrayRef.bin
72
+ - spec/fixtures/objects/amf3-emptyStringRef.bin
73
+ - spec/fixtures/objects/amf3-false.bin
74
+ - spec/fixtures/objects/amf3-graphMember.bin
75
+ - spec/fixtures/objects/amf3-hash.bin
76
+ - spec/fixtures/objects/amf3-largeMax.bin
77
+ - spec/fixtures/objects/amf3-largeMin.bin
78
+ - spec/fixtures/objects/amf3-max.bin
79
+ - spec/fixtures/objects/amf3-min.bin
80
+ - spec/fixtures/objects/amf3-mixedArray.bin
81
+ - spec/fixtures/objects/amf3-null.bin
82
+ - spec/fixtures/objects/amf3-objRef.bin
83
+ - spec/fixtures/objects/amf3-primArray.bin
84
+ - spec/fixtures/objects/amf3-string.bin
85
+ - spec/fixtures/objects/amf3-stringRef.bin
86
+ - spec/fixtures/objects/amf3-symbol.bin
87
+ - spec/fixtures/objects/amf3-true.bin
88
+ - spec/fixtures/objects/amf3-typedObject.bin
89
+ - spec/fixtures/request/acknowledge-response.bin
90
+ - spec/fixtures/request/amf0-error-response.bin
91
+ - spec/fixtures/request/commandMessage.bin
92
+ - spec/fixtures/request/remotingMessage.bin
93
+ - spec/fixtures/request/simple-response.bin
94
+ - spec/spec.opts
95
+ has_rdoc: true
96
+ homepage: http://github.com/warhammerkid/rocket-amf
97
+ licenses: []
98
+
99
+ post_install_message:
100
+ rdoc_options:
101
+ - --line-numbers
102
+ - --main
103
+ - README.rdoc
104
+ require_paths:
105
+ - lib
106
+ required_ruby_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
111
+ version:
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: "0"
117
+ version:
118
+ requirements: []
119
+
120
+ rubyforge_project:
121
+ rubygems_version: 1.3.5
122
+ signing_key:
123
+ specification_version: 3
124
+ summary: Fast AMF serializer/deserializer and request/response wrappers to simplify remoting implementation
125
+ test_files:
126
+ - spec/amf/class_mapping_set_spec.rb
127
+ - spec/amf/class_mapping_spec.rb
128
+ - spec/amf/deserializer_spec.rb
129
+ - spec/amf/request_spec.rb
130
+ - spec/amf/response_spec.rb
131
+ - spec/amf/serializer_spec.rb
132
+ - spec/amf/values/array_collection_spec.rb
133
+ - spec/amf/values/messages_spec.rb