sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/

test/dummy_source.rb (1228B) - raw

      1 #!/usr/bin/ruby
      2 
      3 require 'sup'
      4 require 'stringio'
      5 require 'rmail'
      6 require 'uri'
      7 
      8 module Redwood
      9 
     10 class DummySource < Source
     11 
     12   attr_accessor :messages
     13   attr_writer :fallback_date
     14 
     15   def initialize uri, last_date=nil, usual=true, archived=false, id=nil, labels=[]
     16     super uri, usual, archived, id
     17     @messages = nil
     18     @fallback_date = Time.utc 2001, 2, 3, 4, 56, 57
     19   end
     20 
     21   def start_offset
     22     0
     23   end
     24 
     25   def end_offset
     26     # should contain the number of test messages -1
     27     return @messages ? @messages.length - 1 : 0
     28   end
     29 
     30   def with_file_for id
     31     fn = @messages[id]
     32     File.open(fn, 'rb') { |f| yield f }
     33   end
     34 
     35   def load_header id
     36     with_file_for(id) { |f| parse_raw_email_header f }
     37   end
     38 
     39   def load_message id
     40     with_file_for(id) { |f| RMail::Parser.read f }
     41   end
     42 
     43   def raw_header id
     44     ret = ""
     45     with_file_for(id) do |f|
     46       until f.eof? || (l = f.gets) =~ /^$/
     47         ret += l
     48       end
     49     end
     50     ret
     51   end
     52 
     53   def raw_message id
     54     with_file_for(id) { |f| f.read }
     55   end
     56 
     57   def each_raw_message_line id
     58     with_file_for(id) do |f|
     59       until f.eof?
     60         yield f.gets
     61       end
     62     end
     63   end
     64 
     65   def fallback_date_for_message id
     66     @fallback_date
     67   end
     68 end
     69 
     70 end
     71 
     72 # vim:noai:ts=2:sw=2:
     73