maily 0.5.0 → 0.6.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/.travis.yml +6 -9
- data/Appraisals +4 -8
- data/README.md +26 -11
- data/app/assets/javascripts/maily/application.js +0 -2
- data/app/assets/stylesheets/maily/application.scss +13 -7
- data/app/assets/stylesheets/maily/icons.css +5 -5
- data/app/assets/stylesheets/maily/normalize.css +251 -210
- data/app/controllers/maily/application_controller.rb +2 -2
- data/app/controllers/maily/emails_controller.rb +9 -5
- data/app/helpers/maily/emails_helper.rb +4 -0
- data/app/views/layouts/maily/application.html.erb +5 -4
- data/app/views/maily/emails/index.html.erb +2 -1
- data/app/views/maily/emails/show.html.erb +8 -2
- data/app/views/maily/shared/_footer.html.erb +1 -1
- data/app/views/maily/shared/_sidebar.html.erb +1 -1
- data/gemfiles/{rails_3.2.gemfile → rails_5.1.gemfile} +1 -1
- data/lib/generators/templates/initializer.rb +6 -0
- data/lib/maily.rb +8 -5
- data/lib/maily/email.rb +16 -4
- data/lib/maily/version.rb +1 -1
- data/maily.gemspec +1 -1
- data/spec/controllers_spec.rb +2 -1
- data/spec/dummy/lib/maily_hooks.rb +5 -3
- data/spec/email_spec.rb +12 -1
- metadata +6 -9
- data/app/assets/images/maily/.gitkeep +0 -0
- data/app/assets/javascripts/maily/html5shiv.js +0 -8
- data/gemfiles/rails_4.1.gemfile +0 -7
| @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            module Maily
         | 
| 2 2 | 
             
              class ApplicationController < Maily.base_controller.constantize
         | 
| 3 | 
            -
                 | 
| 3 | 
            +
                before_action :maily_enabled?, :http_authorization
         | 
| 4 4 |  | 
| 5 5 | 
             
                layout 'maily/application'
         | 
| 6 6 |  | 
| 7 7 | 
             
                private
         | 
| 8 8 |  | 
| 9 9 | 
             
                def maily_enabled?
         | 
| 10 | 
            -
                  Maily.enabled ||  | 
| 10 | 
            +
                  Maily.enabled || head(404, message: "Maily disabled")
         | 
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| 13 13 | 
             
                def http_authorization
         | 
| @@ -1,14 +1,18 @@ | |
| 1 1 | 
             
            module Maily
         | 
| 2 2 | 
             
              class EmailsController < ApplicationController
         | 
| 3 | 
            -
                 | 
| 4 | 
            -
                 | 
| 5 | 
            -
                 | 
| 6 | 
            -
                 | 
| 3 | 
            +
                before_action :allowed_action?, only: [:edit, :update, :deliver]
         | 
| 4 | 
            +
                before_action :load_mailers, only: [:index, :show, :edit]
         | 
| 5 | 
            +
                before_action :load_mailer_and_email, except: [:index]
         | 
| 6 | 
            +
                around_action :perform_with_locale, only: [:show, :raw, :deliver]
         | 
| 7 7 |  | 
| 8 8 | 
             
                def index
         | 
| 9 9 | 
             
                end
         | 
| 10 10 |  | 
| 11 11 | 
             
                def show
         | 
| 12 | 
            +
                  if !@maily_email.correct_number_of_arguments?
         | 
| 13 | 
            +
                    alert = "#{@maily_email.required_arguments.size} arguments needed for #{@maily_email.name} email"
         | 
| 14 | 
            +
                    redirect_to(root_path, alert: alert)
         | 
| 15 | 
            +
                  end
         | 
| 12 16 | 
             
                end
         | 
| 13 17 |  | 
| 14 18 | 
             
                def raw
         | 
| @@ -47,7 +51,7 @@ module Maily | |
| 47 51 | 
             
                private
         | 
| 48 52 |  | 
| 49 53 | 
             
                def allowed_action?
         | 
| 50 | 
            -
                  Maily.allowed_action?(action_name) ||  | 
| 54 | 
            +
                  Maily.allowed_action?(action_name) || redirect_to(root_path, alert: "Maily: action #{action_name} not allowed!")
         | 
| 51 55 | 
             
                end
         | 
| 52 56 |  | 
| 53 57 | 
             
                def load_mailers
         | 
| @@ -5,16 +5,17 @@ | |
| 5 5 | 
             
              <%= stylesheet_link_tag    "maily/application", :media => "all" %>
         | 
