mjml-ruby 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c7ae59a6abb6e44b20727472ab39310d70e6d68d
4
- data.tar.gz: 720cf82409c4175483b063e5b954cfc112571c9c
3
+ metadata.gz: 2cb952b58eadf7f0a4ba87bbb063b8bfef896169
4
+ data.tar.gz: bc28f55db1682e4f6f2e2cd2c7b0744d605e5e27
5
5
  SHA512:
6
- metadata.gz: d81c6bac47441529506046693d08535301a04b809aaebf550c6d464fae3959e7d7486c66594701ee787cfed5543ec929df138c32a5b41f64f708a35c7d2d25fe
7
- data.tar.gz: 15f74725352642981f5927fe73343bde558ada0ea51e3500d9f5a10b84271222ce2e8f1341a1fc8d90834a3791726d11a738d6fa22072922674a962559a7ec85
6
+ metadata.gz: 2cbcb4fbcddc99665544578481856a6a333676237e8d0b0fd9392d92cda36f0ebe85efced87449dfe17e68ef1c6513c683a1cbbe23cd3224abe2aa31d69ded03
7
+ data.tar.gz: a1f19cf75ac9e4bd620fdb94fe624cef1ddcbcba27cfb260d55fe32a09d5048dba061751d80eaeaded055f62e806f8853af68199d1a3816ec5b630feb23e1d0a
@@ -31,6 +31,10 @@ module MJML
31
31
  end
32
32
 
33
33
  def self.executable_version
34
+ @executable_version ||= extract_executable_version
35
+ end
36
+
37
+ def self.extract_executable_version
34
38
  ver, _status = Open3.capture2(find_executable, '-V')
35
39
  (ver =~ VERSION_REGEX).nil? ? nil : ver
36
40
  end
@@ -0,0 +1,29 @@
1
+ module MJML
2
+ module Rails
3
+ # MJML Template handler for Rails
4
+ class TemplateHandler
5
+ # Supported extensions
6
+ EXTENSIONS = Hash[erb: :mjml, slim: :mjmlslim, haml: :mjmlhaml]
7
+
8
+ def initialize(base_handler = :erb)
9
+ @base_handler = base_handler
10
+ end
11
+
12
+ def call(template)
13
+ compiled = get_handler(@base_handler).call(template)
14
+ "::MJML::Parser.new.call(begin;#{compiled};end).html_safe"
15
+ end
16
+
17
+ private
18
+
19
+ def get_handler(ext)
20
+ handler = instance_variable_get("@#{ext}_handler")
21
+ if handler.nil?
22
+ handler = ActionView::Template.registered_template_handler(ext)
23
+ instance_variable_set("@#{ext}_handler", handler)
24
+ end
25
+ handler
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,24 +1,11 @@
1
1
  require 'rails/railtie'
2
2
  require 'mjml'
3
3
  require 'mjml/parser'
4
+ require 'mjml/rails/template_handler'
4
5
 
5
6
  module MJML
6
7
  # Rails plugin for MJML ruby
7
8
  class Railtie < ::Rails::Railtie
8
- # Template handler for Rails
9
- class Handler
10
- def call(template)
11
- compiled = erb_handler.call(template)
12
- "::MJML::Parser.new.call(begin;#{compiled};end).html_safe"
13
- end
14
-
15
- private
16
-
17
- def erb_handler
18
- @erb_handler ||= ActionView::Template.registered_template_handler(:erb)
19
- end
20
- end
21
-
22
9
  # Config
23
10
  config.mjml = MJML.config
24
11
 
@@ -29,7 +16,9 @@ module MJML
29
16
  end
30
17
 
31
18
  ActiveSupport.on_load(:action_view) do
32
- ActionView::Template.register_template_handler(:mjml, Handler.new)
19
+ MJML::Rails::TemplateHandler::EXTENSIONS.each do |h, ext|
20
+ ActionView::Template.register_template_handler(ext, MJML::Rails::TemplateHandler.new(h))
21
+ end
33
22
  end
34
23
  end
35
24
  end
@@ -1,3 +1,3 @@
1
1
  module MJML
2
- VERSION = '0.2.2'.freeze
2
+ VERSION = '0.2.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mjml-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mykola Basov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-04 00:00:00.000000000 Z
11
+ date: 2016-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-configurable
@@ -128,6 +128,7 @@ files:
128
128
  - lib/mjml.rb
129
129
  - lib/mjml/logger.rb
130
130
  - lib/mjml/parser.rb
131
+ - lib/mjml/rails/template_handler.rb
131
132
  - lib/mjml/railtie.rb
132
133
  - lib/mjml/version.rb
133
134
  - lib/sprockets/mjml.rb