Sha256: ebb0e8a6f2aa089cefb018e7b6e5e6c112ea52471e4b5ff108256f792945f88d

Contents?: true

Size: 1.34 KB

Versions: 8

Compression:

Stored size: 1.34 KB

Contents

require 'oxymoron/concern'

module Oxymoron
  class Engine < ::Rails::Engine
    initializer 'oxymoron.dependent_on_routes', after: "sprockets.environment" do
      Rails.application.config.after_initialize do

        if Config.rewrite_form_for
          ActionView::Base.send :include, ActionViewExtensions::FormHelperRewrite
        end

        ActionView::Base.send :include, ActionViewExtensions::FormHelper

        module ActionView::Helpers
          class FormBuilder
            include ActionViewExtensions::FormBuilder
          end
        end

        Config.oxymoron_js_path ||= Rails.root.join('app', 'assets', 'javascripts')
        routes_watch unless Rails.env.production?
        write_assets
      end
    end

    initializer 'oxymoron.csrf' do |app|
      ActiveSupport.on_load(:action_controller) do
        include ::Oxymoron::Concern
      end
    end

    private
      def routes_watch
        oxymoron_reloader = ActiveSupport::FileUpdateChecker.new(Dir["#{Rails.root}/config/routes.rb"]) do
          write_assets
        end

        (Rails.version.to_i >= 5 ? ActiveSupport : ActionDispatch)::Reloader.to_prepare do
          oxymoron_reloader.execute_if_updated
        end
      end

      def write_assets
        File.write(File.join(Config.oxymoron_js_path, "oxymoron.js"), Oxymoron.generate("oxymoron.js.erb"))
      end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
oxymoron-1.2.8 lib/oxymoron/engine.rb
oxymoron-1.2.7 lib/oxymoron/engine.rb
oxymoron-1.2.6 lib/oxymoron/engine.rb
oxymoron-1.2.5 lib/oxymoron/engine.rb
oxymoron-1.2.4 lib/oxymoron/engine.rb
oxymoron-1.2.3 lib/oxymoron/engine.rb
oxymoron-1.2.2 lib/oxymoron/engine.rb
oxymoron-1.2.1 lib/oxymoron/engine.rb