Class: AMF::ClassMapping::MappingSet

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMappingSet

:nodoc:



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/amf/class_mapping.rb', line 6

def initialize #:nodoc:
  @as_mappings = {}
  @ruby_mappings = {}
  @default_as_prefix = ""

  # Map defaults
  map :as => 'flex.messaging.messages.AbstractMessage', :ruby => 'AMF::Messages::AbstractMessage'
  map :as => 'flex.messaging.messages.RemotingMessage', :ruby => 'AMF::Messages::RemotingMessage'
  map :as => 'flex.messaging.messages.AsyncMessage', :ruby => 'AMF::Messages::AsyncMessage'
  map :as => 'flex.messaging.messages.CommandMessage', :ruby => 'AMF::Messages::CommandMessage'
  map :as => 'flex.messaging.messages.AcknowledgeMessage', :ruby => 'AMF::Messages::AcknowledgeMessage'
  map :as => 'flex.messaging.messages.ErrorMessage', :ruby => 'AMF::Messages::ErrorMessage'
end

Instance Attribute Details

#default_as_prefixObject

Returns the value of attribute default_as_prefix.



4
5
6
# File 'lib/amf/class_mapping.rb', line 4

def default_as_prefix
  @default_as_prefix
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



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

def get_as_class_name(class_name) #:nodoc:
  unless as_class_name = @ruby_mappings[class_name.to_s]
    as_class_name = "#{@default_as_prefix}#{class_name}"
  end
  as_class_name
end

#get_ruby_class_name(class_name) ⇒ Object

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



44
45
46
47
48
49
# File 'lib/amf/class_mapping.rb', line 44

def get_ruby_class_name(class_name) #:nodoc:
  unless ruby_class_name = @as_mappings[class_name.to_s]
    ruby_class_name = class_name.sub(default_as_prefix, "")
  end
  ruby_class_name
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'


27
28
29
30
31
# File 'lib/amf/class_mapping.rb', line 27

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