Class: AMF::Serialization::AMFSerializer
- Inherits:
-
ActiveRecord::Serialization::Serializer
- Object
- ActiveRecord::Serialization::Serializer
- AMF::Serialization::AMFSerializer
- Defined in:
- lib/amf/active_record.rb
Instance Method Summary collapse
- #add_associations(association, records, opts, serializer) ⇒ Object
-
#initialize(record, options = {}) ⇒ AMFSerializer
constructor
A new instance of AMFSerializer.
- #serialize ⇒ Object
Constructor Details
#initialize(record, options = {}) ⇒ AMFSerializer
Returns a new instance of AMFSerializer.
4 5 6 7 |
# File 'lib/amf/active_record.rb', line 4 def initialize(record, = {}) super(record, ) [:amf_version] = 3 end |
Instance Method Details
#add_associations(association, records, opts, serializer) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/amf/active_record.rb', line 28 def add_associations(association, records, opts, serializer) serializer.write_utf8_vr(association.to_s) if records.is_a?(Enumerable) serializer.stream << records.each { |record| record.to_amf(opts) }.join("") else if record = @record.send(association) serializer.stream << record.to_amf(opts) end end end |
#serialize ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/amf/active_record.rb', line 9 def serialize if [:amf_version] == 3 serializer_class = AMF::AMF3Serializer elsif [:amf_version] == 0 serializer_class = AMF::AMF0Serializer else raise AMF::AMFError, "unsupported serializer version #{@options[:amf_version]}" end serializer = serializer_class.new({:serializable_names => serializable_names, :options => }) serializer.serialize(@record) do |s| add_includes do |association, records, opts| add_associations(association, records, opts, s) end yield serializer if block_given? end end |