<<(*entries)
click to toggle source
def <<(*entries)
add_entries(*entries)
end
concat(*entries)
click to toggle source
delete(*entries)
click to toggle source
def delete(*entries)
entries = flatten_deeper(entries).reject do |entry|
@target.delete(entry) if entry.new_entry?
entry.new_entry?
end
return if entries.empty?
delete_entries(entries)
entries.each do |entry|
@target.delete(entry)
end
end
each(&block)
click to toggle source
def each(&block)
to_ary.each(&block)
end
exists?()
click to toggle source
def exists?
load_target
not @target.empty?
end
push(*entries)
click to toggle source
replace(others)
click to toggle source
def replace(others)
load_target
entry = @target.first
if entry.nil?
deleted_entries = []
added_entries = others
else
base_class = entry.class
others = others.collect do |other|
other = base_class.find(other) unless other.is_a?(base_class)
other
end
deleted_entries = @target - others
added_entries = others - @target
end
delete(deleted_entries)
concat(added_entries)
end
reset()
click to toggle source
def reset
@target = []
@loaded = false
end
to_ary()
click to toggle source
def to_ary
load_target
@target.to_ary
end