Module: VirtualAttributes::Base::Conversions::ClassMethods

Defined in:
lib/virtual-attributes/base/conversions.rb

Instance Method Summary collapse

Instance Method Details

#wrap(val) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/virtual-attributes/base/conversions.rb', line 6

def wrap(val)
  case val
  when Hash
    new(val)
  when String
    val.blank? ? new({}) : raise(ArgumentError.new("String is not convertible to #{self.name}"))
  when self
    val
  when NilClass
    new({})
  when OpenStruct
    new val.to_h
  else
    raise ArgumentError.new("#{val.class.name} is not convertible to #{self.name}")
  end
end