class Shrink::Wrap::Property::Coercion

Attributes

base[RW]

Public Class Methods

new(value) click to toggle source
# File lib/shrink/wrap/property/coercion.rb, line 9
def initialize(value)
  case value
  when ::Class
    self.base = Coercion::Class.new(value)
  when ::Enumerable
    self.base = Coercion::Enumerable.new(value)
  when ::Proc
    self.base = Coercion::Proc.new(value)
  else
    fail!(value)
  end
end

Public Instance Methods

coerce(data) click to toggle source
# File lib/shrink/wrap/property/coercion.rb, line 22
def coerce(data)
  base.coerce(data)
end

Private Instance Methods

fail!(value) click to toggle source
# File lib/shrink/wrap/property/coercion.rb, line 28
def fail!(value)
  msg = "expected Class, Enumerable or Proc, got: #{value.inspect}"
  raise ArgumentError, msg
end