--Apple-Mail-1-149917106
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charsetF-8;
	format竟wed

Just for fun, a little over-engineered maybe...

鐃種深
-- 

Mike Stok <mike / stok.ca>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.





--Apple-Mail-1-149917106
Content-Type: multipart/mixed;
	boundary 滝絖浴蛹沖唄更鰻碓

--Apple-Mail-2-149917106
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset-ASCII

<HTML><BODY styleord-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Just for fun, a little over-engineered maybe...<DIV><BR classhtml-block-placeholder"></DIV><DIV><SPAN></SPAN></DIV></BODY></HTML>
--Apple-Mail-2-149917106
Content-Transfer-Encoding: 7bit
Content-Type: text/x-ruby-script;
	x-unix-mode44;
	name噐range.rb
Content-Disposition: attachment;
	filenameレyrange.rb

class DayRange
  
  # Class for translating between day names and numbers
  class DayTranslator
    require 'abbrev'
    VALID_DAY_NUMBERS   .. 7
    
    def initialize(day_names{ Monday Tuesday Wednesday Thursday Friday Saturday Sunday })
      day_names.size 7 or raise ArgumentError, "must have a 7 element array"
      # are there 7 different names?
      @day_names  ay_names
      @name_map  bbrev::abbrev(day_names)
      @number_map  }
      day_names.each_with_index do |name, i|
        @number_map[name]   + 1
      end
    end
    
    # Convert a string (day name or abbreviation) or a number to a day number and
    # return it.
    #
    # If we get invalid input then raise an ArgumentError
    def make_number(number_or_string)
      number  ase number_or_string
        when String
          @number_map[@name_map[number_or_string]]
        when Numeric
          number_or_string.to_i
        else 
          raise ArgumentError
        end
      valid_day_number?(number) or raise ArgumentError
      number  
    end
    
    # Turn a day number into a string whose length may be specified
    def make_string(number, length0
      valid_day_number?(number) or raise ArgumentError
      name  day_names[number - 1]
      name[0 ... [name.length, length].min]
    end
        
    def valid_day_number?(num)
      VALID_DAY_NUMBERS.include?(num)
    end
  end
  
  MIN_RANGE_SIZE    # Ranges smaller than this are output as individual items
  
  def initialize(*day_list)
    @translator  ayRange::DayTranslator.new
    @day_ranges  ake_ranges(day_list.collect { |day| @translator.make_number(day) })
  end
  
  # 
  def to_s
    @day_ranges.collect { |range|
      if range.size < MIN_RANGE_SIZE
        range.collect { |day_num| @translator.make_string(day_num) }
      else 
        "#{@translator.make_string(range.first)}-#{@translator.make_string(range.last)}"
      end
    }.flatten.join(', ')
  end
  
  # Turn a list of day numbers into a list of "ranges."
  # 
  # Each range is stored as an array because it's easier to add elements to an
  # array, and we are only dealing with 7 days at most here.
  def make_ranges(day_list)
    day_list.sort.inject([]) { |ranges, day_num|
      if ranges.empty? or day_num ! anges.last.last.succ
        ranges << [day_num]
      else
        ranges.last << day_num
      end
      ranges
    }
  end
end
--Apple-Mail-2-149917106
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset-ASCII

<HTML><BODY styleord-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV><SPAN></SPAN><SPAN></SPAN></DIV></BODY></HTML>
--Apple-Mail-2-149917106
Content-Transfer-Encoding: 7bit
Content-Type: application/octet-stream;
	x-unix-mode55;
	nameュ
テュトコ サ
	ュ

」。ッッッ 

 ァッァ
 ァァ

 ヤテ゜ムヤ シ ヤココユココヤテ
  」 ヤ         
   ゜
    ゜ィァヘュモァャ トメョィアャイャウャエャオャカャキゥョ゜ゥ
    ゜ィァヘュラャ モャ モァャ トメョィアャイャウャカャキゥョ゜ゥ
    ゜ィァヘャ ラュモァャ トメョィアャウャエャオャカゥョ゜ゥ
    ゜ィァヤュヤャ モャ モァャ トメョィイャウャエャカャキゥョ゜ゥ
    ゜ィァヘャ ラャ ヤャ モャ モァャ トメョィアャウャエャカャキゥョ゜ゥ
    ゜ィァモァャ トメョィキゥョ゜ゥ
    ゜ィァヘャ モァャ トメョィアャキゥョ゜ゥ
    ゜ィチナゥ  トメョィアャクゥ 
  
  
   ゜゜
      メココトヤョ
    ゜ィアャ ョ゜ィァヘァゥゥ
    ゜ィアャ ョ゜ィァヘァゥゥ
    ゜ィァヘァャ ョ゜ィアゥゥ
    ゜ィァヘァャ ョ゜ィアャ アゥゥ
  

ュュチュヘュイュアエケケアキアーカ
テュヤュナコ ュ
テュヤコ ッサ
	マュククオケュア

シネヤヘフセシツマトル ス「ュコ ュサ ュュュコ サ ュュュコ ュュサ 「セシトノヨセシモミチホセシッモミチホセシツメセシトノヨセ シモミチホ ス「チュュ「 ス「ュコ サ ュコ ー ーサ コ ィーャ ーャ ーゥサ ュコ ネサ ュコ アイサ ュコ サ ュコ サ ュコ サ ュコ サ ュコ サ ュコ サ ュュュュュコ サ ュコ ーサ ュュュュコ サ ュコ サ コ イサ ュコ サ コ イサ ュコ ーサ 「セシトノヨ ス「ュコ ーサ ュコ ーサ ュコ ーサ ュコ ーサ 「セュュットノヨセシトノヨ ス「ュコ ーサ ュコ ーサ ュコ ーサ ュコ ーサ 「セシツメ ス「ュュ「セシットノヨセシトノヨ ス「ュコ ーサ ュコ ーサ ュコ ーサ ュコ ーサ 「セヘ モ ヲサシチ ス「コタョ「セタョシッチセヲサシットノヨセシトノヨ ス「ュコ ーサ ュコ ーサ ュコ ーサ ュコ ーサ 「セシチ ス「コッッョョッッ「セコッッョョッッシッチセシットノヨセシトノヨス「ュコ ーサ ュコ ーサ ュコ ーサ ュコ ーサ 「セシツメ ス「ュュ「セシットノヨセシトノヨ ス「ュコ ーサ ュコ ーサ ュコ ーサ ュコ ーサ 「セヤ 「モァ 「 ョシットノヨセシトノヨセシツメ ス「ュュ「セシットノヨセシトノヨセシツメ ス「ュュ「セシットノヨセシツメ ス「チュュ「セシッモミチホセ シットノヨセシツメセシットノヨセシッツマトルセシッネヤヘフセュチュヘュイュアエケケアキアーカュュ

ュュチュヘュアュアエケケアキアーカュュ