| 6 6 | 
             
              <%= javascript_include_tag "maily/application" %>
         | 
| 7 7 | 
             
              <%= csrf_meta_tags %>
         | 
| 8 | 
            -
              <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
         | 
| 9 | 
            -
              <!--[if lt IE 9]>
         | 
| 10 | 
            -
                <script src="/assets/javascripts/html5shiv.js"></script>
         | 
| 11 | 
            -
              <![endif]-->
         | 
| 12 8 | 
             
            </head>
         | 
| 13 9 | 
             
            <body>
         | 
| 14 10 | 
             
              <%= render 'maily/shared/header' %>
         | 
| 15 11 |  | 
| 16 12 | 
             
              <div class="wrap_content clearfix">
         | 
| 17 13 | 
             
                <%= render 'maily/shared/sidebar' %>
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                <% if flash[:alert].present? %>
         | 
| 16 | 
            +
                  <p class="alert"><%= flash[:alert] %></p>
         | 
| 17 | 
            +
                <% end %>
         | 
| 18 | 
            +
             | 
| 18 19 | 
             
                <%= yield %>
         | 
| 19 20 | 
             
              </div>
         | 
| 20 21 |  | 
| @@ -1,4 +1,10 @@ | |
| 1 1 | 
             
            <div class="content">
         | 
| 2 | 
            +
              <% if @maily_email.description %>
         | 
| 3 | 
            +
                <div>
         | 
| 4 | 
            +
                  <b>Description </b><%= @maily_email.description %>
         | 
| 5 | 
            +
                </div><br>
         | 
| 6 | 
            +
              <% end %>
         | 
| 7 | 
            +
             | 
| 2 8 | 
             
              <ul class="maily_action_bar">
         | 
| 3 9 | 
             
                <li>
         | 
| 4 10 | 
             
                  <em class="icon-maily-pencil"></em>
         | 
| @@ -10,7 +16,7 @@ | |
| 10 16 | 
             
                    <ul>
         | 
| 11 17 | 
             
                      <li>
         | 
| 12 18 | 
             
                        <em class="icon-maily-earth"></em>
         | 
| 13 | 
            -
                        Languages | 
| 19 | 
            +
                        Languages</li>
         | 
| 14 20 | 
             
                        <% Maily.available_locales.each do |locale| %>
         | 
| 15 21 | 
             
                          <li><%= link_to locale.upcase, url_for(params.merge(locale: locale)) %></li>
         | 
| 16 22 | 
             
                        <% end %>
         | 
| @@ -22,7 +28,7 @@ | |
| 22 28 | 
             
                <li>
         | 
| 23 29 | 
             
                  <%= form_tag(deliver_maily_email_path(mailer: params[:mailer], email: params[:email], locale: params[:locale]), method: :post, class: 'maily_send') do %>
         | 
| 24 30 | 
             
                    <ul>
         | 
| 25 | 
            -
                      <li>Send to | 
| 31 | 
            +
                      <li>Send to</li>
         | 
| 26 32 | 
             
                      <li><%= email_field_tag :to, nil, class: 'maily_textfield', placeholder: "Enter email", required: true %></li>
         | 
| 27 33 | 
             
                      <li><%= submit_tag 'Send', class: 'maily_button' %></li>
         | 
| 28 34 | 
             
                    </ul>
         | 
| @@ -1,3 +1,3 @@ | |
| 1 1 | 
             
            <footer class="footer">
         | 
| 2 | 
            -
              <%= link_to | 
| 2 | 
            +
              <p>Powered by <%= link_to("Maily v#{Maily::VERSION}", 'https://github.com/markets/maily', target: '_blank') %></p>
         | 
| 3 3 | 
             
            </footer>
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            <aside class="sidebar">
         | 
| 2 2 | 
             
              <% @mailers.each do |mailer| %>
         | 
| 3 3 | 
             
                <section class="nav_list">
         | 
| 4 | 
            -
                  <h3 class="title nav_title"><%= mailer.name.humanize %></h3>
         | 
| 4 | 
            +
                  <h3 class="title nav_title"><%= "#{mailer.name.humanize} (#{mailer.emails.length})" %></h3>
         | 
| 5 5 | 
             
                  <ul>
         | 
| 6 6 | 
             
                    <% mailer.emails.each do |email| %>
         | 
| 7 7 | 
             
                      <li><%= link_to email.name.humanize, maily_email_path(mailer: mailer.name, email: email.name), class: sidebar_class(mailer, email) %></li>
         | 
