class Olelo::VirtualFS::Embedded

Public Class Methods

new(file) click to toggle source
# File lib/olelo/virtualfs.rb, line 59
def initialize(file)
  @file = file
  @cache = {}
end

Public Instance Methods

glob(*names) { |self, $1| ... } click to toggle source

@override

# File lib/olelo/virtualfs.rb, line 86
def glob(*names)
  code, data = File.read(@file).split('__END__', 2)
  data.to_s.each_line do |line|
    if line =~ /^@@\ss*([^\s]+)\s*/ && names.any? {|pattern| File.fnmatch(pattern, $1) }
      yield(self, $1)
    end
  end
end
mtime(name) click to toggle source

@override

# File lib/olelo/virtualfs.rb, line 96
def mtime(name)
  File.mtime(@file)
end
read(name) click to toggle source

@override

# File lib/olelo/virtualfs.rb, line 65
def read(name)
  @cache[name] ||=
    begin
      code, data = File.read(@file).split('__END__', 2)
      content = nil
      data.to_s.each_line do |line|
      if line =~ /^@@\s*([^\s]+)\s*/
        if name == $1
          content = ''
        elsif content
          break
        end
      elsif content
        content << line
      end
    end
      content || raise(IOError, "#{name} not found")
    end
end