class Terrestrial::StructFactory

Attributes

constructor[R]
members[R]

Public Class Methods

new(struct_class) click to toggle source
# File lib/terrestrial/struct_factory.rb, line 3
def initialize(struct_class)
  @constructor = struct_class.method(:new)
  @members = struct_class.members
end

Public Instance Methods

call(data) click to toggle source
# File lib/terrestrial/struct_factory.rb, line 11
def call(data)
  constructor.call(
    *members.map { |m| data.fetch(m, nil) }
  )
end