| @@ -14,6 +14,12 @@ Maily.setup do |config| | |
| 14 14 | 
             
              # Run maily under different controller ('ActionController::Base' by default)
         | 
| 15 15 | 
             
              # config.base_controller = '::AdminController'
         | 
| 16 16 |  | 
| 17 | 
            +
              # Configure hooks path
         | 
| 18 | 
            +
              # config.hooks_path = 'lib/maily_hooks.rb'
         | 
| 19 | 
            +
             | 
| 17 20 | 
             
              # Http basic authentication (nil by default)
         | 
| 18 21 | 
             
              # config.http_authorization = { username: 'admin', password: 'secret' }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              # Customize welcome message
         | 
| 24 | 
            +
              # config.welcome_message = "Welcome to our email testing platform. If you have any problem, please contact support team at support@example.com."
         | 
| 19 25 | 
             
            end
         | 
    
        data/lib/maily.rb
    CHANGED
    
    | @@ -6,7 +6,7 @@ require 'maily/email' | |
| 6 6 | 
             
            module Maily
         | 
| 7 7 | 
             
              class << self
         | 
| 8 8 | 
             
                attr_accessor :enabled, :allow_edition, :allow_delivery, :available_locales,
         | 
| 9 | 
            -
                              :base_controller, :http_authorization
         | 
| 9 | 
            +
                              :base_controller, :http_authorization, :hooks_path, :welcome_message
         | 
| 10 10 |  | 
| 11 11 | 
             
                def init!
         | 
| 12 12 | 
             
                  self.enabled            = Rails.env.production? ? false : true
         | 
| @@ -15,18 +15,21 @@ module Maily | |
| 15 15 | 
             
                  self.available_locales  = I18n.available_locales
         | 
| 16 16 | 
             
                  self.base_controller    = 'ActionController::Base'
         | 
| 17 17 | 
             
                  self.http_authorization = nil
         | 
| 18 | 
            +
                  self.hooks_path         = "lib/maily_hooks.rb"
         | 
| 19 | 
            +
                  self.welcome_message    = "Use the menu on the left hand side of the screen to navigate through the different email templates."
         | 
| 18 20 | 
             
                end
         | 
| 19 21 |  | 
| 20 22 | 
             
                def load_emails_and_hooks
         | 
| 21 23 | 
             
                  # Load emails from file system
         | 
| 22 24 | 
             
                  Dir[Rails.root + 'app/mailers/*.rb'].each do |mailer|
         | 
| 23 | 
            -
                     | 
| 24 | 
            -
                     | 
| 25 | 
            -
                     | 
| 25 | 
            +
                    klass_name = File.basename(mailer, '.rb')
         | 
| 26 | 
            +
                    klass = klass_name.camelize.constantize
         | 
| 27 | 
            +
                    methods = klass.send(:public_instance_methods, false)
         | 
| 28 | 
            +
                    Maily::Mailer.new(klass_name, methods)
         | 
| 26 29 | 
             
                  end
         | 
| 27 30 |  | 
| 28 31 | 
             
                  # Load hooks
         | 
| 29 | 
            -
                  hooks_file_path =  | 
| 32 | 
            +
                  hooks_file_path = File.join(Rails.root, hooks_path)
         | 
| 30 33 | 
             
                  require hooks_file_path if File.exist?(hooks_file_path)
         | 
| 31 34 | 
             
                end
         | 
| 32 35 |  | 
    
        data/lib/maily/email.rb
    CHANGED
    
    | @@ -1,12 +1,13 @@ | |
| 1 1 | 
             
            module Maily
         | 
| 2 2 | 
             
              class Email
         | 
| 3 | 
            -
                attr_accessor :name, :mailer, :arguments, :template_path
         | 
| 3 | 
            +
                attr_accessor :name, :mailer, :arguments, :template_path, :description
         | 
| 4 4 |  | 
| 5 5 | 
             
                def initialize(name, mailer)
         | 
| 6 6 | 
             
                  self.name          = name.to_s
         | 
| 7 7 | 
             
                  self.mailer        = mailer
         | 
| 8 8 | 
             
                  self.arguments     = nil
         | 
| 9 9 | 
             
                  self.template_path = mailer
         | 
| 10 | 
            +
                  self.description   = nil
         | 
| 10 11 | 
             
                end
         | 
| 11 12 |  | 
| 12 13 | 
             
                def parameters
         | 
| @@ -21,11 +22,16 @@ module Maily | |
| 21 22 | 
             
                  parameters.map(&:last)
         | 
| 22 23 | 
             
                end
         | 
| 23 24 |  | 
| 25 | 
            +
                def correct_number_of_arguments?
         | 
