Sha256: 5a46658e27c6af55e8510a36e7f70b01bda65b7baf95dfc4e224f24ea002adec

Contents?: true

Size: 326 Bytes

Versions: 2

Compression:

Stored size: 326 Bytes

Contents

module SmartKv::Convert
  def to_callable_object(object_class, kv)
    if object_class == Struct
      Struct.new(*kv.to_h.keys).new(*kv.to_h.values)
    elsif object_class < Struct
      object_class.new(*kv.to_h.values)
    elsif object_class <= Hash
      kv.to_h
    else
      object_class.new(kv.to_h)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
smart_kv-0.2.7 lib/smart_kv/convert.rb
smart_kv-0.2.6 lib/smart_kv/convert.rb