decoration_mail 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,14 +1,22 @@
1
- = DecorationMail
2
-
3
1
  == DecorationMailとは
4
2
  携帯電話で作成されたデコレーションメール(デコメール)をRubyで扱いやすくするためのライブラリです。
5
-
6
3
  今のところ受信したメールをパースするのみでデコメールの新規作成は出来ません。そのうち実装するかもしれません。。。
7
4
 
5
+ === 特徴
6
+ * Rails3から採用されたActionMailerのバックエンド、Mailライブラリを少し拡張して利用します。
7
+ * デコメールのHTMLをXHTMLとインラインCSSに変換します。
8
+ * デコメールのHTMLからHTMLタグ、HEADタグ、BODYタグが削除されて本文のみ取得出来ます。
9
+ * デコメール画像のURLをContent-IDから自動でファイル名に置き換えます(変更可能)。
10
+
8
11
  == インストール
12
+ 通常
9
13
 
10
14
  gem install decoration_mail
11
15
 
16
+ Rails3 ( bundler )
17
+
18
+ gem 'decoration_mail'
19
+
12
20
 
13
21
  == 使用例
14
22
  Rails3でも採用されているMailライブラリのMail::Messageを拡張しています。
@@ -20,11 +28,11 @@ decorationメソッドで本ライブラリの機能を呼び出す事が出来
20
28
  require 'mail
21
29
  require 'decoration_mail'
22
30
 
23
- @mail = Mail.read('/path/to')
31
+ @mail = Mail.read('/path/to/foobar.eml')
24
32
  @deco = @mail.decoration
25
33
 
26
34
  @html = @deco.save do |image|
27
- File.open("/path/to/#{image.filename}", "wb") {|f| f.write(image.body)}
35
+ File.open("/path/to/#{image.filename}", "wb") {|f| f.write(image.read)}
28
36
  end
29
37
 
30
38
  puts @html # => "<div ...."
@@ -35,7 +43,7 @@ image.pathにURIを代入することで、出力されるHTMLの<img src="">を
35
43
  MogileFSなどのストレージを利用する場合に使用すると便利でしょう。
36
44
 
37
45
  @html = @deco.save do |image|
38
- File.open("/path/to/#{image.filename}", "wb") {|f| f.write(image.body)}
46
+ File.open("/path/to/#{image.filename}", "wb") {|f| f.write(image.read)}
39
47
  image.path = "http://xxxxxx/#{image.filename}"
40
48
  end
41
49
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{decoration_mail}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dai Akatsuka"]
@@ -18,7 +18,8 @@ module DecorationMail
18
18
 
19
19
  @attachments.each do |attachment|
20
20
  content_type = attachment.header['content-type'].to_s
21
- content_id = "cid:" + attachment.header['content-id'].to_s.sub(/^</, '').sub(/>$/, '')
21
+ content_id = attachment.header['content-id'].to_s.sub(/^</, '').sub(/>$/, '')
22
+ content_id = attachment.filename unless content_id
22
23
  file_name = attachment.filename
23
24
 
24
25
  next unless check_content_type(content_type)
@@ -32,7 +33,7 @@ module DecorationMail
32
33
  images.each do |image|
33
34
  image.instance_eval(&block)
34
35
 
35
- if image.content_id
36
+ if @body_html.inner_html =~ /#{image.content_id}/
36
37
  @body_html.search("img").each do |element|
37
38
  if element[:src] == image.content_id
38
39
  element[:src] = (image.path ? image.path : image.filename)
@@ -6,7 +6,7 @@ module DecorationMail
6
6
  attr_reader :content_id, :filename
7
7
 
8
8
  def initialize(content_id, content_type, filename, attachment)
9
- @content_id = (content_id == "cid:" ? nil : content_id)
9
+ @content_id = "cid:#{content_id}"
10
10
  @content_type = content_type
11
11
  @filename = filename
12
12
  @attachment = attachment
@@ -57,17 +57,13 @@ describe DecorationMail::Base do
57
57
  end
58
58
 
59
59
  it "other_imagesオプションで:topを指定すると添付画像をデコメ上部に貼り付ける" do
60
- html = subject.save(:other_images => :top) do |image|
61
- image.path = "other_image.jpg" unless image.content_id
62
- end
63
- html.should match /other_image\.jpg/
60
+ html = subject.save(:other_images => :top) {}
61
+ html.should match /20110205153513\.jpg/
64
62
  end
65
63
 
66
64
  it "other_imagesオプションで:bottomを指定すると添付画像をデコメ上部に貼り付ける" do
67
- html = subject.save(:other_images => :bottom) do |image|
68
- image.path = "other_image.jpg" unless image.content_id
69
- end
70
- html.should match /other_image\.jpg/
65
+ html = subject.save(:other_images => :bottom) {}
66
+ html.should match /20110205153513\.jpg/
71
67
  end
72
68
  end
73
69
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 1
9
- version: 0.1.1
8
+ - 2
9
+ version: 0.1.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Dai Akatsuka