lib/vfs/entry_proxy.rb in vfs-0.3.12 vs lib/vfs/entry_proxy.rb in vfs-0.3.13
- old
+ new
@@ -1,38 +1,38 @@
-#
+#
# It allows you dynamically (magically) switch between UniversalEntry/Dir/File
-#
+#
module Vfs
- class EntryProxy < BasicObject
+ class EntryProxy < BasicObject
attr_reader :_target
# WRAP = [:[], :entry, :dir, :file].to_set
-
+
def initialize entry
raise 'something wrong happening here!' if entry.respond_to?(:proxy?) and entry.proxy?
self._target = entry
end
-
+
def proxy?
true
end
-
+
protected :==, :equal?, :!, :!=
- protected
+ protected
attr_writer :_target
-
+
def method_missing m, *a, &b
unless _target.respond_to? m
if ::Vfs::UniversalEntry.method_defined? m
self.target = _target.entry
elsif ::Vfs::Dir.method_defined? m
self._target = _target.dir
elsif ::Vfs::File.method_defined? m
self._target = _target.file
end
end
-
+
_target.send m, *a, &b
-
+
# return WRAP.include?(m) ? EntryProxy.new(result) : result
end
end
end
\ No newline at end of file