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