class ActiveOutline::LinkReader
Public Class Methods
new(filepath, debug: false, default_url: nil)
click to toggle source
# File lib/activeoutline.rb, line 15 def initialize(filepath, debug: false, default_url: nil) @filepath, @debug, @default_url = filepath, debug, default_url read filepath end
Public Instance Methods
fetch(uri)
click to toggle source
# File lib/activeoutline.rb, line 26 def fetch(uri) s, remaining = @links.locate uri redirect = s =~ /^\[r\] +/i return s if redirect contents, _ = RXFHelper.read(s) return contents end
ls(path='.')
click to toggle source
# File lib/activeoutline.rb, line 22 def ls(path='.') @ftx.ls(path).map(&:to_s) end
read(filepath)
click to toggle source
# File lib/activeoutline.rb, line 37 def read(filepath) s, _ = RXFHelper.read(filepath) puts 's ' + s.inspect if @debug s2 = if @default_url then # set a default url for entries which don't have one s.lines.map do |x| x =~ /:\/\// ? x : x.chomp + ' ' + @default_url \ + URI.encode(x.strip) + "\n" end.join else s end if @debug then puts 's2: ' + s2.inspect puts 's: ' + s.inspect end if s2 != s and RXFHelper.writeable?(filepath) then RXFHelper.write filepath, s2 end @links = PolyrexLinks.new.import(s2) @ftx = FileTreeXML.new(s.lines.map {|x| x[/^ *\S+/]}.join("\n"), debug: @debug) end
reload()
click to toggle source
# File lib/activeoutline.rb, line 68 def reload() read @filepath end