Slotted constructor cleanup

This commit is contained in:
2020-02-17 14:45:54 +07:00
parent c1679bd6ff
commit 2d11078a37
13 changed files with 26 additions and 22 deletions

View File

@ -2,7 +2,7 @@ module SlotMachine
class Slotted
def self.for(object , slots)
def self.for(object , slots = nil)
case object
when :message
SlottedMessage.new(slots)
@ -19,11 +19,11 @@ module SlotMachine
# previous object
attr_reader :slots
def initialize( slots )
raise "No slots #{object}" unless slots
slots = [slots] unless slots.is_a?(Array)
def initialize( slots = nil )
return unless slots
raise "stopped" unless slots.is_a?(Array)
first = slots.shift
return unless first
raise "ended" unless first
@slots = Slot.new(first)
until(slots.empty?)
@slots.set_next( Slot.new( slots.shift ))

View File

@ -6,6 +6,10 @@ module SlotMachine
end
alias :known_object :known_name
def initialize(slots)
super(slots)
raise "Message must have slots, but none given" unless slots
end
# load the slots into a register
# the code is added to compiler
# the register returned