class Shrink::Wrap::Property::Coercion::Class

Attributes

klass[RW]

Public Class Methods

new(klass) click to toggle source
# File lib/shrink/wrap/property/coercion/class.rb, line 12
def initialize(klass)
  ensure_type!(::Class, klass)
  self.klass = klass
end

Public Instance Methods

coerce(data) click to toggle source
# File lib/shrink/wrap/property/coercion/class.rb, line 17
def coerce(data)
  return klass.shrink_wrap(data) if klass.respond_to?(:shrink_wrap)
  return klass.coerce(data) if klass.respond_to?(:coerce)

  klass.new(data)
end