Sha256: cada12edebb3587239f5d31b3c44dd6e0c8fc8b99be6462e21534199d8069160
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
module Valise class StemDecorator < SearchRoot def initialize(stem, search_root) @stem, @search_root = stem, search_root end attr_reader :stem, :search_root protected :stem, :search_root def initialize_copy(other) @stem = other.stem @search_root = other.search_root.dup end def segments @search_root.segments end def segments=(segments) @search_root.segments = segments 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 Errors::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 Errors::PathOutsideOfRoot return false end def present?(segments) @search_root.present?(under_stem(segments)) rescue Errors::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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
valise-0.8.2 | lib/valise/stem-decorator.rb |