26 lines
540 B
Ruby
26 lines
540 B
Ruby
|
#
|
||
|
# Wrapper around Array so that the casted_by attribute is set in all
|
||
|
# elements of the array.
|
||
|
#
|
||
|
|
||
|
module CouchRest
|
||
|
class CastedArray < Array
|
||
|
attr_accessor :casted_by
|
||
|
|
||
|
def << obj
|
||
|
obj.casted_by = self.casted_by if obj.respond_to?(:casted_by)
|
||
|
super(obj)
|
||
|
end
|
||
|
|
||
|
def push(obj)
|
||
|
obj.casted_by = self.casted_by if obj.respond_to?(:casted_by)
|
||
|
super(obj)
|
||
|
end
|
||
|
|
||
|
def []= index, obj
|
||
|
obj.casted_by = self.casted_by if obj.respond_to?(:casted_by)
|
||
|
super(index, obj)
|
||
|
end
|
||
|
end
|
||
|
end
|