mrml-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1632a410a125a1e953ea0259cf5719854ee3c2cbe6938ff0bb3782b0ee6084c6
4
+ data.tar.gz: cd98b7f3cd6dd15c00a1502066813b6801fb2d2440f6c57ac451c37fdff23a9e
5
+ SHA512:
6
+ metadata.gz: 04f323798202847e09a7df8b8b15187ada9858a8782ebcc31adc9882b44e8cceab6a3377edccd9f0a0798dcd6b3374a47bac60608c6db18873e83948181d4a7b
7
+ data.tar.gz: 060f3f1324c456eb0640171104058967d3d4dd7957e74fa443417d1bb5f34b22c3d7c6c7fdce414d3c529eceeb3b02ac7246c72d790d167854c84fd63736a8ab
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # Mrml::Rails
2
+
3
+ `mrml-rails` is a ActionMailer templating engine that uses the Rust-based MRML compiler in order to compile MJML files into pure HTML.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'mrml-rails'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle install
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install mrml-rails
20
+
21
+ ## Usage
22
+
23
+ All you need to do is tag have the file extension `mjml` on the specific views.
24
+
25
+ ## Development
26
+
27
+ TODO
28
+
29
+ ## Contributing
30
+
31
+ Bug reports and pull requests are welcome on GitHub at https://github.com/oddcamp/mrml-rails. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/oddcamp/mrml-rails/blob/master/CODE_OF_CONDUCT.md).
32
+
33
+ ## License
34
+
35
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
36
+
37
+ ## Code of Conduct
38
+
39
+ Everyone interacting in the Mrml::Rails project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/oddcamp/mrml-rails/blob/master/CODE_OF_CONDUCT.md).
data/lib/mrml-rails.rb ADDED
@@ -0,0 +1 @@
1
+ require 'mrml/rails'
data/lib/mrml/rails.rb ADDED
@@ -0,0 +1,8 @@
1
+ require "mrml/rails/handler"
2
+ require "mrml/rails/railtie"
3
+ require "mrml/rails/version"
4
+
5
+ module Mrml
6
+ module Rails
7
+ end
8
+ end
@@ -0,0 +1,31 @@
1
+ require 'action_view'
2
+ require 'action_view/template'
3
+ require 'rails/version'
4
+ require 'mrml'
5
+
6
+ module Mrml
7
+ module Rails
8
+ class Handler
9
+ def template_handler
10
+ @template_handler ||= ActionView::Template.registered_template_handler(:erb)
11
+ end
12
+
13
+ # Optional second source parameter to make it work with Rails >= 6:
14
+ # Beginning with Rails 6 template handlers get the source of the template as the second
15
+ # parameter.
16
+ def call(template, source = nil)
17
+ compiled_source = if ::Rails::VERSION::MAJOR >= 6
18
+ template_handler.call(template, source)
19
+ else
20
+ template_handler.call(template)
21
+ end
22
+
23
+ if compiled_source =~ /<mjml.*?>/i
24
+ "MRML.to_html(begin;#{compiled_source};end).html_safe"
25
+ else
26
+ compiled_source
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,12 @@
1
+ require 'rails'
2
+
3
+ module Mrml
4
+ module Rails
5
+ class Railtie < ::Rails::Railtie
6
+ initializer 'mrml-rails.register_template_handler' do
7
+ ActionView::Template.register_template_handler :mjml, Mrml::Rails::Handler.new
8
+ Mime::Type.register_alias 'text/html', :mjml
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ module Mrml
2
+ module Rails
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mrml-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Joakim Nylén
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-02-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: actionmailer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mrml
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: railties
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.10'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.0'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 4.0.2
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '4.0'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 4.0.2
89
+ description: Rails Template Engine for MJML (Rust-variant called MRML)
90
+ email:
91
+ - hello@oddcamp.com
92
+ executables: []
93
+ extensions: []
94
+ extra_rdoc_files: []
95
+ files:
96
+ - README.md
97
+ - lib/mrml-rails.rb
98
+ - lib/mrml/rails.rb
99
+ - lib/mrml/rails/handler.rb
100
+ - lib/mrml/rails/railtie.rb
101
+ - lib/mrml/rails/version.rb
102
+ homepage: https://github.com/oddcamp/mrml-rails
103
+ licenses:
104
+ - MIT
105
+ metadata:
106
+ homepage_uri: https://github.com/oddcamp/mrml-rails
107
+ source_code_uri: https://github.com/oddcamp/mrml-rails
108
+ changelog_uri: https://github.com/oddcamp/mrml-rails/releases
109
+ post_install_message:
110
+ rdoc_options: []
111
+ require_paths:
112
+ - lib
113
+ required_ruby_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 2.3.0
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ requirements: []
124
+ rubygems_version: 3.1.4
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: Rails Template Engine for MJML (Rust-variant called MRML)
128
+ test_files: []