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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e909c7f473255d34647aae95722a1df4729ae79d
4
- data.tar.gz: c3097c313b5ccfe4056a305fec7c7158d5e150d5
2
+ SHA256:
3
+ metadata.gz: 03ce9d1b66128dd3a1b0173cbf1312d0d459d471d4f5342f8453dbecc6e7bf2c
4
+ data.tar.gz: d81fd04666f2098e9285cf3c5c69cc5616b1fcd061d47d469d7672c0a9ece514
5
5
  SHA512:
6
- metadata.gz: 5f0631b7de83a3293058b7971566ce636ab2763226866ff0fd50117ca6bf346e220b7ec4d5d43795816a781c4d5c8c82cde437fa568925b95b0d038ce9bb5bcb
7
- data.tar.gz: 549b87ee07ab809cb26a189470b9440eb1bbf51d53688803c0c0b536f132d420738637719d18ace66c9c37170b253af3baf7e923ae7f6afb0b47051d6f48c816
6
+ metadata.gz: f3dcb8aea151710449f532478d1113c510a362ed2ebf58777bc6e91a34a8ca4b30a199769aa68eb2fdca6a4edd39bfbb6513e866ef72d53ef819578af234711f
7
+ data.tar.gz: 2deae5778aa6874384ca63fe92a6022482aaf651ce21de447439e4d43be4840bed674065f4e32882e0d6bee4baac3a6546a35936efa72179ce22fa7b9be2f021
@@ -1,5 +1,12 @@
1
1
  # Change Log
2
2
 
3
+ ## v0.3.0 / 2020-12-01
4
+ ### Added
5
+ - FileStore for cache instead of Rails.cache
6
+
7
+ ### Fixed
8
+ - html preview
9
+
3
10
  ## v0.2.0 / 2017-06-17
4
11
  ### Added
5
12
  - Rails 5 support
@@ -15,5 +15,5 @@
15
15
  //= require_tree .
16
16
 
17
17
  function resizeIframe(iframe) {
18
- iframe.style.height = iframe.contentWindow.document.body.scrollHeight + 'px';
18
+ iframe.style.height = iframe.contentWindow.document.documentElement.scrollHeight + 'px';
19
19
  }
@@ -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, :only => [:show, :raw]
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 :plain => @email.raw
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 == "From"}.value
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 == "To"}.address_list.addresses
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 == "To"}.value
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
- emails = Rails.cache.fetch(CacheKey) do
45
- emails = []
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 { |mail| mail.id == id }
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
- Rails.cache.delete(CacheKey)
60
+ VirtualMails::Mailer.cache.delete(CACHE_KEY)
58
61
  end
59
62
 
60
63
  private
61
64
 
62
65
  def html
63
- @message.html_part ? @message.html_part.body.decoded : nil
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, '', :srcdoc => content, :onload => 'resizeIframe(this)' unless content.nil?
75
+ content_tag :iframe, '', srcdoc: content, onload: 'resizeIframe(this)' unless content.nil?
69
76
  end
70
77
 
71
78
  def plain
72
- @message.multipart? ? (@message.text_part ? @message.text_part.body.decoded : nil) : @message.body.decoded
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 "virtual_mails/application", media: "all", "data-turbolinks-track" => true %>
8
- <%= javascript_include_tag "virtual_mails/application", "data-turbolinks-track" => true %>
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>
@@ -1,4 +1,4 @@
1
- <%= link_to 'Clear', clear_emails_path, :method => :delete, :data => {:confirm => "Are you sure?"} %>
1
+ <%= link_to 'Clear', clear_emails_path, method: :delete, data: { confirm: 'Are you sure?' } %>
2
2
  <table>
3
3
  <colgroup>
4
4
  <col width="250px"></col>
@@ -3,7 +3,7 @@
3
3
  <th>Subject</th>
4
4
  <td>
5
5
  <%= @email.subject %>
6
- <%= link_to '(Raw)', raw_email_path(:id => @email.id), :target => 'raw' %>
6
+ <%= link_to '(Raw)', raw_email_path(id: @email.id), target: 'raw' %>
7
7
  </td>
8
8
  </tr>
9
9
  <tr>
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  VirtualMails::Engine.routes.draw do
2
- resources :emails, :path => '/', :only => [:index, :show] do
4
+ resources :emails, path: '/', only: %i[index show] do
3
5
  member do
4
6
  get 'raw'
5
7
  end
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Spring.application_root = './spec/dummy'
@@ -1,8 +1,11 @@
1
- require "virtual_mails/engine"
2
- require "virtual_mails/mailer"
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
- CacheKey = 'virtual_mails'
8
+ CACHE_KEY = 'virtual_mails'
6
9
 
7
10
  ActionMailer::Base.add_delivery_method :virtual, Mailer
8
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module VirtualMails
2
4
  class Engine < ::Rails::Engine
3
5
  isolate_namespace VirtualMails
@@ -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
- Rails.cache.write(CacheKey, mails)
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module VirtualMails
2
- VERSION = "0.2.0"
4
+ VERSION = '0.3.0'
3
5
  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.2.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: 2017-06-17 00:00:00.000000000 Z
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: '0'
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: '0'
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
- rubyforge_project:
187
- rubygems_version: 2.5.1
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.
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :virtual_mails do
3
- # # Task goes here
4
- # end