mjml-haml 0.1.1 → 0.2.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 +4 -4
- data/README.md +50 -48
- data/lib/mjml.rb +3 -3
- data/lib/mjml/railtie.rb +1 -2
- data/lib/mjml/version.rb +1 -1
- data/test/mjml_subdir_test.rb +8 -22
- data/test/mjml_test.rb +11 -59
- metadata +6 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 67291cbd028813753e240a9ced2a3eacb45930cd
         | 
| 4 | 
            +
              data.tar.gz: b1dcfb0646657a4a42a108732627485b6670bd23
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 60feae028d0336f22ebc7cf05d064fce1ac4da23291988fb64423af8e20357947a5bca166333b3b311ad23d48a644d0cc5c3ed8dd64ebf398b00e6a52abc7d7d
         | 
| 7 | 
            +
              data.tar.gz: b684bc293222f73212e9446c42f3c6159f7f6f07e21da02d47074daf467d8e34c9340999e039f735a735c94351b3ad670707b3cc4b1ed28e45fe19bc68a95d21
         | 
    
        data/README.md
    CHANGED
    
    | @@ -2,40 +2,72 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            [](http://travis-ci.org/fnix/mjml-haml) [](https://badge.fury.io/rb/mjml-haml)
         | 
| 4 4 |  | 
| 5 | 
            -
            **MJML-Haml** allows you to render HTML e-mails from  | 
| 5 | 
            +
            **MJML-Haml** allows you to render HTML e-mails from a [MJML](https://mjml.io) template.
         | 
| 6 6 |  | 
| 7 | 
            -
            An example  | 
| 7 | 
            +
            An example layout might look like:
         | 
| 8 8 |  | 
| 9 9 | 
             
            ```haml
         | 
| 10 | 
            -
            /  | 
| 10 | 
            +
            / app/views/layouts/user_mailer.html.mjml
         | 
| 11 11 | 
             
            %mjml
         | 
| 12 12 | 
             
              %mj-body
         | 
| 13 13 | 
             
                %mj-container
         | 
| 14 | 
            -
                  %mj-section
         | 
| 15 | 
            -
                    %mj-column
         | 
| 16 | 
            -
                      %mj- | 
| 17 | 
            -
             | 
| 14 | 
            +
                  %mj-section{ background: { color: '#222' }, padding: '10px' }
         | 
| 15 | 
            +
                    %mj-column{ width: '30%' }
         | 
| 16 | 
            +
                      %mj-image{ alt: 'fnix', href: root_url, src: image_url('my-logo.png') }
         | 
| 17 | 
            +
                    %mj-column{ width: '30%' }
         | 
| 18 | 
            +
                    %mj-column{ width: '40%' }
         | 
| 19 | 
            +
                      %mj-social{ 'base-url': '/images/mailer/', display: 'facebook:url google:url linkedin:url twitter:url',
         | 
| 20 | 
            +
                        'facebook-content': '', 'facebook-href': 'https://www.facebook.com/Fnix-804357709655741/',
         | 
| 21 | 
            +
                        'facebook-icon-color': 'transparent', 'google-content': '',
         | 
| 22 | 
            +
                        'google-href': 'https://plus.google.com/+FnixBr', 'google-icon-color': 'transparent', 'icon-size': '32px',
         | 
| 23 | 
            +
                        'linkedin-content': '', 'linkedin-href': 'https://www.linkedin.com/company/fnix',
         | 
| 24 | 
            +
                        'linkedin-icon-color': 'transparent', 'twitter-content': '', 'twitter-href': 'https://twitter.com/fnixbr',
         | 
| 25 | 
            +
                        'twitter-icon-color': 'transparent' }
         | 
| 26 | 
            +
                  %mj-section{ 'text-align': 'left' }
         | 
| 27 | 
            +
                    = yield
         | 
| 28 | 
            +
                  %mj-section{ 'background-color': '#E5E5E5', padding: '10px 0' }
         | 
| 29 | 
            +
                    %mj-text{ 'font-size': '11px', 'line-height': '15px' }
         | 
| 30 | 
            +
                      My awesome footer
         | 
| 18 31 | 
             
            ```
         | 
| 19 32 |  | 
| 20 | 
            -
            And the  | 
| 33 | 
            +
            And the template for an action:
         | 
| 21 34 |  | 
| 22 35 | 
             
            ```haml
         | 
| 23 | 
            -
            /  | 
| 24 | 
            -
            %mj-text | 
| 36 | 
            +
            / app/views/user_mailer/password.html.haml
         | 
| 37 | 
            +
            %mj-text
         | 
| 38 | 
            +
              %h2 Password
         | 
| 39 | 
            +
            %mj-text
         | 
| 40 | 
            +
              %p{style: 'text-align: justify;'}
         | 
| 41 | 
            +
                == You sign up with #{provider_to_name @user.identities.first.try(:provider)}, so we generate a password for you:
         | 
| 42 | 
            +
            %mj-button= @password
         | 
| 43 | 
            +
            %mj-text
         | 
| 44 | 
            +
              %p
         | 
| 45 | 
            +
                == You need this password to change your #{link_to 'account', edit_user_registration_url} details. Do you want to
         | 
| 46 | 
            +
                change this cryptic password, no problem::
         | 
| 47 | 
            +
            %mj-button{ href: edit_user_registration_url } Change Password
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            ```
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            Note that the layout is named `.html.mjml` and the template `.html.haml`. Why? mjml only output content that are wrapped
         | 
| 52 | 
            +
            by:
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            ```html
         | 
| 55 | 
            +
            <mjml>
         | 
| 56 | 
            +
              <mj-body>
         | 
| 57 | 
            +
                ...
         | 
| 58 | 
            +
              </mj-body>
         | 
| 59 | 
            +
            </mjml>
         | 
| 25 60 | 
             
            ```
         | 
| 26 61 |  | 
| 27 | 
            -
             | 
| 62 | 
            +
            So, for the template we just want to use HAML and for the layout + template we use mjml + haml.
         | 
| 28 63 |  | 
| 29 | 
            -
             | 
| 64 | 
            +
            You write your mailer as usual:
         | 
| 30 65 |  | 
| 31 66 | 
             
            ```ruby
         | 
| 32 | 
            -
            #  | 
| 67 | 
            +
            # app/mailers/user_mailer.rb
         | 
| 33 68 | 
             
            class UserMailer < ActionMailer::Base
         | 
| 34 | 
            -
              def  | 
| 35 | 
            -
                mail(to: 'test@example.com', subject: 'test') | 
| 36 | 
            -
                  format.text
         | 
| 37 | 
            -
                  format.mjml
         | 
| 38 | 
            -
                end
         | 
| 69 | 
            +
              def password()
         | 
| 70 | 
            +
                mail(to: 'test@example.com', subject: 'test')
         | 
| 39 71 | 
             
              end
         | 
| 40 72 | 
             
            end
         | 
| 41 73 | 
             
            ```
         | 
| @@ -59,36 +91,6 @@ Install the MJML parser (optional -g to install it globally): | |
| 59 91 | 
             
            ```console
         | 
| 60 92 | 
             
            npm install -g mjml@^2.0
         | 
| 61 93 | 
             
            ```
         | 
| 62 | 
            -
             | 
| 63 | 
            -
            ## Sending Devise user emails
         | 
| 64 | 
            -
             | 
| 65 | 
            -
            If you use [Devise](https://github.com/plataformatec/devise) for user authentication and want to send user emails with MJML templates, here's how to override the [devise mailer](https://github.com/plataformatec/devise/blob/master/app/mailers/devise/mailer.rb):
         | 
| 66 | 
            -
            ```ruby
         | 
| 67 | 
            -
            # app/mailers/devise_mailer.rb
         | 
| 68 | 
            -
            class DeviseMailer < Devise::Mailer
         | 
| 69 | 
            -
              def reset_password_instructions(record, token, opts={})
         | 
| 70 | 
            -
                @token = token
         | 
| 71 | 
            -
                @resource = record
         | 
| 72 | 
            -
                # Custom logic to send the email with MJML
         | 
| 73 | 
            -
                mail(
         | 
| 74 | 
            -
                  template_path: 'devise/mailer',
         | 
| 75 | 
            -
                  from: "some@email.com", 
         | 
| 76 | 
            -
                  to: record.email, 
         | 
| 77 | 
            -
                  subject: "Custom subject"
         | 
| 78 | 
            -
                ) do |format|
         | 
| 79 | 
            -
                  format.mjml
         | 
| 80 | 
            -
                  format.text
         | 
| 81 | 
            -
                end
         | 
| 82 | 
            -
              end
         | 
| 83 | 
            -
            end
         | 
| 84 | 
            -
            ```
         | 
| 85 | 
            -
             | 
| 86 | 
            -
            Now tell devise to user your mailer in `config/initializers/devise.rb` by setting `config.mailer = 'DeviseMailer'` or whatever name you called yours.
         | 
| 87 | 
            -
             | 
| 88 | 
            -
            And then your MJML template goes here: `app/views/devise/mailer/reset_password_instructions.mjml`
         | 
| 89 | 
            -
             | 
| 90 | 
            -
            Devise also have [more instructions](https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer) if you need them.
         | 
| 91 | 
            -
             | 
| 92 94 | 
             
            ## Deploying with Heroku
         | 
| 93 95 |  | 
| 94 96 | 
             
            To deploy with [Heroku](https://heroku.com) you'll need to setup [multiple buildpacks](https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app) so that Heroku first builds Node for MJML and then the Ruby environment for your app.
         | 
    
        data/lib/mjml.rb
    CHANGED
    
    | @@ -19,11 +19,11 @@ module Mjml | |
| 19 19 | 
             
                # Check for a global install of MJML binary
         | 
| 20 20 | 
             
                mjml_bin = 'mjml'
         | 
| 21 21 | 
             
                return mjml_bin if check_version(mjml_bin)
         | 
| 22 | 
            -
             | 
| 22 | 
            +
             | 
| 23 23 | 
             
                # Check for a local install of MJML binary
         | 
| 24 24 | 
             
                mjml_bin = File.join(`npm bin`.chomp, 'mjml')
         | 
| 25 25 | 
             
                return mjml_bin if check_version(mjml_bin)
         | 
| 26 | 
            -
             | 
| 26 | 
            +
             | 
| 27 27 | 
             
                raise RuntimeError, "Couldn't find the MJML binary.. have you run $ npm install mjml?"
         | 
| 28 28 | 
             
              end
         | 
| 29 29 |  | 
| @@ -36,7 +36,7 @@ module Mjml | |
| 36 36 |  | 
| 37 37 | 
             
                def call(template)
         | 
| 38 38 | 
             
                  compiled_source = haml_handler.call(template)
         | 
| 39 | 
            -
                  if template.formats.include?(: | 
| 39 | 
            +
                  if template.formats.include?(:html)
         | 
| 40 40 | 
             
                    "Mjml::Mjmltemplate.to_html(begin;#{compiled_source};end).html_safe"
         | 
| 41 41 | 
             
                  else
         | 
| 42 42 | 
             
                    compiled_source
         | 
    
        data/lib/mjml/railtie.rb
    CHANGED
    
    
    
        data/lib/mjml/version.rb
    CHANGED
    
    
    
        data/test/mjml_subdir_test.rb
    CHANGED
    
    | @@ -5,36 +5,22 @@ class SubdirNotifier < ActionMailer::Base | |
| 5 5 |  | 
| 6 6 | 
             
              layout false
         | 
| 7 7 |  | 
| 8 | 
            -
              def simple_block | 
| 9 | 
            -
                mail(:to => 'foo@bar.com', :from => "john.doe@example.com") | 
| 10 | 
            -
                  format.send(format_type)
         | 
| 11 | 
            -
                end
         | 
| 8 | 
            +
              def simple_block
         | 
| 9 | 
            +
                mail(:to => 'foo@bar.com', :from => "john.doe@example.com")
         | 
| 12 10 | 
             
              end
         | 
| 13 11 |  | 
| 14 | 
            -
              def simple_block_and_path | 
| 12 | 
            +
              def simple_block_and_path
         | 
| 15 13 | 
             
                mail(:template_path => 'template_subdir',:to => 'foo@bar.com', :from => "john.doe@example.com") do |format|
         | 
| 16 | 
            -
                  format. | 
| 14 | 
            +
                  format.html
         | 
| 17 15 | 
             
                end
         | 
| 18 16 | 
             
              end
         | 
| 19 17 |  | 
| 20 | 
            -
              def simple_with_path | 
| 18 | 
            +
              def simple_with_path
         | 
| 21 19 | 
             
                mail(:template_path => 'template_subdir',:to => 'foo@bar.com', :from => "john.doe@example.com")
         | 
| 22 20 | 
             
              end
         | 
| 23 21 |  | 
| 24 22 | 
             
            end
         | 
| 25 23 |  | 
| 26 | 
            -
            # class TestRenderer < ActionView::PartialRenderer
         | 
| 27 | 
            -
            #   attr_accessor :show_text
         | 
| 28 | 
            -
            #   def initialize(render_options = {})
         | 
| 29 | 
            -
            #     @show_text = render_options.delete(:show_text)
         | 
| 30 | 
            -
            #     super(render_options)
         | 
| 31 | 
            -
            #   end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            #   def normal_text(text)
         | 
| 34 | 
            -
            #     show_text ? "TEST #{text}" : "TEST"
         | 
| 35 | 
            -
            #   end
         | 
| 36 | 
            -
            # end
         | 
| 37 | 
            -
             | 
| 38 24 | 
             
            class MjmlTest < ActiveSupport::TestCase
         | 
| 39 25 |  | 
| 40 26 | 
             
              setup do
         | 
| @@ -50,7 +36,7 @@ class MjmlTest < ActiveSupport::TestCase | |
| 50 36 |  | 
| 51 37 | 
             
              test 'in a subdir with a block fails' do
         | 
| 52 38 | 
             
                assert_raises(ActionView::MissingTemplate) do
         | 
| 53 | 
            -
                  email = SubdirNotifier.simple_block | 
| 39 | 
            +
                  email = SubdirNotifier.simple_block
         | 
| 54 40 | 
             
                  assert_equal "text/html", email.mime_type
         | 
| 55 41 | 
             
                  assert_match(/alternate sub-directory/, email.body.encoded.strip)
         | 
| 56 42 | 
             
                  assert_no_match(/mj-text/, email.body.encoded.strip)
         | 
| @@ -59,7 +45,7 @@ class MjmlTest < ActiveSupport::TestCase | |
| 59 45 |  | 
| 60 46 | 
             
              test 'in a subdir with a block and template_path option fails' do
         | 
| 61 47 | 
             
                assert_raises(ActionView::MissingTemplate) do
         | 
| 62 | 
            -
                  email = SubdirNotifier.simple_block_and_path | 
| 48 | 
            +
                  email = SubdirNotifier.simple_block_and_path
         | 
| 63 49 | 
             
                  assert_equal "text/html", email.mime_type
         | 
| 64 50 | 
             
                  assert_match(/alternate sub-directory/, email.body.encoded.strip)
         | 
| 65 51 | 
             
                  assert_no_match(/mj-text/, email.body.encoded.strip)
         | 
| @@ -67,7 +53,7 @@ class MjmlTest < ActiveSupport::TestCase | |
| 67 53 | 
             
              end
         | 
| 68 54 |  | 
| 69 55 | 
             
              test 'in a subdir with path' do
         | 
| 70 | 
            -
                email = SubdirNotifier.simple_with_path | 
| 56 | 
            +
                email = SubdirNotifier.simple_with_path
         | 
| 71 57 | 
             
                assert_equal "text/html", email.mime_type
         | 
| 72 58 | 
             
                assert_match(/alternate sub-directory/, email.body.encoded.strip)
         | 
| 73 59 | 
             
                assert_no_match(/mj-text/, email.body.encoded.strip)
         | 
    
        data/test/mjml_test.rb
    CHANGED
    
    | @@ -5,29 +5,21 @@ class Notifier < ActionMailer::Base | |
| 5 5 |  | 
| 6 6 | 
             
              layout false
         | 
| 7 7 |  | 
| 8 | 
            -
              def contact(recipient | 
| 8 | 
            +
              def contact(recipient)
         | 
| 9 9 | 
             
                @recipient = recipient
         | 
| 10 | 
            -
                mail(:to => @recipient, :from => "john.doe@example.com") | 
| 11 | 
            -
                  format.send(format_type)
         | 
| 12 | 
            -
                end
         | 
| 10 | 
            +
                mail(:to => @recipient, :from => "john.doe@example.com")
         | 
| 13 11 | 
             
              end
         | 
| 14 12 |  | 
| 15 | 
            -
              def link | 
| 16 | 
            -
                mail(:to => 'foo@bar.com', :from => "john.doe@example.com") | 
| 17 | 
            -
                  format.send(format_type)
         | 
| 18 | 
            -
                end
         | 
| 13 | 
            +
              def link
         | 
| 14 | 
            +
                mail(:to => 'foo@bar.com', :from => "john.doe@example.com")
         | 
| 19 15 | 
             
              end
         | 
| 20 16 |  | 
| 21 | 
            -
              def user | 
| 22 | 
            -
                mail(:to => 'foo@bar.com', :from => "john.doe@example.com") | 
| 23 | 
            -
                  format.send(format_type)
         | 
| 24 | 
            -
                end
         | 
| 17 | 
            +
              def user
         | 
| 18 | 
            +
                mail(:to => 'foo@bar.com', :from => "john.doe@example.com")
         | 
| 25 19 | 
             
              end
         | 
| 26 20 |  | 
| 27 | 
            -
              def no_partial | 
| 28 | 
            -
                mail(:to => 'foo@bar.com', :from => "john.doe@example.com") | 
| 29 | 
            -
                  format.send(format_type)
         | 
| 30 | 
            -
                end
         | 
| 21 | 
            +
              def no_partial
         | 
| 22 | 
            +
                mail(:to => 'foo@bar.com', :from => "john.doe@example.com")
         | 
| 31 23 | 
             
              end
         | 
| 32 24 |  | 
| 33 25 | 
             
              def multiple_format_contact(recipient)
         | 
| @@ -64,7 +56,7 @@ class MjmlTest < ActiveSupport::TestCase | |
| 64 56 | 
             
              end
         | 
| 65 57 |  | 
| 66 58 | 
             
              test "html should be sent as html" do
         | 
| 67 | 
            -
                email = Notifier.contact("you@example.com" | 
| 59 | 
            +
                email = Notifier.contact("you@example.com")
         | 
| 68 60 | 
             
                assert_equal "text/html", email.mime_type
         | 
| 69 61 | 
             
                assert_no_match(/<mj-body>/, email.body.encoded.strip)
         | 
| 70 62 | 
             
                assert_match(/<body/, email.body.encoded.strip)
         | 
| @@ -72,56 +64,16 @@ class MjmlTest < ActiveSupport::TestCase | |
| 72 64 | 
             
              end
         | 
| 73 65 |  | 
| 74 66 | 
             
              test 'with partial' do
         | 
| 75 | 
            -
                email = Notifier.user | 
| 67 | 
            +
                email = Notifier.user
         | 
| 76 68 | 
             
                assert_equal "text/html", email.mime_type
         | 
| 77 69 | 
             
                assert_match(/Hello Partial/, email.body.encoded.strip)
         | 
| 78 70 | 
             
                assert_no_match(/mj-text/, email.body.encoded.strip)
         | 
| 79 71 | 
             
              end
         | 
| 80 72 |  | 
| 81 73 | 
             
              test 'without a partial' do
         | 
| 82 | 
            -
                email = Notifier.no_partial | 
| 74 | 
            +
                email = Notifier.no_partial
         | 
| 83 75 | 
             
                assert_equal "text/html", email.mime_type
         | 
| 84 76 | 
             
                assert_match(/Hello World/, email.body.encoded.strip)
         | 
| 85 77 | 
             
                assert_no_match(/mj-text/, email.body.encoded.strip)
         | 
| 86 78 | 
             
              end
         | 
| 87 | 
            -
             | 
| 88 | 
            -
              # test "plain text should be sent as a plain text" do
         | 
| 89 | 
            -
              #   email = Notifier.contact("you@example.com", :text)
         | 
| 90 | 
            -
              #   assert_equal "text/plain", email.mime_type
         | 
| 91 | 
            -
              #   assert_equal "<mj-body></mj-body>", email.body.encoded.strip
         | 
| 92 | 
            -
              # end
         | 
| 93 | 
            -
             | 
| 94 | 
            -
              # test 'dealing with multipart e-mails' do
         | 
| 95 | 
            -
              #   email = Notifier.multiple_format_contact("you@example.com")
         | 
| 96 | 
            -
              #   assert_equal 2, email.parts.size
         | 
| 97 | 
            -
              #   assert_equal "multipart/alternative", email.mime_type
         | 
| 98 | 
            -
              #   assert_equal "text/plain", email.parts[0].mime_type
         | 
| 99 | 
            -
              #   assert_equal "<mj-body></mj-body>",
         | 
| 100 | 
            -
              #     email.parts[0].body.encoded.strip
         | 
| 101 | 
            -
              #   assert_equal "text/html", email.parts[1].mime_type
         | 
| 102 | 
            -
              #   assert_not_equal "<mj-body></mj-body>",
         | 
| 103 | 
            -
              #     email.parts[1].body.encoded.strip
         | 
| 104 | 
            -
              # end
         | 
| 105 | 
            -
             | 
| 106 | 
            -
              # test "with a custom renderer" do
         | 
| 107 | 
            -
              #   Mjml.renderer = TestRenderer
         | 
| 108 | 
            -
              #   email = Notifier.contact("you@example.com", :html)
         | 
| 109 | 
            -
              #   assert_equal "text/html", email.mime_type
         | 
| 110 | 
            -
              #   assert_equal "<p>TEST<strong>TEST</strong>TEST</p>", email.body.encoded.strip
         | 
| 111 | 
            -
              # end
         | 
| 112 | 
            -
             | 
| 113 | 
            -
              # test "with a custom renderer and options" do
         | 
| 114 | 
            -
              #   Mjml.renderer = TestRenderer.new(:show_text => true)
         | 
| 115 | 
            -
              #   email = Notifier.contact("you@example.com", :html)
         | 
| 116 | 
            -
              #   assert_equal "text/html", email.mime_type
         | 
| 117 | 
            -
              #   assert_equal "<p>TEST Dual templates <strong>TEST rocks</strong>TEST !</p>", email.body.encoded.strip
         | 
| 118 | 
            -
              # end
         | 
| 119 | 
            -
             | 
| 120 | 
            -
              # test 'with custom mjml processing options' do
         | 
| 121 | 
            -
              #   Mjml.processing_options = {:autolink => true}
         | 
| 122 | 
            -
              #   email = Notifier.link(:html)
         | 
| 123 | 
            -
              #   assert_equal "text/html", email.mime_type
         | 
| 124 | 
            -
              #   assert_equal '<p>Hello from <a href="http://www.sighmon.com">http://www.sighmon.com</a></p>', email.body.encoded.strip
         | 
| 125 | 
            -
              # end
         | 
| 126 | 
            -
             | 
| 127 79 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,29 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: mjml-haml
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Kadu Diógenes
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-09-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: haml-rails
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - " | 
| 17 | 
            +
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 0.9.0
         | 
| 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:  | 
| 26 | 
            +
                    version: 0.9.0
         | 
| 27 27 | 
             
            description: Render MJML + Haml template views in Rails
         | 
| 28 28 | 
             
            email: kadu@fnix.com.br
         | 
| 29 29 | 
             
            executables: []
         |