module Transform

Constants

Error

Public Instance Methods

transform_const?(subject_constant) click to toggle source
# File lib/transform/transform.rb, line 28
def transform_const?(subject_constant)
  Reflect.constant?(subject_constant, :Transform)
end
transformer?(subject) click to toggle source
# File lib/transform/transform.rb, line 36
def transformer?(subject)
  subject_constant = Reflect.constant(subject)
  transform_const?(subject_constant) || transformer_const?(subject_constant)
end
transformer_const?(subject_constant) click to toggle source
# File lib/transform/transform.rb, line 32
def transformer_const?(subject_constant)
  Reflect.constant?(subject_constant, :Transformer)
end
transformer_name(subject_constant) click to toggle source
# File lib/transform/transform.rb, line 18
def transformer_name(subject_constant)
  if transform_const?(subject_constant)
    return :Transform
  elsif transformer_const?(subject_constant)
    return :Transformer
  else
    return nil
  end
end
transformer_reflection(subject) click to toggle source
# File lib/transform/transform.rb, line 6
def transformer_reflection(subject)
  subject_constant = Reflect.constant(subject)

  transformer_name = transformer_name(subject_constant)

  if transformer_name.nil?
    raise Error, "#{subject_constant.name} doesn't have a Transform namespace that implements the transformation protocol"
  end

  Reflect.(subject, transformer_name, strict: true)
end