Sha256: 961d5c962224d595864567a596a906ac731b7d6e8a6aa5c401b8139acd805ed6
Contents?: true
Size: 364 Bytes
Versions: 3
Compression:
Stored size: 364 Bytes
Contents
module Terrestrial class StructFactory def initialize(struct_class) @constructor = struct_class.method(:new) @members = struct_class.members end attr_reader :constructor, :members private :constructor, :members def call(data) constructor.call( *members.map { |m| data.fetch(m, nil) } ) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
terrestrial-0.5.0 | lib/terrestrial/struct_factory.rb |
terrestrial-0.3.0 | lib/terrestrial/struct_factory.rb |
terrestrial-0.1.1 | lib/terrestrial/struct_factory.rb |