class WsdlMapper::TypeMapping::MappingSet

Public Class Methods

default() click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 38
def self.default
  @default ||= MappingSet.new
end
new() click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 4
def initialize
  @list = []
  @cache = Hash.new do |h, k|
    h[k] = get_mapping(k)
  end
end

Public Instance Methods

<<(mapping) click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 11
def <<(mapping)
  @list << mapping
  self
end
dup() click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 24
def dup
  other = self.class.new
  @list.each do |mapping|
    other << mapping
  end
  other
end
find(type) click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 16
def find(type)
  @cache[type]
end
find!(type) click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 20
def find!(type)
  find(type) || raise(ArgumentError.new("Unknown type: #{type}"))
end
remove(mapping) click to toggle source

TODO: test

# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 33
def remove(mapping)
  @list.delete mapping
  @cache.delete_if { |_, m| m == mapping }
end
requires(type) click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 54
def requires(type)
  find!(type).requires
end
ruby_type(type) click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 50
def ruby_type(type)
  find!(type).ruby_type
end
to_ruby(type, value) click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 42
def to_ruby(type, value)
  find!(type).to_ruby value
end
to_xml(type, value) click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 46
def to_xml(type, value)
  find!(type).to_xml value
end

Protected Instance Methods

get_mapping(type) click to toggle source
# File lib/wsdl_mapper/type_mapping/mapping_set.rb, line 59
def get_mapping(type)
  @list.find { |m| m.maps? type }
end