lib/motion/accessors.rb in rm-extensions-0.5.0 vs lib/motion/accessors.rb in rm-extensions-0.5.1
- old
+ new
@@ -2,24 +2,24 @@
module ObjectExtensions
module Accessors
- # creates an +attr_accessor+ like behavior, but the objects are
- # stored with a WeakRef.
- # does not conform to KVO like attr_accessor does.
- def rmext_weak_attr_accessor(*attrs)
- attrs.each do |attr|
- define_method(attr) do
- instance_variable_get("@#{attr}")
- end
- define_method("#{attr}=") do |val|
- instance_variable_set("@#{attr}", WeakRef.new(val))
- val
- end
- end
- end
+ # # creates an +attr_accessor+ like behavior, but the objects are
+ # # stored with a WeakRef.
+ # # does not conform to KVO like attr_accessor does.
+ # def rmext_weak_attr_accessor(*attrs)
+ # attrs.each do |attr|
+ # define_method(attr) do
+ # instance_variable_get("@#{attr}")
+ # end
+ # define_method("#{attr}=") do |val|
+ # instance_variable_set("@#{attr}", val.nil? ? nil : WeakRef.new(val))
+ # val
+ # end
+ # end
+ # end
# creates an +attr_accessor+ like behavior, but the objects are
# stored in an NSMapTable with strong keys (the attrs) and
# weak values. If the value deallocates, it becomes nil, unlike
# a traditional WeakRef.
@@ -36,9 +36,10 @@
@__zeroing_weak_holders.setObject(val, forKey:attr)
val
end
end
end
+ alias_method :rmext_weak_attr_accessor, :rmext_zeroing_weak_attr_accessor
end
end