# File lib/rgen/transformer.rb, line 243
        def self.transform(from, desc=nil, &block)
                to = (desc && desc.is_a?(Hash) && desc[:to])
                condition = (desc && desc.is_a?(Hash) && desc[:if])
                raise StandardError.new("No transformation target specified.") unless to
                block_desc = TransformationDescription.new(block, to)
                if condition
                        _transformer_blocks[from] ||= {}
                        raise StandardError.new("Multiple (non-conditional) transformations for class #{from.name}.") unless _transformer_blocks[from].is_a?(Hash)
                        _transformer_blocks[from][condition] = block_desc
                else
                        raise StandardError.new("Multiple (non-conditional) transformations for class #{from.name}.") unless _transformer_blocks[from].nil?
                        _transformer_blocks[from] = block_desc
                end
        end