Module: DejaVuNS::RecordAsChild

Included in:
Recording
Defined in:
lib/deja-vu/model/generated_model/DejaVuNS.rb

Instance Method Summary collapse

Instance Method Details

#add_record(record) ⇒ Object



183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'lib/deja-vu/model/generated_model/DejaVuNS.rb', line 183

def add_record(record)
  accessed
  index = record.get_the_index
  if(nil == index) then
    raise Xampl::XamplException.new("no value for the index 'pid' of record defined in : " << record.pp_xml)
  end

  existing = @record_child[index]

  return existing if existing == record

      self.remove_record(index) if existing

  @children << record
  @record_child[index] = record

  record.add_parent(self)

  changed
  return record
end

#ensure_record(index) {|record| ... } ⇒ Object

Yields:



216
217
218
219
220
221
222
223
224
225
226
227
# File 'lib/deja-vu/model/generated_model/DejaVuNS.rb', line 216

def ensure_record(index)
    accessed

    record = @record_child[index]
  return record if record 

    record = Record.lookup(index) if Xampl.persister and Xampl.persister.automatic
    record = Record.new(index) unless record

    yield(record) if block_given?
    return add_record(record)
end

#init_record_as_childObject



179
180
181
# File 'lib/deja-vu/model/generated_model/DejaVuNS.rb', line 179

def init_record_as_child
  @record_child = IndexedArray.new
end

#new_record(index) {|record| ... } ⇒ Object

Yields:



205
206
207
208
209
210
211
212
213
214
# File 'lib/deja-vu/model/generated_model/DejaVuNS.rb', line 205

def new_record(index)
  accessed

  record = nil
  record = Record.lookup(index) if Xampl.persister and Xampl.persister.automatic
  record = Record.new(index) unless record

  yield(record) if block_given?
  return add_record(record)
end

#record_childObject Also known as: record



166
167
168
169
# File 'lib/deja-vu/model/generated_model/DejaVuNS.rb', line 166

def record_child
  accessed
  @record_child
end

#record_child=(v) ⇒ Object Also known as: record=



171
172
173
174
# File 'lib/deja-vu/model/generated_model/DejaVuNS.rb', line 171

def record_child=(v)
  accessed
  @record_child = v
end

#remove_record(index) ⇒ Object



229
230
231
232
233
234
235
236
237
# File 'lib/deja-vu/model/generated_model/DejaVuNS.rb', line 229

def remove_record(index)
  accessed
      changed
 unless String === index or Symbol === index then
    index = index.get_the_index
      end
  record = @record_child.delete(index) if index
  @children.delete(record)
end