Class: RocketAMF::MappingSet

Inherits:
Object
  • Object
show all
Defined in:
lib/rocketamf/class_mapping.rb

Overview

Container for all mapped classes

Instance Method Summary collapse

Constructor Details

#initializeMappingSet

Creates a mapping set object and populates the default mappings



8
9
10
11
12
# File 'lib/rocketamf/class_mapping.rb', line 8

def initialize
  @as_mappings = {}
  @ruby_mappings = {}
  map_defaults
end

Instance Method Details

#get_as_class_name(class_name) ⇒ Object

Returns the AS class name for the given ruby class name, returing nil if not found



44
45
46
# File 'lib/rocketamf/class_mapping.rb', line 44

def get_as_class_name class_name #:nodoc:
  @ruby_mappings[class_name.to_s]
end

#get_ruby_class_name(class_name) ⇒ Object

Returns the ruby class name for the given AS class name, returing nil if not found



50
51
52
# File 'lib/rocketamf/class_mapping.rb', line 50

def get_ruby_class_name class_name #:nodoc:
  @as_mappings[class_name.to_s]
end

#map(params) ⇒ Object

Map a given AS class to a ruby class.

Use fully qualified names for both.

Example:

m.map :as => 'com.example.Date', :ruby => 'Example::Date'


36
37
38
39
40
# File 'lib/rocketamf/class_mapping.rb', line 36

def map params
  [:as, :ruby].each {|k| params[k] = params[k].to_s} # Convert params to strings
  @as_mappings[params[:as]] = params[:ruby]
  @ruby_mappings[params[:ruby]] = params[:as]
end

#map_defaultsObject

Adds required mapping configs, calling map for the required base mappings. Designed to allow extenders to take advantage of required default mappings.



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rocketamf/class_mapping.rb', line 16

def map_defaults
  map :as => 'flex.messaging.messages.AbstractMessage', :ruby => 'RocketAMF::Values::AbstractMessage'
  map :as => 'flex.messaging.messages.RemotingMessage', :ruby => 'RocketAMF::Values::RemotingMessage'
  map :as => 'flex.messaging.messages.AsyncMessage', :ruby => 'RocketAMF::Values::AsyncMessage'
  map :as => 'DSA', :ruby => 'RocketAMF::Values::AsyncMessageExt'
  map :as => 'flex.messaging.messages.CommandMessage', :ruby => 'RocketAMF::Values::CommandMessage'
  map :as => 'DSC', :ruby => 'RocketAMF::Values::CommandMessageExt'
  map :as => 'flex.messaging.messages.AcknowledgeMessage', :ruby => 'RocketAMF::Values::AcknowledgeMessage'
  map :as => 'DSK', :ruby => 'RocketAMF::Values::AcknowledgeMessageExt'
  map :as => 'flex.messaging.messages.ErrorMessage', :ruby => 'RocketAMF::Values::ErrorMessage'
  self
end