Sha256: ce89dc85a15d1683d70663fcc8796358efbbe872b22ec849730dcb6944989690
Contents?: true
Size: 1.13 KB
Versions: 4
Compression:
Stored size: 1.13 KB
Contents
module Valise class StemDecorator < SearchRoot def initialize(stem, search_root) @stem, @search_root = stem, search_root end def under_stem(path) segments = unpath(path) top_part = segments[0...@stem.length] if top_part == @stem return segments[@stem.length..-1] else raise PathOutsideOfRoot end end def inspect "#{self.class.name.split(":").last}:[#{@stem.join("/")}]#{@search_root.inspect}" end def each @search_root.each do |path| yield(@stem + path) end end def full_path(segments) segments = under_stem(segments) @search_root.full_path(segments) end def write(item) @search_root.write(item) end def writable?(segments) @search_root.writable?(under_stem(segments)) rescue PathOutsideOfRoot return false end def present?(segments) @search_root.present?(under_stem(segments)) rescue PathOutsideOfRoot return false end def insert(item) @search_root.insert(item) end def get_from(item) @search_root.get_from(item) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
valise-0.6 | lib/valise/stem-decorator.rb |
valise-0.5 | lib/valise/stem-decorator.rb |
valise-0.4 | lib/valise/stem-decorator.rb |
valise-0.3 | lib/valise/stem-decorator.rb |