maily 0.7.2 → 0.8.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/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/app/assets/stylesheets/maily/application.scss +4 -2
- data/app/views/maily/shared/_header.html.erb +1 -1
- data/lib/generators/templates/initializer.rb +1 -1
- data/lib/maily.rb +1 -1
- data/lib/maily/generator.rb +9 -3
- data/lib/maily/mailer.rb +8 -3
- data/lib/maily/version.rb +1 -1
- data/spec/dummy/app/mailers/application_mailer.rb +7 -0
- data/spec/dummy/app/mailers/notifier.rb +1 -3
- data/spec/dummy/app/views/notifier/generic_welcome.html.erb +1 -0
- data/spec/dummy/config/application.rb +1 -0
- data/spec/dummy/lib/maily_hooks.rb +1 -0
- data/spec/mailer_spec.rb +8 -10
- data/spec/maily_spec.rb +1 -1
- metadata +6 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 06aac472a02c56536bdeddfaef8de5c3b273f645
         | 
| 4 | 
            +
              data.tar.gz: 7beb443286274be5d2a5dccc1c987d9ea4ccf08c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 4e3b8549a478516f18455592986e6d7ddf850035db3f6a7afb1c5f5dc44974ed47a79c3abb0686749d5026747b33c45adfea1fc61619392e4973fcd81b9d42da
         | 
| 7 | 
            +
              data.tar.gz: d4129159e44325534a217e7083f212c8951c7e965d6ed44aefb7d8235fe5d46c10b49506d8a2197ff8138556d55b70845dd828789cffbb72876b95a628545d00
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -2,6 +2,12 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            All notable changes to this project will be documented in this file.
         | 
