virtual_mails 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +7 -0
- data/app/assets/javascripts/virtual_mails/application.js +1 -1
- data/app/controllers/virtual_mails/emails_controller.rb +4 -2
- data/app/models/virtual_mails/email.rb +23 -12
- data/app/views/layouts/virtual_mails/application.erb +2 -2
- data/app/views/virtual_mails/emails/index.html.erb +1 -1
- data/app/views/virtual_mails/emails/show.html.erb +1 -1
- data/config/routes.rb +3 -1
- data/config/spring.rb +2 -0
- data/lib/virtual_mails.rb +6 -3
- data/lib/virtual_mails/engine.rb +2 -0
- data/lib/virtual_mails/mailer.rb +7 -1
- data/lib/virtual_mails/version.rb +3 -1
- metadata +38 -12
- data/lib/tasks/virtual_mails_tasks.rake +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 03ce9d1b66128dd3a1b0173cbf1312d0d459d471d4f5342f8453dbecc6e7bf2c
|
4
|
+
data.tar.gz: d81fd04666f2098e9285cf3c5c69cc5616b1fcd061d47d469d7672c0a9ece514
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3dcb8aea151710449f532478d1113c510a362ed2ebf58777bc6e91a34a8ca4b30a199769aa68eb2fdca6a4edd39bfbb6513e866ef72d53ef819578af234711f
|
7
|
+
data.tar.gz: 2deae5778aa6874384ca63fe92a6022482aaf651ce21de447439e4d43be4840bed674065f4e32882e0d6bee4baac3a6546a35936efa72179ce22fa7b9be2f021
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module VirtualMails
|
2
4
|
class EmailsController < VirtualMails::ApplicationController
|
3
|
-
before_action :find_mail, :
|
5
|
+
before_action :find_mail, only: %i[show raw]
|
4
6
|
|
5
7
|
def index
|
6
8
|
@emails = Email.all.reverse
|
@@ -10,7 +12,7 @@ module VirtualMails
|
|
10
12
|
end
|
11
13
|
|
12
14
|
def raw
|
13
|
-
render :
|
15
|
+
render plain: @email.raw
|
14
16
|
end
|
15
17
|
|
16
18
|
def clear
|
@@ -1,8 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module VirtualMails
|
2
4
|
class Email
|
3
5
|
include ActionView::Helpers::TagHelper
|
4
6
|
|
5
7
|
attr_accessor :message
|
8
|
+
|
6
9
|
delegate :subject, :date, to: :message
|
7
10
|
|
8
11
|
def initialize(message)
|
@@ -14,18 +17,18 @@ module VirtualMails
|
|
14
17
|
end
|
15
18
|
|
16
19
|
def from
|
17
|
-
@message.header.fields.find{|f| f.name ==
|
20
|
+
@message.header.fields.find { |f| f.name == 'From' }.value
|
18
21
|
end
|
19
22
|
|
20
23
|
def to
|
21
|
-
addresses = @message.header.fields.find{|f| f.name ==
|
24
|
+
addresses = @message.header.fields.find { |f| f.name == 'To' }.address_list.addresses
|
22
25
|
address = addresses[0].to_s
|
23
26
|
count = addresses.length
|
24
27
|
count > 1 ? address + ", ...#{count - 1} more" : address
|
25
28
|
end
|
26
29
|
|
27
30
|
def list_to
|
28
|
-
@message.header.fields.find{|f| f.name ==
|
31
|
+
@message.header.fields.find { |f| f.name == 'To' }.value
|
29
32
|
end
|
30
33
|
|
31
34
|
def body
|
@@ -41,40 +44,48 @@ module VirtualMails
|
|
41
44
|
end
|
42
45
|
|
43
46
|
def self.all
|
44
|
-
|
45
|
-
|
47
|
+
VirtualMails::Mailer.cache.fetch(CACHE_KEY) do
|
48
|
+
[]
|
46
49
|
end
|
47
|
-
emails
|
48
50
|
end
|
49
51
|
|
50
52
|
def self.find(id)
|
51
|
-
mail = all.find { |
|
53
|
+
mail = all.find { |m| m.id == id }
|
52
54
|
raise ActiveRecord::RecordNotFound if mail.nil?
|
55
|
+
|
53
56
|
mail
|
54
57
|
end
|
55
58
|
|
56
59
|
def self.clear
|
57
|
-
|
60
|
+
VirtualMails::Mailer.cache.delete(CACHE_KEY)
|
58
61
|
end
|
59
62
|
|
60
63
|
private
|
61
64
|
|
62
65
|
def html
|
63
|
-
|
66
|
+
if @message.html_part
|
67
|
+
@message.html_part.body.decoded
|
68
|
+
else
|
69
|
+
@message.content_type =~ /html/ ? plain : nil
|
70
|
+
end
|
64
71
|
end
|
65
72
|
|
66
73
|
def html_tag
|
67
74
|
content = html
|
68
|
-
content_tag :iframe, '', :
|
75
|
+
content_tag :iframe, '', srcdoc: content, onload: 'resizeIframe(this)' unless content.nil?
|
69
76
|
end
|
70
77
|
|
71
78
|
def plain
|
72
|
-
@message.multipart?
|
79
|
+
if @message.multipart?
|
80
|
+
@message.text_part ? @message.text_part.body.decoded : nil
|
81
|
+
else
|
82
|
+
@message.body.decoded
|
83
|
+
end
|
73
84
|
end
|
74
85
|
|
75
86
|
def plain_tag
|
76
87
|
content = plain
|
77
|
-
content_tag :pre, content unless content.nil?
|
88
|
+
content_tag :pre, content unless content.nil?
|
78
89
|
end
|
79
90
|
end
|
80
91
|
end
|
@@ -4,8 +4,8 @@
|
|
4
4
|
<title>
|
5
5
|
Virtual Mail Box
|
6
6
|
</title>
|
7
|
-
<%= stylesheet_link_tag
|
8
|
-
<%= javascript_include_tag
|
7
|
+
<%= stylesheet_link_tag 'virtual_mails/application', media: 'all', 'data-turbolinks-track': true %>
|
8
|
+
<%= javascript_include_tag 'virtual_mails/application', 'data-turbolinks-track': true %>
|
9
9
|
<%= csrf_meta_tags %>
|
10
10
|
</head>
|
11
11
|
<body>
|
data/config/routes.rb
CHANGED
data/config/spring.rb
CHANGED
data/lib/virtual_mails.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'virtual_mails/version'
|
4
|
+
require 'virtual_mails/engine'
|
5
|
+
require 'virtual_mails/mailer'
|
3
6
|
|
4
7
|
module VirtualMails
|
5
|
-
|
8
|
+
CACHE_KEY = 'virtual_mails'
|
6
9
|
|
7
10
|
ActionMailer::Base.add_delivery_method :virtual, Mailer
|
8
11
|
end
|
data/lib/virtual_mails/engine.rb
CHANGED
data/lib/virtual_mails/mailer.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module VirtualMails
|
2
4
|
class Mailer
|
3
5
|
attr_accessor :settings
|
@@ -9,7 +11,11 @@ module VirtualMails
|
|
9
11
|
def deliver!(mail)
|
10
12
|
mails = Email.all
|
11
13
|
mails.unshift(Email.new(mail))
|
12
|
-
|
14
|
+
Mailer.cache.write(CACHE_KEY, mails)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.cache
|
18
|
+
@cache ||= ActiveSupport::Cache::FileStore.new('tmp/virtual_mails')
|
13
19
|
end
|
14
20
|
end
|
15
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: virtual_mails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chen, Yi-Cyuan
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: sqlite3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.3.6
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.3.6
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,6 +136,34 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: spring
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: spring-commands-rspec
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
139
167
|
description: A rails plugin that provides a virtual mail box and action mailer delivery
|
140
168
|
method.
|
141
169
|
email:
|
@@ -159,7 +187,6 @@ files:
|
|
159
187
|
- app/views/virtual_mails/emails/show.html.erb
|
160
188
|
- config/routes.rb
|
161
189
|
- config/spring.rb
|
162
|
-
- lib/tasks/virtual_mails_tasks.rake
|
163
190
|
- lib/virtual_mails.rb
|
164
191
|
- lib/virtual_mails/engine.rb
|
165
192
|
- lib/virtual_mails/mailer.rb
|
@@ -168,7 +195,7 @@ homepage: https://github.com/emn178/virtual_mails
|
|
168
195
|
licenses:
|
169
196
|
- MIT
|
170
197
|
metadata: {}
|
171
|
-
post_install_message:
|
198
|
+
post_install_message:
|
172
199
|
rdoc_options: []
|
173
200
|
require_paths:
|
174
201
|
- lib
|
@@ -183,9 +210,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
210
|
- !ruby/object:Gem::Version
|
184
211
|
version: '0'
|
185
212
|
requirements: []
|
186
|
-
|
187
|
-
|
188
|
-
signing_key:
|
213
|
+
rubygems_version: 3.0.8
|
214
|
+
signing_key:
|
189
215
|
specification_version: 4
|
190
216
|
summary: A rails plugin that provides a virtual mail box and action mailer delivery
|
191
217
|
method.
|