module Transpose::Transposable

Public Instance Methods

transpose(klass) click to toggle source
# File lib/transpose/transposable.rb, line 17
def transpose(klass)
  transposition_instance = klass.is_a?(String) ? klass.constantize.new : klass.new

  raise ::Transpose::Errors::TransposerNotFound unless self.class.transposers.has_key?(transposition_instance.class.name)

  result = self.class.transposers[klass.to_s].inject(transposition_instance) do |transposition, hash_pair|
    transposition.__send__("#{hash_pair[1]}=", self.__send__(hash_pair[0]))
    transposition
  end

  result
end
Also aliased as: transpose_to, transpose_into
transpose_instance(transposition_instance) click to toggle source
# File lib/transpose/transposable.rb, line 32
def transpose_instance(transposition_instance)
  raise ::Transpose::TransposerNotFound unless self.class.transposers.has_key?(transposition_instance.class.name)

  result = self.class.transposers[transposition_instance.class.name].inject(transposition_instance) do |transposition, hash_pair|
    transposition.__send__("#{hash_pair[1]}=", self.__send__(hash_pair[0]))
    transposition
  end

  result
end
transpose_into(klass)
Alias for: transpose
transpose_to(klass)
Alias for: transpose
transpose_to_instance(transposition_instance)
Alias for: transpose_instance
transpose_with_instance(transposition_instance)
Alias for: transpose_instance