| 4 4 |  | 
| 5 | 
            +
            ## [0.8.0]
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            - Inherited emails support (#28)
         | 
| 8 | 
            +
            - `Maily.available_locales` defaults to Rails
         | 
| 9 | 
            +
            available_locales `config.i18n.available_locales` (#27)
         | 
| 10 | 
            +
             | 
| 5 11 | 
             
            ## [0.7.2]
         | 
| 6 12 |  | 
| 7 13 | 
             
            - Definitive fix for newer apps using `webpacker` and without `sass-rails` (#22)
         | 
| @@ -85,6 +91,7 @@ All notable changes to this project will be documented in this file. | |
| 85 91 |  | 
| 86 92 | 
             
            - First real usable release :tada:
         | 
| 87 93 |  | 
| 94 | 
            +
            [0.8.0]: https://github.com/markets/maily/compare/v0.7.2...v0.8.0
         | 
| 88 95 | 
             
            [0.7.2]: https://github.com/markets/maily/compare/v0.7.1...v0.7.2
         | 
| 89 96 | 
             
            [0.7.1]: https://github.com/markets/maily/compare/v0.7.0...v0.7.1
         | 
| 90 97 | 
             
            [0.7.0]: https://github.com/markets/maily/compare/v0.6.3...v0.7.0
         | 
    
        data/README.md
    CHANGED
    
    | @@ -66,7 +66,7 @@ Maily.setup do |config| | |
| 66 66 | 
             
              # Allow deliveries
         | 
| 67 67 | 
             
              # config.allow_delivery = Rails.env.production? ? false : true
         | 
| 68 68 |  | 
| 69 | 
            -
              # I18n.available_locales by default
         | 
| 69 | 
            +
              # Your application available_locales (or I18n.available_locales) by default
         | 
| 70 70 | 
             
              # config.available_locales = [:en, :es, :pt, :fr]
         | 
| 71 71 |  | 
| 72 72 | 
             
              # Run maily under different controller ('ActionController::Base' by default)
         | 
| @@ -48,12 +48,12 @@ header.header, footer.footer { | |
| 48 48 | 
             
              position: fixed;
         | 
| 49 49 | 
             
              left: 0;
         | 
| 50 50 | 
             
              z-index: 99;
         | 
| 51 | 
            -
              padding: .5em 1em;
         | 
| 52 51 | 
             
              width: 100%;
         | 
| 53 52 | 
             
              background-color: rgba(255,255,255, .95);
         | 
| 54 53 | 
             
            }
         | 
| 55 54 |  | 
| 56 55 | 
             
            header.header {
         | 
| 56 | 
            +
              padding: 1em;
         | 
| 57 57 | 
             
              top: 0;
         | 
| 58 58 | 
             
              box-shadow: 0 .0625em .3125em rgba(0,0,0, .15);
         | 
| 59 59 |  | 
| @@ -63,13 +63,14 @@ header.header { | |
| 63 63 | 
             
                margin-left: 10px;
         | 
| 64 64 |  | 
| 65 65 | 
             
                img, span {
         | 
| 66 | 
            -
                  vertical-align:  | 
| 66 | 
            +
                  vertical-align: text-bottom;
         | 
| 67 67 | 
             
                }
         | 
| 68 68 | 
             
              }
         | 
| 69 69 | 
             
            }
         | 
| 70 70 |  | 
| 71 71 | 
             
            /* Footer */
         | 
| 72 72 | 
             
            footer.footer {
         | 
| 73 | 
            +
              padding: 0 1em;
         | 
| 73 74 | 
             
              bottom: 0;
         | 
| 74 75 | 
             
              box-shadow: 0 -.0625em .3125em rgba(0,0,0, .15);
         | 
| 75 76 | 
             
              font-family: "Helvetica Neue", Helvetica, sans-serif;
         | 
| @@ -181,6 +182,7 @@ footer.footer { | |
| 181 182 | 
             
                  border: none;
         | 
| 182 183 | 
             
                  border-top: solid 1px $grey;
         | 
| 183 184 | 
             
                  border-radius: 2px;
         | 
| 185 | 
            +
                  min-height: 100px;
         | 
| 184 186 | 
             
                }
         | 
| 185 187 | 
             
              }
         | 
| 186 188 |  | 
| @@ -8,7 +8,7 @@ Maily.setup do |config| | |
| 8 8 | 
             
              # Allow deliveries
         | 
| 9 9 | 
             
              # config.allow_delivery = Rails.env.production? ? false : true
         | 
| 10 10 |  | 
| 11 | 
            -
              # I18n.available_locales by default
         | 
| 11 | 
            +
              # Your application available_locales (or I18n.available_locales) by default
         | 
| 12 12 | 
             
              # config.available_locales = [:en, :es, :pt, :fr]
         | 
| 13 13 |  | 
| 14 14 | 
             
              # Run maily under different controller ('ActionController::Base' by default)
         | 
    
        data/lib/maily.rb
    CHANGED
    
    | @@ -13,7 +13,7 @@ module Maily | |
| 13 13 | 
             
                  self.enabled            = Rails.env.production? ? false : true
         | 
| 14 14 | 
             
                  self.allow_edition      = Rails.env.production? ? false : true
         | 
| 15 15 | 
             
                  self.allow_delivery     = Rails.env.production? ? false : true
         | 
| 16 | 
            -
                  self.available_locales  = I18n.available_locales
         | 
| 16 | 
            +
                  self.available_locales  = Rails.application.config.i18n.available_locales || I18n.available_locales
         | 
| 17 17 | 
             
                  self.base_controller    = 'ActionController::Base'
         | 
| 18 18 | 
             
                  self.http_authorization = nil
         | 
| 19 19 | 
             
                  self.hooks_path         = "lib/maily_hooks.rb"
         | 
    
        data/lib/maily/generator.rb
    CHANGED
    
    | @@ -7,14 +7,20 @@ module Maily | |
| 7 7 | 
             
                  hooks    = []
         | 
| 8 8 |  | 
| 9 9 | 
             
                  Maily::Mailer.list.each do |mailer|
         | 
| 10 | 
            -
                     | 
| 10 | 
            +
                    _hooks = []
         | 
| 11 | 
            +
             | 
| 11 12 | 
             
                    mailer.emails_list.each do |email|
         | 
| 12 13 | 
             
                      if email.require_hook?
         | 
| 13 14 | 
             
                        fixtures << email.required_arguments
         | 
| 14 | 
            -
                         | 
| 15 | 
            +
                        _hooks << "  mailer.register_hook(:#{email.name}, #{email.required_arguments.join(', ')})"
         | 
| 15 16 | 
             
                      end
         | 
| 16 17 | 
             
                    end
         | 
| 17 | 
            -
             | 
| 18 | 
            +
             | 
| 19 | 
            +
                    if _hooks.present?
         | 
| 20 | 
            +
                      hooks << "\nMaily.hooks_for('#{mailer.name.classify}') do |mailer|"
         | 
| 21 | 
            +
                      hooks << _hooks
         | 
| 22 | 
            +
                      hooks << "end"
         | 
| 23 | 
            +
                    end
         | 
| 18 24 | 
             
                  end
         | 
| 19 25 |  | 
| 20 26 | 
             
                  fixtures = fixtures.flatten.uniq.map { |f| "#{f.to_s} = ''" }.join("\n")
         | 
    
        data/lib/maily/mailer.rb
    CHANGED
    
    | @@ -40,7 +40,7 @@ module Maily | |
| 40 40 | 
             
                end
         | 
| 41 41 |  | 
| 42 42 | 
             
                def register_hook(email_name, *args)
         | 
| 43 | 
            -
                  email = find_email(email_name)
         | 
| 43 | 
            +
                  email = find_email(email_name) || add_email(email_name)
         | 
| 44 44 | 
             
                  email && email.register_hook(args)
         | 
| 45 45 | 
             
                end
         | 
| 46 46 |  | 
| @@ -55,9 +55,14 @@ module Maily | |
| 55 55 | 
             
                def parse_emails
         | 
| 56 56 | 
             
                  _emails = klass.send(:public_instance_methods, false)
         | 
| 57 57 |  | 
| 58 | 
            -
                  _emails. | 
| 59 | 
            -
                     | 
| 58 | 
            +
                  _emails.each do |email|
         | 
| 59 | 
            +
                    add_email(email)
         | 
| 60 60 | 
             
                  end
         | 
| 61 61 | 
             
                end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                def add_email(email_name)
         | 
| 64 | 
            +
                  email = Maily::Email.new(email_name.to_s, self)
         | 
| 65 | 
            +
                  self.emails[email.name] = email
         | 
| 66 | 
            +
                end
         | 
| 62 67 | 
             
              end
         | 
| 63 68 | 
             
            end
         | 
    
        data/lib/maily/version.rb
    CHANGED
    
    
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            <h1>Generic Welcome</h1>
         | 
| @@ -22,6 +22,7 @@ module Dummy | |
| 22 22 | 
             
                # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
         | 
| 23 23 | 
             
                # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
         | 
| 24 24 | 
             
                # config.i18n.default_locale = :de
         | 
| 25 | 
            +
                config.i18n.available_locales = [:en, :es, :pt, :fr]
         | 
| 25 26 | 
             
              end
         | 
| 26 27 | 
             
            end
         | 
| 27 28 |  | 
| @@ -4,6 +4,7 @@ Maily.hooks_for('Notifier') do |mailer| | |
| 4 4 | 
             
              mailer.register_hook(:invitation, email)
         | 
| 5 5 | 
             
              mailer.register_hook(:recommendation, template_path: 'notifications', description: 'description')
         | 
| 6 6 | 
             
              mailer.register_hook(:custom_template_name, template_name: 'invitation')
         | 
| 7 | 
            +
              mailer.register_hook(:generic_welcome)
         | 
| 7 8 |  | 
| 8 9 | 
             
              mailer.hide_email(:hidden)
         | 
| 9 10 | 
             
            end
         | 
    
        data/spec/mailer_spec.rb
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe Maily::Mailer do
         | 
| 4 | 
            +
              let(:mailer) { Maily::Mailer.find('notifier') }
         | 
| 5 | 
            +
             | 
| 4 6 | 
             
              it "should load mailers" do
         | 
| 5 | 
            -
                expect(Maily::Mailer.all.keys).to eq(['notifier'])
         | 
| 7 | 
            +
                expect(Maily::Mailer.all.keys).to eq(['application_mailer', 'notifier'])
         | 
| 6 8 | 
             
              end
         | 
| 7 9 |  | 
| 8 10 | 
             
              it "should build emails" do
         | 
| 9 | 
            -
                mailer  | 
| 10 | 
            -
             | 
| 11 | 
            -
                expect(mailer.emails.size).to eq(6)
         | 
| 11 | 
            +
                expect(mailer.emails.size).to eq(7)
         | 
| 12 12 | 
             
              end
         | 
| 13 13 |  | 
| 14 14 | 
             
              it "should find mailers by name" do
         | 
| @@ -16,14 +16,14 @@ describe Maily::Mailer do | |
| 16 16 | 
             
              end
         | 
| 17 17 |  | 
| 18 18 | 
             
              it "should find emails by name" do
         | 
| 19 | 
            -
                mailer = Maily::Mailer.find('notifier')
         | 
| 20 | 
            -
             | 
| 21 19 | 
             
                expect(mailer.find_email('welcome').name).to eq('welcome')
         | 
| 22 20 | 
             
              end
         | 
| 23 21 |  | 
| 24 | 
            -
              it " | 
| 25 | 
            -
                mailer | 
| 22 | 
            +
              it "allow to add inherited emails via a hook" do
         | 
| 23 | 
            +
                expect(mailer.find_email('generic_welcome').name).to eq('generic_welcome')
         | 
| 24 | 
            +
              end
         | 
| 26 25 |  | 
| 26 | 
            +
              it "allows to hide email" do
         | 
| 27 27 | 
             
                expect(mailer.find_email('hidden')).to be nil
         | 
| 28 28 | 
             
              end
         | 
| 29 29 |  | 
| @@ -35,8 +35,6 @@ describe Maily::Mailer do | |
| 35 35 | 
             
              end
         | 
| 36 36 |  | 
| 37 37 | 
             
              it "#emails_list returns an array with all emails" do
         | 
| 38 | 
            -
                mailer = Maily::Mailer.find('notifier')
         | 
| 39 | 
            -
             | 
| 40 38 | 
             
                expect(mailer.emails_list).to be_an_instance_of(Array)
         | 
| 41 39 | 
             
                expect(mailer.emails_list.sample).to be_an_instance_of(Maily::Email)
         | 
| 42 40 | 
             
              end
         | 
    
        data/spec/maily_spec.rb
    CHANGED
    
    | @@ -7,7 +7,7 @@ describe Maily do | |
| 7 7 | 
             
                expect(Maily.enabled).to be true
         | 
| 8 8 | 
             
                expect(Maily.allow_edition).to be true
         | 
| 9 9 | 
             
                expect(Maily.allow_delivery).to be true
         | 
| 10 | 
            -
                expect(Maily.available_locales).to eq( | 
| 10 | 
            +
                expect(Maily.available_locales).to eq([:en, :es, :pt, :fr])
         | 
| 11 11 | 
             
                expect(Maily.base_controller).to eq('ActionController::Base')
         | 
| 12 12 | 
             
                expect(Maily.http_authorization).to be nil
         | 
| 13 13 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: maily
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.8.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - markets
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2018- | 
| 11 | 
            +
            date: 2018-07-31 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -139,11 +139,13 @@ files: | |
| 139 139 | 
             
            - spec/dummy/app/controllers/application_controller.rb
         | 
| 140 140 | 
             
            - spec/dummy/app/controllers/concerns/.keep
         | 
| 141 141 | 
             
            - spec/dummy/app/helpers/application_helper.rb
         | 
| 142 | 
            +
            - spec/dummy/app/mailers/application_mailer.rb
         | 
| 142 143 | 
             
            - spec/dummy/app/mailers/notifier.rb
         | 
| 143 144 | 
             
            - spec/dummy/app/models/.keep
         | 
| 144 145 | 
             
            - spec/dummy/app/models/concerns/.keep
         | 
| 145 146 | 
             
            - spec/dummy/app/views/layouts/application.html.erb
         | 
| 146 147 | 
             
            - spec/dummy/app/views/notifications/recommendation.html.erb
         | 
| 148 | 
            +
            - spec/dummy/app/views/notifier/generic_welcome.html.erb
         | 
| 147 149 | 
             
            - spec/dummy/app/views/notifier/invitation.html.erb
         | 
| 148 150 | 
             
            - spec/dummy/app/views/notifier/multipart.html.erb
         | 
| 149 151 | 
             
            - spec/dummy/app/views/notifier/multipart.text.erb
         | 
| @@ -214,11 +216,13 @@ test_files: | |
| 214 216 | 
             
            - spec/dummy/app/controllers/application_controller.rb
         | 
| 215 217 | 
             
            - spec/dummy/app/controllers/concerns/.keep
         | 
| 216 218 | 
             
            - spec/dummy/app/helpers/application_helper.rb
         | 
| 219 | 
            +
            - spec/dummy/app/mailers/application_mailer.rb
         | 
| 217 220 | 
             
            - spec/dummy/app/mailers/notifier.rb
         | 
| 218 221 | 
             
            - spec/dummy/app/models/.keep
         | 
| 219 222 | 
             
            - spec/dummy/app/models/concerns/.keep
         | 
| 220 223 | 
             
            - spec/dummy/app/views/layouts/application.html.erb
         | 
| 221 224 | 
             
            - spec/dummy/app/views/notifications/recommendation.html.erb
         | 
| 225 | 
            +
            - spec/dummy/app/views/notifier/generic_welcome.html.erb
         | 
| 222 226 | 
             
            - spec/dummy/app/views/notifier/invitation.html.erb
         | 
| 223 227 | 
             
            - spec/dummy/app/views/notifier/multipart.html.erb
         | 
| 224 228 | 
             
            - spec/dummy/app/views/notifier/multipart.text.erb
         |