| 26 | 
            +
                  required_arguments.size == arguments.size
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 24 29 | 
             
                def register_hook(*args)
         | 
| 25 30 | 
             
                  args = args.flatten
         | 
| 26 31 |  | 
| 27 | 
            -
                  if args.last.is_a?(Hash) | 
| 28 | 
            -
                    self. | 
| 32 | 
            +
                  if args.last.is_a?(Hash)
         | 
| 33 | 
            +
                    self.description = args.last.delete(:description)
         | 
| 34 | 
            +
                    self.template_path = args.last.delete(:template_path)
         | 
| 29 35 | 
             
                    args.pop
         | 
| 30 36 | 
             
                  end
         | 
| 31 37 |  | 
| @@ -41,7 +47,13 @@ module Maily | |
| 41 47 | 
             
                end
         | 
| 42 48 |  | 
| 43 49 | 
             
                def call
         | 
| 44 | 
            -
                   | 
| 50 | 
            +
                  *args = arguments && arguments.map { |arg| arg.respond_to?(:call) ? arg.call : arg }
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  if args == [nil]
         | 
| 53 | 
            +
                    mailer_klass.public_send(name)
         | 
| 54 | 
            +
                  else
         | 
| 55 | 
            +
                    mailer_klass.public_send(name, *args)
         | 
| 56 | 
            +
                  end
         | 
| 45 57 | 
             
                end
         | 
| 46 58 |  | 
| 47 59 | 
             
                def base_path(part)
         | 
    
        data/lib/maily/version.rb
    CHANGED
    
    
    
        data/maily.gemspec
    CHANGED
    
    | @@ -7,7 +7,7 @@ Gem::Specification.new do |s| | |
| 7 7 | 
             
              s.email         = ["srmarc.ai@gmail.com"]
         | 
| 8 8 | 
             
              s.homepage      = "https://github.com/markets/maily"
         | 
| 9 9 | 
             
              s.summary       = "Rails Engine to preview emails in the browser."
         | 
| 10 | 
            -
              s.description   = "Rails Engine to  | 
| 10 | 
            +
              s.description   = "Maily is a Rails Engine to manage, test and navigate through all your email templates of your app, being able to preview them directly in your browser."
         | 
| 11 11 | 
             
              s.license       = "MIT"
         | 
| 12 12 |  | 
| 13 13 | 
             
              s.files         = `git ls-files`.split($/)
         | 
    
        data/spec/controllers_spec.rb
    CHANGED
    
    | @@ -13,7 +13,8 @@ describe Maily::EmailsController, type: :controller do | |
| 13 13 |  | 
| 14 14 | 
             
              it 'raise error if disabled' do
         | 
| 15 15 | 
             
                Maily.enabled = false
         | 
| 16 | 
            -
                 | 
| 16 | 
            +
                get :index
         | 
| 17 | 
            +
                expect(response.status).to eq(404)
         | 
| 17 18 | 
             
              end
         | 
| 18 19 |  | 
| 19 20 | 
             
              it 'responds with 401 if http authorization fails' do
         | 
| @@ -1,4 +1,6 @@ | |
| 1 | 
            +
            email = -> { 'foo@foo.com' }
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            Maily.hooks_for('Notifier') do |mailer|
         | 
