summaryrefslogtreecommitdiff
path: root/lib/mailread.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-16 12:19:22 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-16 12:19:22 +0000
commitfd1d8cdc09ed86e4a0812120a17ff0d7b04adcaf (patch)
tree341289a84a427f1e92425c7ebf82d2f1733e9a40 /lib/mailread.rb
parentf12baed5df6d3c213dd75d2f0d9f36bb179fb843 (diff)
*** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/RUBY@11 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/mailread.rb')
-rw-r--r--lib/mailread.rb43
1 files changed, 21 insertions, 22 deletions
diff --git a/lib/mailread.rb b/lib/mailread.rb
index d9feffbb7a..a5d60c84b4 100644
--- a/lib/mailread.rb
+++ b/lib/mailread.rb
@@ -1,36 +1,35 @@
class Mail
- def Mail.new(f)
+
+ def initialize(f)
unless f.kind_of?(IO)
f = open(f, "r")
- me = super(f)
- f.close
- else
- me = super
+ opened = true
end
- return me
- end
- def initialize(f)
@header = {}
@body = []
- while f.gets()
- $_.chop!
- next if /^From / # skip From-line
- break if /^$/ # end of header
+ begin
+ while f.gets()
+ $_.chop!
+ next if /^From / # skip From-line
+ break if /^$/ # end of header
- if /^(\S+):\s*(.*)/
- @header[attr = $1.capitalize!] = $2
- elsif attr
- sub!(/^\s*/, '')
- @header[attr] += "\n" + $_
+ if /^(\S+):\s*(.*)/
+ @header[attr = $1.capitalize!] = $2
+ elsif attr
+ sub!(/^\s*/, '')
+ @header[attr] += "\n" + $_
+ end
end
- end
- return unless $_
+ return unless $_
- while f.gets()
- break if /^From /
- @body.push($_)
+ while f.gets()
+ break if /^From /
+ @body.push($_)
+ end
+ ensure
+ f.close if opened
end
end