Sha256: f33ed7c883f66792a9cc012066d55e56bd42454b27f20ff47723b73940656145

Contents?: true

Size: 324 Bytes

Versions: 2

Compression:

Stored size: 324 Bytes

Contents

require "ostruct"

module Spawn
  def spawner &default
    @@spawn ||= Hash.new
    @@spawn[self] = default
  end

  def spawn attrs = {}
    @@spawn[self].call(model = OpenStruct.new(attrs))
    factory_method = respond_to?(:create!) ? :create! : :create
    send(factory_method, model.send(:table).merge(attrs))
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
soveran-spawn-0.1.2 lib/spawn.rb
spawn-0.1.2 lib/spawn.rb