| 2 | 
            -
              mailer.register_hook(:invitation,  | 
| 3 | 
            -
              mailer.register_hook(:recommendation, template_path: 'notifications')
         | 
| 4 | 
            -
            end
         | 
| 4 | 
            +
              mailer.register_hook(:invitation, email)
         | 
| 5 | 
            +
              mailer.register_hook(:recommendation, template_path: 'notifications', description: 'description')
         | 
| 6 | 
            +
            end
         | 
    
        data/spec/email_spec.rb
    CHANGED
    
    | @@ -24,7 +24,13 @@ describe Maily::Email do | |
| 24 24 | 
             
                  expect(email.require_hook?).to be true
         | 
| 25 25 | 
             
                end
         | 
| 26 26 |  | 
| 27 | 
            -
                it  | 
| 27 | 
            +
                it 'should handle lazy arguments successfully' do
         | 
| 28 | 
            +
                  expect(email.arguments).to be_present
         | 
| 29 | 
            +
                  expect(email.arguments.size).to eq(email.required_arguments.size)
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                it 'should handle not lazy arguments successfully' do
         | 
| 33 | 
            +
                  allow(email).to receive(:email).and_return('foo@foo.com')
         | 
| 28 34 | 
             
                  expect(email.arguments).to be_present
         | 
| 29 35 | 
             
                  expect(email.arguments.size).to eq(email.required_arguments.size)
         | 
| 30 36 | 
             
                end
         | 
| @@ -38,4 +44,9 @@ describe Maily::Email do | |
| 38 44 | 
             
                email = mailer.find_email('recommendation')
         | 
| 39 45 | 
             
                expect(email.template_path).to eq('notifications')
         | 
| 40 46 | 
             
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              it "should handle description via hook" do
         | 
| 49 | 
            +
                email = mailer.find_email('recommendation')
         | 
| 50 | 
            +
                expect(email.description).to eq('description')
         | 
| 51 | 
            +
              end
         | 
| 41 52 | 
             
            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.6.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - markets
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-07-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -80,8 +80,8 @@ dependencies: | |
| 80 80 | 
             
                - - ">="
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: '0'
         | 
| 83 | 
            -
            description: Rails Engine to  | 
| 84 | 
            -
               | 
| 83 | 
            +
            description: Maily is a Rails Engine to manage, test and navigate through all your
         | 
| 84 | 
            +
              email templates of your app, being able to preview them directly in your browser.
         | 
| 85 85 | 
             
            email:
         | 
| 86 86 | 
             
            - srmarc.ai@gmail.com
         | 
| 87 87 | 
             
            executables: []
         | 
| @@ -95,14 +95,12 @@ files: | |
| 95 95 | 
             
            - MIT-LICENSE
         | 
| 96 96 | 
             
            - README.md
         | 
| 97 97 | 
             
            - Rakefile
         | 
| 98 | 
            -
            - app/assets/images/maily/.gitkeep
         | 
| 99 98 | 
             
            - app/assets/images/maily/fonts/JosefinSans-Light.ttf
         | 
| 100 99 | 
             
            - app/assets/images/maily/icons/maily.eot
         | 
| 101 100 | 
             
            - app/assets/images/maily/icons/maily.svg
         | 
| 102 101 | 
             
            - app/assets/images/maily/icons/maily.ttf
         | 
| 103 102 | 
             
            - app/assets/images/maily/icons/maily.woff
         | 
| 104 103 | 
             
            - app/assets/javascripts/maily/application.js
         | 
| 105 | 
            -
            - app/assets/javascripts/maily/html5shiv.js
         | 
| 106 104 | 
             
            - app/assets/stylesheets/maily/application.scss
         | 
| 107 105 | 
             
            - app/assets/stylesheets/maily/icons.css
         | 
| 108 106 | 
             
            - app/assets/stylesheets/maily/normalize.css
         | 
| @@ -118,10 +116,9 @@ files: | |
| 118 116 | 
             
            - app/views/maily/shared/_header.html.erb
         | 
| 119 117 | 
             
            - app/views/maily/shared/_sidebar.html.erb
         | 
| 120 118 | 
             
            - config/routes.rb
         | 
| 121 | 
            -
            - gemfiles/rails_3.2.gemfile
         | 
| 122 | 
            -
            - gemfiles/rails_4.1.gemfile
         | 
| 123 119 | 
             
            - gemfiles/rails_4.2.gemfile
         | 
| 124 120 | 
             
            - gemfiles/rails_5.0.gemfile
         | 
| 121 | 
            +
            - gemfiles/rails_5.1.gemfile
         | 
| 125 122 | 
             
            - lib/generators/maily/install_generator.rb
         | 
| 126 123 | 
             
            - lib/generators/templates/initializer.rb
         | 
| 127 124 | 
             
            - lib/maily.rb
         | 
| @@ -199,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 199 196 | 
             
                  version: '0'
         | 
| 200 197 | 
             
            requirements: []
         | 
| 201 198 | 
             
            rubyforge_project: 
         | 
| 202 | 
            -
            rubygems_version: 2.5. | 
| 199 | 
            +
            rubygems_version: 2.5.2
         | 
| 203 200 | 
             
            signing_key: 
         | 
| 204 201 | 
             
            specification_version: 4
         | 
| 205 202 | 
             
            summary: Rails Engine to preview emails in the browser.
         | 
| 
            File without changes
         | 
| @@ -1,8 +0,0 @@ | |
| 1 | 
            -
            /*
         | 
| 2 | 
            -
             HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
         | 
| 3 | 
            -
            */
         | 
| 4 | 
            -
            (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
         | 
| 5 | 
            -
            a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}</style>";
         | 
| 6 | 
            -
            c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
         | 
| 7 | 
            -
            "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);
         | 
| 8 | 
            -
            if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
         |