Method: ImmutableSet::SetChange#initialize

Defined in:
lib/values/immutable_set.rb

#initialize(values, set, add, set_change) ⇒ SetChange

Returns a new instance of SetChange.



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/values/immutable_set.rb', line 126

def initialize values,set,add,set_change
  
  raise "set must be supplied" unless set
  raise "values must be supplied" unless values
  
  @values = values
  @set = set
  @add = add
  @set_change = set_change
  @depth = 0
  
  if set_change
    # We need to unrole when we have a depth of more than 500 so that we dont couse a SystemStackError
    if set_change.depth > 4000
      @set_change = nil
      @set = set_change.unrole
    else
      @depth = set_change.depth + 1
    end
  end
end