isomorfeus-mailer 1.0.0.zeta23 → 2.0.0.rc2
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 +4 -4
- data/LICENSE +21 -21
- data/README.md +93 -93
- data/lib/isomorfeus/mailer/config.rb +25 -23
- data/lib/isomorfeus/mailer/imports.rb +18 -0
- data/lib/isomorfeus/mailer/version.rb +5 -5
- data/lib/isomorfeus-mailer.rb +12 -5
- data/lib/lucid_mail.rb +65 -57
- metadata +55 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29ff3b31fb733470744e91e76dd1815927d7aecb513a64cdac961d1ed1e11dec
|
4
|
+
data.tar.gz: 478b4f2a7fd1d719359ae2d91f6799ab728223c861fb56bf8a5cb84c57d2868b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e5f1f689be467761a8894752db3d2ec3f1d8244d3595415e0a65a6c69b52c54418625ff3d51beb8a2a02485820e2d38c5a89313ccfe612779e545f0992c1d5d
|
7
|
+
data.tar.gz: 3276940f7bcb00db121e131f63130c90dce243662b189901c9580b3177c421fc1d39848ead42818d31a7654611b88ab0446c3781ea214f1af2942fc4b8ec5ba9
|
data/LICENSE
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
MIT License
|
2
|
-
|
3
|
-
Copyright (c) 2018-2019 Jan Biedermann
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2018-2019 Jan Biedermann
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
CHANGED
@@ -1,93 +1,93 @@
|
|
1
|
-
# isomorfeus-mailer
|
2
|
-
|
3
|
-
Build mails with components and send them with [Mailhandler](https://github.com/wildbit/mailhandler#email-sending).
|
4
|
-
|
5
|
-
### Community and Support
|
6
|
-
At the [Isomorfeus Framework Project](http://isomorfeus.com)
|
7
|
-
|
8
|
-
### Configuration
|
9
|
-
|
10
|
-
Configuration options can be set as hash passed to:
|
11
|
-
```ruby
|
12
|
-
Isomorfeus.email_sender_config = { type: :smtp }
|
13
|
-
```
|
14
|
-
All configuration options of Mailhandler can be passed in the hash. For Mailhandler option see
|
15
|
-
[Email sending](https://github.com/wildbit/mailhandler#email-sending) section of the Mailhandler docs.
|
16
|
-
|
17
|
-
### Usage
|
18
|
-
|
19
|
-
#### Mail Components
|
20
|
-
Within a isomorfeus project components for building emails are the app/mail_components directory.
|
21
|
-
When using LucidComponent or LucidMaterial::Component the main component passed to the mail must be either a LucidApp or LucidMaterial::App component.
|
22
|
-
Each mail template build of components can be considered a tiny App.
|
23
|
-
|
24
|
-
Mail components are rendered using the
|
25
|
-
|
26
|
-
Inline styles work in Mail Components too.
|
27
|
-
|
28
|
-
Example component:
|
29
|
-
```ruby
|
30
|
-
class EmailComponent < LucidApp::Base
|
31
|
-
# the
|
32
|
-
# then
|
33
|
-
|
34
|
-
prop :name
|
35
|
-
|
36
|
-
render do
|
37
|
-
DIV "Welcome #{props.name}!"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
```
|
41
|
-
|
42
|
-
#### Sending Mail
|
43
|
-
|
44
|
-
One class is provided to actually build and send the mail: LucidMail. This class is only available on the server.
|
45
|
-
|
46
|
-
Sending mail with the rendered component:
|
47
|
-
```ruby
|
48
|
-
mail = LucidMail.new(component: 'EmailComponent',
|
49
|
-
props: { name: 'Siegfried' }, # are passed to the component
|
50
|
-
from: 'me@test.com',
|
51
|
-
to: 'you@test.com',
|
52
|
-
subject: 'Welcome')
|
53
|
-
mail.send
|
54
|
-
```
|
55
|
-
#### Inspecting the rendered component
|
56
|
-
|
57
|
-
The generated HTML is accessible after building the mail using:
|
58
|
-
```ruby
|
59
|
-
mail.build
|
60
|
-
html = mail.rendered_component
|
61
|
-
```
|
62
|
-
|
63
|
-
#### Accessing the mail before sending
|
64
|
-
|
65
|
-
It is possible to access the actual mail object after building it for further inspection or modification:
|
66
|
-
```ruby
|
67
|
-
mail.build
|
68
|
-
mail_object = mail.mail
|
69
|
-
```
|
70
|
-
For documentation about the Mail Object see the [Mail Documentation](https://github.com/mikel/mail).
|
71
|
-
|
72
|
-
#### Triggering mail from a client
|
73
|
-
LucidMail is available only on the server. It can be wrapped in a operation to allow triggering the sending of mail from a client. Example:
|
74
|
-
```ruby
|
75
|
-
class MailOp < LucidQuickOp::Base
|
76
|
-
op do
|
77
|
-
LucidMail.new(component: 'EmailComponent',
|
78
|
-
from: 'me@test.com',
|
79
|
-
to: current_user.email,
|
80
|
-
subject: 'Welcome')
|
81
|
-
end
|
82
|
-
end
|
83
|
-
```
|
84
|
-
Make sure policy allows running the operation:
|
85
|
-
```ruby
|
86
|
-
class MyUserPolicy
|
87
|
-
allow MailOp, :promise_run
|
88
|
-
end
|
89
|
-
```
|
90
|
-
Then on a client mail can be triggered:
|
91
|
-
```ruby
|
92
|
-
MailOp.promise_run
|
93
|
-
```
|
1
|
+
# isomorfeus-mailer
|
2
|
+
|
3
|
+
Build mails with components and send them with [Mailhandler](https://github.com/wildbit/mailhandler#email-sending).
|
4
|
+
|
5
|
+
### Community and Support
|
6
|
+
At the [Isomorfeus Framework Project](http://isomorfeus.com)
|
7
|
+
|
8
|
+
### Configuration
|
9
|
+
|
10
|
+
Configuration options can be set as hash passed to:
|
11
|
+
```ruby
|
12
|
+
Isomorfeus.email_sender_config = { type: :smtp }
|
13
|
+
```
|
14
|
+
All configuration options of Mailhandler can be passed in the hash. For Mailhandler option see
|
15
|
+
[Email sending](https://github.com/wildbit/mailhandler#email-sending) section of the Mailhandler docs.
|
16
|
+
|
17
|
+
### Usage
|
18
|
+
|
19
|
+
#### Mail Components
|
20
|
+
Within a isomorfeus project components for building emails are the app/mail_components directory.
|
21
|
+
When using LucidComponent or LucidMaterial::Component the main component passed to the mail must be either a LucidApp or LucidMaterial::App component.
|
22
|
+
Each mail template build of components can be considered a tiny App.
|
23
|
+
|
24
|
+
Mail components are rendered using the Preact static renderer, so the Preact rules for static rendering apply.
|
25
|
+
|
26
|
+
Inline styles work in Mail Components too.
|
27
|
+
|
28
|
+
Example component:
|
29
|
+
```ruby
|
30
|
+
class EmailComponent < LucidApp::Base
|
31
|
+
# the top level component must be a App component
|
32
|
+
# then other LucidComponent's can be used in the render block
|
33
|
+
|
34
|
+
prop :name
|
35
|
+
|
36
|
+
render do
|
37
|
+
DIV "Welcome #{props.name}!"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
#### Sending Mail
|
43
|
+
|
44
|
+
One class is provided to actually build and send the mail: LucidMail. This class is only available on the server to prevent abuse.
|
45
|
+
|
46
|
+
Sending mail with the rendered component from the server:
|
47
|
+
```ruby
|
48
|
+
mail = LucidMail.new(component: 'EmailComponent',
|
49
|
+
props: { name: 'Siegfried' }, # are passed to the component
|
50
|
+
from: 'me@test.com',
|
51
|
+
to: 'you@test.com',
|
52
|
+
subject: 'Welcome')
|
53
|
+
mail.send
|
54
|
+
```
|
55
|
+
#### Inspecting the rendered component
|
56
|
+
|
57
|
+
The generated HTML is accessible after building the mail using:
|
58
|
+
```ruby
|
59
|
+
mail.build
|
60
|
+
html = mail.rendered_component
|
61
|
+
```
|
62
|
+
|
63
|
+
#### Accessing the mail before sending
|
64
|
+
|
65
|
+
It is possible to access the actual mail object after building it for further inspection or modification:
|
66
|
+
```ruby
|
67
|
+
mail.build
|
68
|
+
mail_object = mail.mail
|
69
|
+
```
|
70
|
+
For documentation about the Mail Object see the [Mail Documentation](https://github.com/mikel/mail).
|
71
|
+
|
72
|
+
#### Triggering mail from a client
|
73
|
+
LucidMail is available only on the server to prevent abuse. It can be wrapped in a operation to allow triggering the sending of mail from a client. Example:
|
74
|
+
```ruby
|
75
|
+
class MailOp < LucidQuickOp::Base
|
76
|
+
op do
|
77
|
+
LucidMail.new(component: 'EmailComponent',
|
78
|
+
from: 'me@test.com',
|
79
|
+
to: current_user.email,
|
80
|
+
subject: 'Welcome')
|
81
|
+
end
|
82
|
+
end
|
83
|
+
```
|
84
|
+
Make sure policy allows running the operation:
|
85
|
+
```ruby
|
86
|
+
class MyUserPolicy
|
87
|
+
allow MailOp, :promise_run
|
88
|
+
end
|
89
|
+
```
|
90
|
+
Then on a client mail can be triggered:
|
91
|
+
```ruby
|
92
|
+
MailOp.promise_run
|
93
|
+
```
|
@@ -1,23 +1,25 @@
|
|
1
|
-
module Isomorfeus
|
2
|
-
# available settings
|
3
|
-
class << self
|
4
|
-
if RUBY_ENGINE != 'opal'
|
5
|
-
def email_sender_config
|
6
|
-
@email_sender_config ||= { type: :smtp }
|
7
|
-
end
|
8
|
-
|
9
|
-
def email_sender_config=(new_config)
|
10
|
-
Isomorfeus.raise_error "email_sender_config must at least include a :type!" unless new_config.key?(:type)
|
11
|
-
@email_sender_config = new_config
|
12
|
-
end
|
13
|
-
|
14
|
-
def email_sender
|
15
|
-
@email_sender ||= MailHandler.sender(Isomorfeus.email_sender_config[:type]) do |dispatcher|
|
16
|
-
Isomorfeus.email_sender_config.each do |key, value|
|
17
|
-
dispatcher.__send__("#{key}=".to_sym, value) unless key == :type
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
1
|
+
module Isomorfeus
|
2
|
+
# available settings
|
3
|
+
class << self
|
4
|
+
if RUBY_ENGINE != 'opal'
|
5
|
+
def email_sender_config
|
6
|
+
@email_sender_config ||= { type: :smtp }
|
7
|
+
end
|
8
|
+
|
9
|
+
def email_sender_config=(new_config)
|
10
|
+
Isomorfeus.raise_error(message: "email_sender_config must at least include a :type!") unless new_config.key?(:type)
|
11
|
+
@email_sender_config = new_config
|
12
|
+
end
|
13
|
+
|
14
|
+
def email_sender
|
15
|
+
@email_sender ||= MailHandler.sender(Isomorfeus.email_sender_config[:type]) do |dispatcher|
|
16
|
+
Isomorfeus.email_sender_config.each do |key, value|
|
17
|
+
dispatcher.__send__("#{key}=".to_sym, value) unless key == :type
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
self.assets['mail.js'] = Isomorfeus::AssetManager::Asset.new(:node)
|
25
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Isomorfeus
|
2
|
+
module Mailer
|
3
|
+
module Imports
|
4
|
+
def self.add
|
5
|
+
Isomorfeus.assets['mail.js'].add_js_import('redux', 'Redux', '*')
|
6
|
+
Isomorfeus.assets['mail.js'].add_js_import('preact', 'Preact', '*')
|
7
|
+
Isomorfeus.assets['mail.js'].add_js_import('preact/hooks', 'PreactHooks', '*')
|
8
|
+
Isomorfeus.assets['mail.js'].add_js_import('wouter-preact', nil, ['Router', 'Link', 'Redirect', 'Route', 'Switch'])
|
9
|
+
Isomorfeus.assets['mail.js'].add_js_import('preact-render-to-string', 'Preact', ['render'], nil, 'renderToString')
|
10
|
+
Isomorfeus.assets['mail.js'].add_js_import('wouter-preact/static-location', 'staticLocationHook')
|
11
|
+
Isomorfeus.assets['mail.js'].add_js_import('ws', 'WebSocket')
|
12
|
+
if Dir.exist?(Isomorfeus.app_root)
|
13
|
+
Isomorfeus.assets['mail.js'].add_ruby_import('mail_loader') if File.exist?(File.join(Isomorfeus.app_root, 'mail_loader.rb'))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
module Isomorfeus
|
2
|
-
module Mailer
|
3
|
-
VERSION = '
|
4
|
-
end
|
5
|
-
end
|
1
|
+
module Isomorfeus
|
2
|
+
module Mailer
|
3
|
+
VERSION = '2.0.0.rc2'
|
4
|
+
end
|
5
|
+
end
|
data/lib/isomorfeus-mailer.rb
CHANGED
@@ -1,5 +1,12 @@
|
|
1
|
-
require 'html2text'
|
2
|
-
require 'mailhandler'
|
3
|
-
require 'isomorfeus-
|
4
|
-
require 'isomorfeus
|
5
|
-
require '
|
1
|
+
require 'html2text'
|
2
|
+
require 'mailhandler'
|
3
|
+
require 'isomorfeus-asset-manager'
|
4
|
+
require 'isomorfeus-redux'
|
5
|
+
require 'isomorfeus-preact'
|
6
|
+
require 'isomorfeus-transport'
|
7
|
+
require 'isomorfeus/mailer/config'
|
8
|
+
require 'isomorfeus/mailer/imports'
|
9
|
+
|
10
|
+
Isomorfeus::Mailer::Imports.add
|
11
|
+
|
12
|
+
require 'lucid_mail'
|
data/lib/lucid_mail.rb
CHANGED
@@ -1,57 +1,65 @@
|
|
1
|
-
class LucidMail
|
2
|
-
include Isomorfeus::
|
3
|
-
extend LucidPropDeclaration::Mixin
|
4
|
-
|
5
|
-
prop :from, class: String, required: true
|
6
|
-
prop :reply_to, class: String, required: false
|
7
|
-
prop :to, class: String, required: true
|
8
|
-
prop :subject, class: String, required: true
|
9
|
-
prop :component, class: String, required: true
|
10
|
-
prop :
|
11
|
-
|
12
|
-
|
13
|
-
attr_reader :
|
14
|
-
attr_reader :
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
@props = LucidProps.new(props)
|
19
|
-
@mail = nil
|
20
|
-
@rendered_component = nil
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
@mail.
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
1
|
+
class LucidMail
|
2
|
+
include Isomorfeus::PreactViewHelper
|
3
|
+
extend LucidPropDeclaration::Mixin
|
4
|
+
|
5
|
+
prop :from, class: String, required: true
|
6
|
+
prop :reply_to, class: String, required: false, allow_nil: true
|
7
|
+
prop :to, class: String, required: true
|
8
|
+
prop :subject, class: String, required: true
|
9
|
+
prop :component, class: String, required: true
|
10
|
+
prop :asset, class: String, default: 'mail.js'
|
11
|
+
prop :props
|
12
|
+
|
13
|
+
attr_reader :mail
|
14
|
+
attr_reader :props
|
15
|
+
attr_reader :rendered_component
|
16
|
+
|
17
|
+
def initialize(**props)
|
18
|
+
@props = LucidProps.new(self.class.validated_props(props))
|
19
|
+
@mail = nil
|
20
|
+
@rendered_component = nil
|
21
|
+
@loc_h = if self.class.const_defined?('::Isomorfeus::Puppetmaster')
|
22
|
+
"#{::Isomorfeus::Puppetmaster.served_app.host}:#{::Isomorfeus::Puppetmaster.served_app.port}"
|
23
|
+
elsif self.class.const_defined?('::Iodine')
|
24
|
+
"#{::Iodine::DEFAULT_SETTINGS[:address]}:#{::Iodine::DEFAULT_SETTINGS[:port]}"
|
25
|
+
else
|
26
|
+
'localhost:3000'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def render_component
|
31
|
+
component_props = { location_host: @loc_h }.merge(props.props)
|
32
|
+
rendered_tree = mount_component(props.component, component_props, props.asset, use_ssr: true)
|
33
|
+
@rendered_component = <<~HTML
|
34
|
+
<!DOCTYPE html>
|
35
|
+
<html><head><style type="text/css">#{ssr_styles}</style></head><body>#{rendered_tree}</body></html>
|
36
|
+
HTML
|
37
|
+
self
|
38
|
+
end
|
39
|
+
|
40
|
+
def build
|
41
|
+
render_component unless rendered_component
|
42
|
+
html_body = rendered_component
|
43
|
+
text_body = Html2Text.convert(rendered_component)
|
44
|
+
@mail = Mail.new
|
45
|
+
@mail.to(props.to)
|
46
|
+
@mail.from(props.from)
|
47
|
+
@mail.subject(props.subject)
|
48
|
+
@mail.reply_to(props.reply_to) if props.key?(:reply_to)
|
49
|
+
@mail.text_part do
|
50
|
+
content_type 'text/plain; charset=UTF-8'
|
51
|
+
body text_body
|
52
|
+
end
|
53
|
+
@mail.html_part do
|
54
|
+
content_transfer_encoding 'binary'
|
55
|
+
content_type 'text/html; charset=UTF-8'
|
56
|
+
body html_body
|
57
|
+
end
|
58
|
+
self
|
59
|
+
end
|
60
|
+
|
61
|
+
def send
|
62
|
+
build unless mail
|
63
|
+
Isomorfeus.email_sender.send_email(mail)
|
64
|
+
end
|
65
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isomorfeus-mailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,70 +16,70 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '6.
|
19
|
+
version: '6.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '6.
|
26
|
+
version: '6.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: html2text
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.3.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.3.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: mailhandler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.0.59
|
48
48
|
type: :runtime
|
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.0.59
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: oj
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
61
|
+
version: 3.13.9
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
68
|
+
version: 3.13.9
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: opal
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.
|
75
|
+
version: 1.3.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.
|
82
|
+
version: 1.3.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: opal-activesupport
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,61 +95,75 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.3.3
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name: isomorfeus-
|
98
|
+
name: isomorfeus-asset-manager
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 0.13.3
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 0.13.3
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: isomorfeus-preact
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 10.5.11
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 10.5.11
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: isomorfeus-redux
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
129
|
- - "~>"
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: 4.
|
131
|
+
version: 4.1.9
|
118
132
|
type: :runtime
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: 4.
|
138
|
+
version: 4.1.9
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name: isomorfeus
|
140
|
+
name: isomorfeus-transport
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - '='
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
132
|
-
type: :
|
145
|
+
version: 2.0.0.rc2
|
146
|
+
type: :runtime
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - '='
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
152
|
+
version: 2.0.0.rc2
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
154
|
+
name: isomorfeus
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- -
|
157
|
+
- - '='
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
159
|
+
version: 2.0.0.rc2
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- -
|
164
|
+
- - '='
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
166
|
+
version: 2.0.0.rc2
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: rake
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -188,6 +202,7 @@ files:
|
|
188
202
|
- README.md
|
189
203
|
- lib/isomorfeus-mailer.rb
|
190
204
|
- lib/isomorfeus/mailer/config.rb
|
205
|
+
- lib/isomorfeus/mailer/imports.rb
|
191
206
|
- lib/isomorfeus/mailer/version.rb
|
192
207
|
- lib/lucid_mail.rb
|
193
208
|
homepage: http://isomorfeus.com
|
@@ -195,7 +210,7 @@ licenses:
|
|
195
210
|
- MIT
|
196
211
|
metadata:
|
197
212
|
github_repo: ssh://github.com/isomorfeus/gems
|
198
|
-
post_install_message:
|
213
|
+
post_install_message:
|
199
214
|
rdoc_options: []
|
200
215
|
require_paths:
|
201
216
|
- lib
|
@@ -210,8 +225,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
225
|
- !ruby/object:Gem::Version
|
211
226
|
version: 1.3.1
|
212
227
|
requirements: []
|
213
|
-
rubygems_version: 3.
|
214
|
-
signing_key:
|
228
|
+
rubygems_version: 3.2.22
|
229
|
+
signing_key:
|
215
230
|
specification_version: 4
|
216
231
|
summary: Write mail template components and send mail.
|
217
232
|
test_files: []
|