1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
|
# File 'lib/primitive_wrapper.rb', line 1234
def delete_at(*index_list)
return nil if index_list.empty?
rtn = []
if (index_list.count==1)
if index_list.first==:all
rtn = @value.dup
@value.empty!
return rtn
else
ii = index_list.first
rtn = self[ii]
if ii.type_of? Range
ii = ii.to_xr
ii.re_range!(size)
ii.reorder!
ii.reverse_each do |idx|
@value.delete_at(idx)
end
return rtn
end
end
end
rtn = self[*index_list]
list = PrimitiveWrapper::get_list(index_list,size)
list = list & list
list.sort.reverse.each do |idx|
if idx.type_of? Range
t_idx = idx.reorder
else
t_idx = idx
end
@value.delete_at(t_idx)
end
return rtn
end
|